1. 程式人生 > >使用labelImg影象標註工具製作VOC資料集

使用labelImg影象標註工具製作VOC資料集

1.Linux下安裝

brew install qt qt4

brew install libxml2
make qt4py2
pythobelImg.py2.windows下安裝

安裝安裝Anaconda2-4.4.0-Windows-x86_64.exe  

新增環境變數

3.解壓labellmage到桌面,不能有中文路徑,複製路徑。4.cmd進入路徑
conda install pyqt=4
pyrcc4 -py3 -o resources.py resources.qrc
python labelImg.py 開啟標記程式

5.標註流程

開啟需要標記的圖片資料夾

修改儲存路徑(XML資料夾)

標註ROI區域,填寫標籤,矩形框可微調


儲存XML檔案,有彈框提醒

點選下一張圖進行標記

快捷按鍵WCreate RectBox,按鍵D是下一張圖,按鍵A是上一張圖,Ctrl+S是儲存。


6.生成VOC資料集需要的txt


Annotations存放XML檔案,JPEGImages下存放訓練圖片,新建一個GetVoc_txt.m用於生成txt檔案到ImageSets資料夾下。

clear;clc;

file = dir('Annotations');
len = length(file)-2;

num_trainval=sort(randperm(len, floor(1*len/2)));%trainval集佔所有資料的1/2,可以根據需要設定
num_train=sort(num_trainval(randperm(length(num_trainval), floor(1*length(num_trainval)/2))));%train集佔trainval集的1/2,可以根據需要設定
num_val=setdiff(num_trainval,num_train);%trainval集剩下的作為val集


num_test=setdiff(1:len,num_trainval);%所有資料中剩下的作為test集

path = 'ImageSets/Main/';

fid=fopen(strcat(path, 'trainval.txt'),'a+');
for i=1:length(num_trainval)
    s = sprintf('%s',file(num_trainval(i)+2).name);
    fprintf(fid,[s(1:length(s)-4) '\n']);
end
fclose(fid);

fid=fopen(strcat(path, 'train.txt'),'a+');
for i=1:length(num_train)
    s = sprintf('%s',file(num_train(i)+2).name);
    fprintf(fid,[s(1:length(s)-4) '\n']);
end
fclose(fid);

fid=fopen(strcat(path, 'val.txt'),'a+');
for i=1:length(num_val)
    s = sprintf('%s',file(num_val(i)+2).name);
    fprintf(fid,[s(1:length(s)-4) '\n']);
end
fclose(fid);

fid=fopen(strcat(path, 'test.txt'),'a+');
for i=1:length(num_test)
    s = sprintf('%s',file(num_test(i)+2).name);
    fprintf(fid,[s(1:length(s)-4) '\n']);
end
fclose(fid);