Win10+VS2017配置yolov3(2)--訓練自己數據集

Win10+VS2017配置yolov3(2)–訓練自己數據集

距離上一篇過去好久、一直沒時間寫,接着回顧一下 之前的配置

本人的電腦配置:
CPU:i7-8700k
GPU:GTX-1080ti
操作系統:Windows 10 專業版 64bit
CUDA:9.0
CUDNN:7.3
OenpCV:3.3
IDE:VS2017

接着就是去下載咱們yolov3的代碼了,強烈推薦大家去用linux版本,當然你們系統肯定得是linux,但是爲了廣大windows用戶的需求,這裏將windows10下安裝如何訓練自己的數據進行一個簡單的說明

Step1:假設拿到一批數據,其中包含五類,如下圖所示
在這裏插入圖片描述
首先使用match_quantity.py腳本分別將每個類中的“情侶文件”(圖片名和XML文件對應的文件)匹配出來,僅需修改如下兩處(所需文件後續會提供)
在這裏插入圖片描述
如下圖爲一個類的匹配結果,肯定是偶數個,且圖片名和xml一一對應。
在這裏插入圖片描述
其他類也參照相同的方法即可。

Step2:接着使用rename.py將所有生成好的圖片和xml重命名,規則爲 類名-原文件名 如僅需修改以下路徑即可(此處注意,xml重命名後在xml文件中的filename標籤下的文件名也要改變,可以使用sublime、vscode等工具批量更改)
在這裏插入圖片描述
在這裏插入圖片描述
Step3:然後使用voc_to_icdar13.py讀取xml,將關鍵信息(文件名、座標信息、大小等)生成txt,使用my_icdar13_to_voc.py重新生成xml文件 (這麼做的目的是防止xml中出現size爲0的情況)
在這裏插入圖片描述
生成的txt中包含座標,類名,以及width和height
在這裏插入圖片描述
使用my_icdar13_to_voc.py重新生成xml文件,轉化過程
在這裏插入圖片描述
之後將生成好的xml和圖片準備待用

Step4:接着我們準備VOC的數據集,請嚴格按照如下的目錄進行,將xml文件全部放入Annotations,將所有圖片放入JPEGImages即可
在這裏插入圖片描述
然後運行first-test.py,將數據集按照二八原則(20%驗證集+80%訓練集)進行分配,會在Main中生成train.txt和val.txt的文件。
接着運行voc_label.py,將訓練集和驗證集路徑導入txt文件中,就會生成如下兩個文件
在這裏插入圖片描述
Step5:接着修改data下的voc.names, 將要訓練的類名寫上,再接着就是去修改data下的voc.data文件,classes就是寫你有幾個類,train就寫之前生成的訓練集的路徑,valid就寫剛剛生成的驗證集的路徑
在這裏插入圖片描述
Step6:最後修改cfg/yolov3-voc.cfg
yolo層的上一層卷積層的filter和類別classes
filter=(num/3)×(classes + coords + 1) coords=4
把Training的參數設置打開,Testing的參數設置關閉
在這裏插入圖片描述
可以搜索yolo,共有三處如下的地方需要修改,filters的數量遵循 (num/3)×(classes +5),classes爲類的數量
在這裏插入圖片描述
最後就可以開始訓練了
darknet.exe detector train data/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -i 0 -map
在這裏插入圖片描述
也會有avg loss實時的顯示
在這裏插入圖片描述
相關的python文件附下載地址:https://download.csdn.net/download/clay_zhang/11112842
後續會更新如何檢測Ap、MAp以及測試等操作

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