Segmentation Label 標註教學

李謦伊
謦伊的閱讀筆記
5 min readSep 7, 2021

在進行 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 資料夾中會看到以下檔案

--

--