利用labelme製作自己的語義分割數據集

本文硬件環境爲DELL,GPU 1060TI,軟件環境爲windows10 64位操作系統,python 3。

首先在windows系統下基於anaconda安裝labelme:

# python3
conda create --name=labelme python=3.6

source activate labelme

pip install pyqt5  

pip install labelm

安裝完成後在anaconda promote中輸入labelme可以打開圖形化操作界面,如下圖所示:

此時打開需要進行標註的圖片,進行圖片的標註。

在圖像標註完成後,保存爲json格式的文件,但是json格式的文件沒有辦法直接利用,因此需要對json文件進行後續的處理:

1.找到json文件的位置,以及設置處理後文件的位置

labelme_json_to_dataset 存放位置/文件名稱.json -o 處理後文件位置/文件名稱

處理完畢後,將會在文件夾中出現5個文件,接下來對5個文件進行處理

5個文件分別爲:原始文件.png,info.yaml,label.png,label_names.txt,label_viz.png

其中label.png爲圖像的標籤圖像

2.爲label.png進行着色

利用python程序進行批處理,程序如下所示:

import PIL.Image
import numpy as np
from skimage import io,data,color
import matplotlib.pyplot as plt

for i in range(1,7):
    img=PIL.Image.open("文件路徑/label.png"%i)
    img=np.array(img)
    dst=color.label2rgb(img,bg_label=0,bg_color=(0,0,0))#背景的標籤爲0,顏色爲黑色
    io.imsave("文件路徑.png"%i,dst)

結果如下所示:

原始圖像過大,因此不能夠上傳,原始圖像爲航拍的林地圖像。

3.利用matlab將24位圖轉爲8位圖

dirs=dir('文件路徑/*.JPG');
for n=1:numel(dirs)
    strname=strcat('文件路徑/',dirs(n).name);
    img=imread(strname);
    [x,map]=rgb2ind(img,256);
    newname=strcat('結果存儲路徑/',dirs(n).name);
    imwrite(x,map,newname,'JPG');
end

對轉化後的圖像進行諸如旋轉分割,等操作後進行網絡的訓練。

 

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