在進行 Segmentation 訓練之前需要準備訓練集和驗證集,本文將要來介紹如何使用 LabelMe 進行標記。LabelMe 是個可以繪製多邊形、矩形、圓形、直線、點的一套標記工具,可用於分類、目標檢測、語義分割、實例分割任務上的數據標記。
首先安裝 LabelMe,我使用 Anaconda 進行安裝。打開 Anaconda Prompt 執行以下指令
$ pip install labelme
接著輸入 labelme 會出現以下 UI 介面,點選 Open Dir 選擇要標記的圖片資料夾
$ labelme
在圖片上按右鍵選擇 Create Polygans 後,就可以開始畫標記點了~
畫好後填入要標記的 label,再按左邊的 Next Image 並儲存 annotations
若有多個相同類別的目標物也選擇一樣的 label
若需要轉換 label格式,可使用 labelme 進行轉換。接下來會分為用於 Semantic Segmentation 和 Instance Segmentation
$ git clone https://github.com/wkentaro/labelme
並且在剛剛標記好的圖片資料夾外,建立一個 label.txt,內容必須要有 __ignore__, _background_
檔案放置如下圖
Semantic Segmentation
進入 labelme\examples\semantic_segmentation 資料夾,有支援轉換 VOC 格式
$ cd/d D:\chingi\labelme\examples\semantic_segmentation
然後在 Anaconda Prompt 執行以下指令進行轉換,<data> 是標記圖片的資料夾路徑、<data_output> 是轉換標記格式的資料夾路徑、<label.txt path> 是剛剛建立在圖片資料夾外的 label.txt 的路徑
$ python labelme2voc.py <data> <data_output> --labels <label.txt path>
轉換格式後,會在 data_output 資料夾中會看到以下檔案
Instance Segmentation
進入 labelme\examples\instance_segmentation 資料夾,有支援轉換 COCO 及 VOC 格式
$ cd/d D:\chingi\labelme\examples\instance_segmentation
然後在 Anaconda Prompt 執行以下指令進行轉換,<data> 是標記圖片的資料夾路徑、<data_output> 是轉換標記格式的資料夾路徑、<label.txt path> 是剛剛建立在圖片資料夾外的 label.txt 的路徑
# 轉換為 coco 格式
$ python labelme2coco.py <data> <data_output> --labels <label.txt path># 轉換為 VOC 格式
$ python labelme2voc.py <data> <data_output> --labels <label.txt path>
若轉換為 COCO 格式,會在 data_output 資料夾中會看到以下檔案
JPEGImages 是原本的圖片,Visualization 是框起來的圖片,annotations.json 是標記好的 label
若轉換為 VOC 格式,會在 data_output 資料夾中會看到以下檔案