• 沒有找到結果。

研究分析處理架構、圖片前處理

第三章 研究方法

3.2 前期研究

3.2.2 研究分析處理架構、圖片前處理

究在深度學習的語言中選擇了 Python,接著研究的 Framework 選擇 Tensorflow[21]

以及 Keras[22],決定架構後就可以繼續本研究圖片的前處理流程,流程可分為

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 3.5 切分物體偵測示意

2. 資料標注:上述所收集到之資料,先分派給有相關背景之專業人員進行 相關的標注,再由本論文之研究人員來進行資料的確認,因為部分的人 員對於資訊系統不熟稔,所以本研究使用較易操作之資料標注工具 labelImg[23],該工具可以將標註的資料轉為 XML 檔,雖然檔案格式需 再處理,但是這樣對於標注人員相對較好操作。標註的內容主要是在圖 片中種類別的艦船 1.軍艦(WarShip)2.民船(NormalShip) (如圖 3.6 所示),

標注完的資料會交由作者再次地確認是否有標注錯的狀態,經過修正後 才會正式成為本研究的訓練集。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 3.6 透過 labelImg 標註資料

3. 收集完標註的資料後,必須針對本研究所實作的 Framework 轉換成 Tensorflow 可以處理的格式,所以我們撰寫了一隻程式先把 XML 檔裡 面的資訊讀取出來,這些資訊包含了(1)檔名(2)圖片的長與寬(3)該物體 的類別(4)物體標註的圖片範圍(xmin、ymin、xmax、ymax),接著把這 些資訊轉換為 CSV 檔,因為這樣利用 CSV 的功能可以方便計算以及分 類我所蒐集到的資料,在資料的前期統計中這樣的處理方式可以很方 便的整理前處理的資料,也可以很方便的進行相關的紀錄,蒐集完之 成果如圖 3.7 所示,此外在轉換為 CSV 檔之前,此程式加上了 shuffle 之功用,程式會把全部的資料依照圖片的數量分為訓練 Train.csv 以及 測試集 Test.csv 兩個 CSV 檔,這樣會有助於後續資料處理的流程,有 了 CSV 的資訊後,接著會把圖片資料以及 CSV 整理好繼續接下來的轉 換流程。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 3.7 XML 整理為 CSV 檔

有了圖片以及 CSV 的資料後,我們撰寫了一隻從 CSV 檔以及圖片檔案轉換 為 TFRecord 檔之程式(程式示意如 3.8),TFRecord 為 Tensorflow 的標準格式,

可以將資料與對應的資料標示(label)儲存在一起,方便在 TensorFlow 中 使用,最重要的是,如果圖片透過 numpy 以及 tf.variable 讀取至 Tensorflow 中進行模組訓練很容易會造成記憶體不足的問題導致訓練無法繼續下去,所 以本研究選擇將資料轉換為 TFRecord 來處理,且轉為該格式可以有助於我們 在 Tensorflow 的模組訓練速度,由圖 3.8 所示程式碼上方可見我們轉換的相 關資訊,所以經過上述的圖片前處理流程,我們已經準備好了模組訓練的基 本資料了,其中包含了原先的圖片集以及轉換後的 TFRecord 檔案,有了這些 資料集後,面臨了下一個思考的問題,要如何利用這些少量的資料來建置合 適的深度學習模組來進行訓練呢?

‧ 國

立 政 治 大 學

N a tio na

l C

圖 3.8 CSV 轉換 TFRecord 程式示意

h engchi U ni ve rs it y

相關文件