1. 程式人生 > >mask-RCNN筆記——標註工具以及各式轉換

mask-RCNN筆記——標註工具以及各式轉換

使用標註工具lablem

1、下載

https://github.com/wkentaro/labelme

2、安裝

使用環境,ubuntu16.04,python3

進入labelme資料夾下,開啟終端,進入虛擬環境,執行程式碼

pip install pyqt5  # pyqt5 can be installed via pip on python3
pip install labelme

3、執行

在labelme目錄下開啟終端,輸入一下程式碼,即可執行labelme視窗

labelme

4、使用

a、點選1處匯入圖片資料夾

b、點選2處在當前檔案中開啟標記工具

c、在圖中的3處用標註工具標註目標

d、標註框封閉之後輸入目標名稱,如4處所示

e、標註完成1張圖片之後點選5儲存json檔案

f、點選6進入下一張圖片

5、json檔案

在儲存目錄下會生成與檔案同名的一個json檔案

資料格式轉換

程式碼下載地址:

https://github.com/wucng/TensorExpand/tree/master/TensorExpand/Object%20detection/Data_interface/MSCOCO/labelme%20data

使用方法:

1、直接複製程式碼labelme2COCO.py到json目錄下

2、配置虛擬環境與labelme相同,應為執行的時候需要用到Qt5的包

3、執行程式碼,會將多個json檔案儲存到一個new.json中

使用過程中遇到了三個問題:

1、紅框處的函式原始碼是utils.img_b64_to_array()

在執行時報錯了,檢視utils檔案後發現我的程式碼當中的函式是img_b64_to_arr()

修改為如圖之後執行正確

2、型別格式不一致

程式碼中對物件的命名方式是:貓-布偶貓-物件編號,這種形式

在此處讀入資訊之後會獲得label的list

我在使用時,由於一張圖片上只有一個物件,且只有一個類,所以需要修改

方便起見,我直接將label修改為固定字串,如紅框

3、json儲存問題,TypeError: 104 is not JSON serializable

發現是由於segment中的資料型別導致的,雖然不知道為什麼int64的資料格式不能儲存到json中

在讀取segmentation的時候直接修改資料型別為float型別