關(guān)于yolov3在ubuntu18下的配置,我的上一篇文章有介紹,本篇文章介紹如何構(gòu)建用于yolov3訓練的數(shù)據(jù)集。
數(shù)據(jù)集獲取
數(shù)據(jù)集的獲取可以依靠下載公開數(shù)據(jù)集或標注自己的數(shù)據(jù)集。一般來說,公開數(shù)據(jù)集很難滿足我們實際的生產(chǎn)需求,因此大多數(shù)情況下需要我們自己標注數(shù)據(jù)集。一般使用labelImg用于目標檢測的標注,標注完成后會生成與所標注圖片同名的xml文件。
labelImg在win上的配置
1、下載源碼https://github.com/tzutalin/labelImg
2、安裝python3.5(據(jù)說用py3.6會報錯,經(jīng)測試在py3.7下可成功配置)
3、安裝PyQt5:
pip install PyQt5
(如果下載很慢可以換pip源)
4、安裝PyQt5_tools:
pip install pyqt5-tools
5、安裝lxml:
pip install lxml
6、進入labelImg解壓后的文件,執(zhí)行命令
pyrcc5 -o resources.py resources.qrc
(用于將Qt文件格式轉(zhuǎn)換為python格式)
7、運行l(wèi)abelImg.py
如果出現(xiàn) No module named ‘libs.resources’ 的報錯

將resources.py拖進libs文件夾即可

labelImg的使用
1、打開需要標注的圖片所在目錄
2、data文件夾下的predefined_classes.txt文件存儲了標簽,將這個文件內(nèi)的標簽修改為自己需要的。例如:

3、根據(jù)需要更改或不更改標注文件的存儲位置
4、需要注意的是,盡管用于yolo訓練的標注文件最終需要的是txt格式,但在制作數(shù)據(jù)集階段我們?nèi)孕柚谱鞒蒝OC格式(標注文件為xml文件),因此在標注前需檢查保存的格式是否為VOC格式。

5、按快捷鍵w對圖片進行標注,選擇標簽,所有目標標注完成后保存,即可得到對應的xml文件。
6、xml文件的示例如下圖

<annotation>
? ? <folder></folder>? ? ? ? //文件夾? ? ? ? ? ? ? ? ? ? ? ? ? ?
<filename></filename>? //文件名?
<path></path>? ? ? ? ? //文件路徑
? ? <source>? ? ? ? ? ? ? ? //圖像來源(不重要)?
? ? ? ? <database>Unknown </database>?
? ? </source>?
? ? <size>? ? ? ? ? ? ? ? ? ? //圖像尺寸(長寬、通道數(shù))? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? <width>1920</width>?
? ? ? ? <height>810</height>?
? ? ? ? <depth>3</depth>?
? ? </size>?
? ? <segmented>0</segmented>? ? ? ? ? ? //是否用于分割(在目標識別中01無所謂)?
? ? <object>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //檢測到的物體?
? ? ? ? <name>car</name>? ? ? ? ? ? ? ? ? ? ? //物體類別?
? ? ? ? <pose>Unspecified</pose>? ? ? ? ? ? ? ? //拍攝角度?
? ? ? ? <truncated>0</truncated>? ? ? ? ? ? ? ? ? //是否被截斷(0表示完整)?
? ? ? ? <difficult>0</difficult>? ? ? ? ? ? ? ? ? ? ? //目標是否難以識別(0表示容易識別)?
? ? ? ? <bndbox>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //bounding-box(包含左下角和右上角xy坐標)?
? ? ? ? ? ? <xmin>465</xmin>?
? ? ? ? ? ? <ymin>410</ymin>?
? ? ? ? ? ? <xmax>784</xmax>?
? ? ? ? ? ? <ymax>651</ymax>?
? ? ? ? </bndbox>?
? ? </object>?
? ? <object>? ? ? ? ? ? ? //包含多個目標?
? ? ? ? ??
? ? </object>?
</annotation>
可能會用到的快捷鍵
Ctrl+u 加載目錄中所有圖像
Ctrl+s 保存
Ctrl+r 更改標注文件保存地址
Ctrl+d 復制當前標簽和矩形框
space 將當前圖片標記為已驗證
w 創(chuàng)建一個矩形框
d 下一張圖片
a 上一張圖片
del 刪除選定的矩形框
數(shù)據(jù)準備
需要將我們在上一步中準備的數(shù)據(jù)集整理成VOC格式,也就是將圖片全部存放在JPEGImages下,將標注文件全部存放在Annotations下,ImageSets/Main文件夾先空著。
VOC格式
--VOCdevkit
??--VOC2007??#2007可以為任意年份(也可以沒有,事實上文件夾也可以不叫這些名字)
??? --Annotations? #存儲xml文件
??? --ImageSets??
????? --Main?????#存儲訓練集/驗證集/測試集的txt
??? --JPEGImages?#存儲圖片

至此就完成了數(shù)據(jù)集的準備,part2會介紹訓練的流程、參數(shù)設(shè)置等。