語義分割學習系列(二)轉換json文件爲訓練數據

前言

  用labelme對樣本圖片進行前景目標的輪廓標註後,按CTRL+S就可以將標註結果保存爲對應的json文件。但是這個json文件並不能直接用來進行訓練/它還需要另外一個腳本或工具來轉換成真正的可訓練的樣本數據。

轉換

   這個工具名叫:labelme_json_to_dataset,直接可以在cmd窗口運行它,後面跟着第一個參數爲待轉換的json文件,第二個參數來指定生成的訓練數據目錄所在路徑:-o xxx/xxx。當然。也可以不輸入第二個參數,這時會指定當前目前目錄爲缺省路徑。

   該工具會調用json_to_dataset.py,該python腳本在下面路徑中。如果感興趣可以去看看它的源代碼實現。 

c:\users\xxx\appdata\local\programs\python\python35\lib\site-packages\labelme\cli\

   在運行該轉換工具時,有可能會遇到 TypeError: rectangle() got an unexpected keyword argument 'width'。如下圖所示。

很顯然,它的意思說,在調用rectangle()畫矩形框時,多輸入了一個width參數。 

經調查,發現是本人windows平臺上安裝的Pillow包版本較低導致的。新版本中支持width這個參數來設置矩形框的線寬。所以最終的解決辦法就是 升級Pillow到5.3.0 

pip install Pillow==5.3.0 

轉換後的結果顯示

每個json文件轉換後就會生成一個對應的文件夾,裏面有5個文件,如下圖所示

第一個圖是原始樣本圖片;第二個是標籤類型名信息;第三個是前景目標的標註輪廓,相當於mask;第四個也是標籤類型名信息;第五個是前景目標輪廓在原圖上的顯示。 實際參與訓練的是第二和第三個文件

 當然,如果每個json文件都要這樣敲一次命令來生成訓練樣本數據集的話,那麼效率就太低了。可以自己寫一個腳本或者從網上下載來批處理一次性生成所有json文件對應的訓練集。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章