WIN10+Darknet自建簡單數據集訓練YOLOv3識別特定物體

1.在darknet-master\build\darknet\x64 新建yolo-obj.cfg文件(可以直接複製yolov3.cfg,然後重命名爲yolo-obj.cfg),

然後就是修改這個文件內容了。

將batch 改成64 :batch=64

將subdivisions 改成8 :subdivisions=8

將每個yolo下(共有3處)的classes改成你自己的類的數量 :classes = 1(我的是1類)

將每個yolo上面第一個convolutional下的filters改成你自己的大小,計算方法是: filters=(classes + 5)x3 ,由於我的是1類,所以我的filters=18. (和上面一樣,共有3處,3個yolo,每個yolo上面的第一個convolutional下的filters)每個yolo上面的第一個convolutional是網絡的最後一個輸出層。

注意:如果你對顯卡較差(4G顯存以下),會出現內存溢出錯誤(Out of memory),改正方法:將batch改小些(64,32,16,8),將random改成0關閉多尺度訓練。
在這裏插入圖片描述

2.在build\darknet\x64\data\下新建obj.names文件,裏面寫入你的類名,每個類名佔一行。
在這裏插入圖片描述

3.在build\darknet\x64\data\下新建obj.data文件
在這裏插入圖片描述

4.將你的所有樣本圖片放到:build\darknet\x64\data\obj\

5.將所有圖片對於的txt文件也放到:build\darknet\x64\data\obj
在這裏插入圖片描述

txt文件格式如下
在這裏插入圖片描述

6.在build\darknet\x64\data\下新建train.txt

將你的訓練圖片的路徑放入文件,每行一個路徑,如下圖:
在這裏插入圖片描述

7.將darknet的預訓練權重放入build\darknet\x64
在這裏插入圖片描述

8.修改網絡配置文件Makefile(在\darknet-master路徑下)
在這裏插入圖片描述

9.打開win10終端,cd進入darknet-master\build\darknet\x64路徑,然後輸入:darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74 開始訓練。

10.訓練時,每訓練100輪,都會生成一個權重文件在build\darknet\x64\backup\ 下,文件名例如:yolo-obj_100.weights(後面的100是訓練100輪是的權重)。

11.測試訓練效果:

將那個backup文件下最後一個權重文件複製到build\darknet\x64\文件下,打開win10終端,cd進入然後運行darknet-master\build\darknet\x64路徑,然後輸入:darknet.exe detector test data/obj.data yolo-obj.cfg yolo-obj_100.weights(最後的權重改爲你自己的權重)。終端會提醒你輸入圖片路徑,然後你輸入測試圖片的絕對路徑即可看到效果。
在這裏插入圖片描述
在這裏插入圖片描述

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