Yolov3:訓練自己的模型 Part1:準備數(shù)據(jù)集

關(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’ 的報錯

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文件的示例如下圖

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?#存儲圖片


VOC格式數(shù)據(jù)集文件夾結(jié)構(gòu)

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容