1. 程式人生 > >Win10用yolov3訓練自己的資料

Win10用yolov3訓練自己的資料

哈哈,我們的效率還是很棒的,先自誇一下~廢話不多說,下面就是正宮娘娘:
接上次的部落格(yolo環境配好以後)

製作自己的資料集

首先就是製作資料集啦,我們是自己在校園裡面拍的共享單車,訓練集大概有兩三百張的樣子,還留了一小部分估計也有一百張的樣子做測試集。當然也有SAMA的部落格直接給了資料集,大家也可以直接用啦,很節約時間。
https://blog.csdn.net/lilai619/article/details/79695109

1.框圖
然後就是自己框圖,這個labelimg也是在上面教程的群裡拿的,大家也可以在下面的網盤裡自取。
連結:https://pan.baidu.com/s/12uFzIisR1WBuf7286hyA-Q


提取碼:85s6

2.把xml檔案轉化為txt
這個困擾了我們兩天的樣子,因為網上實在很少。我實現的方式是,把xml的名字寫在一個list.txt裡面。像醬~(注意了,最開始的‘符號,和最後的’符號要刪掉)
在這裡插入圖片描述
當然這個是我們一個同學用python寫的,下面網盤裡還有用python實現的把xml轉為txt的python指令碼,同樣的兩個檔案都要改一下自己的路徑。
連結:https://pan.baidu.com/s/1C0Dte-YUYg-XgpCiWlasfg
提取碼:bd28

這樣我們的資料集就完成了,撒花~

修改檔案

1.不管我們先把圖放在哪裡,現在我們切換到darket檔案下面啦~
把所有的樣本圖片和對應的txt檔案放到:darknet-master\build\darknet\x64\data\obj\下面,答應我一張圖對應一個txt。
在這裡插入圖片描述

2.在darknet-master\build\darknet\x64\data\下新建train.txt
把訓練圖片的路徑寫在檔案裡面,每行一個路徑,像醬~
在這裡插入圖片描述

3.將darknet的預訓練權重放入darknet-master\build\darknet\x64,下面是同組大佬的百度雲連結,我好懶。。。

連結:https://pan.baidu.com/s/1Gdo2gj1bggjUtW9CyYkIpQ 密碼:x5ht
4. 在darknet-master\build\darknet\x64 新建yolo-obj.cfg檔案(可以直接複製yolov3.cfg,然後重新命名為yolo-obj.cfg)

然後就是修改這個檔案內容了。
(用寫字板開啟就可以啦,下面的話也可以用查詢,很快~)

batch 改成64 :batch=64

subdivisions 改成8 :subdivisions=8

【Attention!我的顯示卡就很渣,如果訓練的時候,出現記憶體溢位錯誤(Out of memory),我們可以,將batch改小些(64,32,16,8),將random改成0關閉多尺度訓練。】

查詢每個yolo下(共有3處)的classes改成你自己的類的數量 :classes = N

每個yolo上面第一個convolutional下的filters改成你自己的大小,計算方法是: filters=(classes + 5)x3 ,由於我的是1類,所以我的filters=18. (這個也是隻有3處)

5.在build\darknet\x64\data\下新建obj.names檔案,裡面寫入你的類名,每個類名佔一行。

6.在build\darknet\x64\data\下新建obj.data檔案,像醬寫~
在這裡插入圖片描述

7.修改網路配置檔案Makefile(在\darknet-master路徑下)
在這裡插入圖片描述

到這裡我們的檔案就修改完啦~

開始訓練

1.Win+R開啟終端,cd進入darknet-master\build\darknet\x64路徑,命令:darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74 開始訓練。

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

測試

1.輸入:darknet.exe detector test data/obj.data yolo-obj.cfg yolo-obj_100.weights(最後的權重改為自己的權重)。
然後終端會提醒你輸入圖片路徑,然後你輸入測試圖片的絕對路徑即可看到效果。
在這裡插入圖片描述

大家也一起試試吧,感覺進度還挺快~
那麼最近小花要學點什麼呢?啾咪~