YOLO系列網絡訓練數據準備工具—Yolo_mark

項目介紹

Yolo_mark是一個檢測任務數據集製作工具,製作完成後的數據格式不是VOC或者COCO的數據格式,從它的名字也可以看出,它是專門爲了YOLO系列的網絡訓練準備數據的,YOLO這一點還是很任性的,它沒有使用任何一個已有的深度學習框架來實現他的代碼,而是自己寫了一個純C的輕量級框架—darknet,所以它的訓練數據準備也不是按照標準開源數據集那樣的格式。Yolo_mark就是專門爲了準備YOLO準備訓練數據的,這裏是它的github地址。
該項目支持windows和linux兩中系統,依賴Opencv庫,2.X或者3.X都可以。如果是windows的話,需要VS2013或VS2015。


使用

下面介紹下windows下如何使用Yolo_mark:
項目中已經提供了.sln文件,使用VS2013或VS2015打開解決方案後,在x64和Release平臺下編譯這個工程,需要注意的是,我們需要先配置好OpenCV,這個過程就不詳細說了。
編譯成功後會在x64下的Release文件夾中生成.exe程序,然後通過yolo_mark.cmd的命令行文件運行這個生成的exe程序就好了。
效果就是這樣,一個很簡單的GUI界面:
這裏寫圖片描述
Yolo_mark運行還是很好實現的,關鍵的問題是數據如何組織,因爲這些數據要用到YOLO的網絡訓練中。


數據組織形式

項目中的data文件夾內存放需要標註的數據與標註後的結果:
.data文件中定義了目標檢測的類別數量,訓練數據與測試數據的txt文件列表,各個類別的名字(它是從.names)文件中獲取到的:

classes= 1
train  = data/train.txt
valid  = data/valid.txt
names = data/obj.names
backup = backup/

.names文件中定義了各個類別的名字,每個類別的名稱都在單獨的一行,行數與名稱一一對應,比如做單類別行人檢測時,.names文件中只有一行:

human

此時,human就是id 0。
train.txt文件爲訓練數據的列表,它由img文件夾內存放的數據自動獲取:

data/img/0.jpg
data/img/1.jpg
data/img/2.jpg
data/img/3.jpg
data/img/4.jpg
data/img/5.jpg
data/img/6.jpg
data/img/7.jpg

最後就是img文件夾了,開始標註之前,img文件夾內只存放需要標註的圖像數據(要求.jpg文件),一張圖片標註完成之後,會給該圖片生成一個名字相同的.txt文件,裏面存放的就是bbox的信息:
這裏寫圖片描述

.txt文件中,每一行都是一個目標的信息,這意味着有幾行數據,圖像中就標註了幾個目標,它根據“id x y w h”的形式存放,其中“ x y w h”都是經過歸一化之後的。比如0.txt文件中的結果:

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