1. 程式人生 > >用yolo訓練自己的資料集(以車牌為例)

用yolo訓練自己的資料集(以車牌為例)

我看了網上很多yolo教程,可能是因為電腦環境和配置的不一樣,所以我並沒有完全通過網上教程成功訓練自己的資料集,接下來我將我自己完全親自測試並且最後成功訓練資料集的教程記錄如下:
訓練自己的資料集有如下幾步:

  • 準備資料集並且安裝yolo

  • 製作資料集的標籤生成xml檔案

  • 將xml檔案轉成txt檔案

  • 修改配置檔案

  • 下載預訓練模型進行訓練

第二步:製作資料集標籤生成xml檔案:
大家在這裡需要安裝安裝 labelImg (標資料用),我在網上試了很多教程,最後我推薦大家按照這個網址的教程裝:https://www.cnblogs.com/new-age/p/7071289.html 裝完之後用labelImg做標籤並將生成的xml檔案儲存在xml資料夾下。

這裡寫圖片描述

第三步:將xml檔案轉成txt格式,這一步大家可以採用這篇部落格裡的程式碼http://blog.csdn.net/qq_34484472/article/details/73135354#reply,程式碼親自執行過沒有錯誤。可是經過程式碼轉換後原圖片會損失,因此在訓練的時候會出現無法讀取圖片的問題,如出現STB Reason:unknown image type這個問題是說明是你的圖片出現了問題,因此你可以將損壞的圖片進行替換就可以正確訓練了。
最後在訓練前您需要準備這幾個資料夾:
這裡寫圖片描述
backup資料夾是用於儲存訓練模型的,如下圖:
這裡寫圖片描述

第四步:
在darknet/cfg/voc.data檔案中進行如下修改:
classes= 1(由於我只訓練車牌這一個類)
train =/home/tlx/darknet/mydata/trainImagePath.txt(訓練圖片的路徑)
valid = /home/tlx/darknet/mydata/validateImagePath.txt(驗證圖片的路徑)
names = data/plate.names

第五步:下載預訓練模型,下載地址為:
http://pjreddie.com/media/files/darknet19_448.conv.23
將模型儲存在放在darknet資料夾下,並在darknet資料夾路徑下執行命令進行訓練:
./darknet detector train cfg/voc.data cfg/yolo-voc.cfg cfg/darknet19_448.conv.23