YOLOV3實戰2:訓練自己的資料集,你不可能出錯!
大家好,我是小p,今天給大家帶來一期用darknet版本YOLO V3訓練自己資料集的教程,希望大家喜歡。 歡迎加入物件檢測群813221712討論和交流,進群請看群公告! 一、搭建環境 搭建環境和驗證環境是否已經正確配置已在YOLOV3實戰1中詳細介紹,請一定要先解決環境問題,有任何疑問,歡迎入群@或者求助其他小夥伴。 二、資料準備 總體簡介:YOLOV3 訓練訓練自己的資料集時你一共需要修改6個檔案,如表1所示: 表1 訓練需要準備的檔案列表
檔名 | 檔案路徑 | 檔案說明 |
---|---|---|
makefile | darknet-master | 編譯生成可執行程式的檔案,在其中指定是否使用GPU和Cuda,是否使用攝像頭、OpenCV等 |
train.txt | 自定義 | 儲存訓練圖片的路徑,每一行為一張圖片的完整路徑,一般報找不到xx圖片的錯誤多半是本檔案格式不對 |
label資料夾 | 自定義 | 整個資料夾存放所有圖片的標註資訊,標註資訊用txt文件儲存,詳細資訊見下 |
.cfg檔案 | darknet-master/cfg/ | .cfg指定了網路的結構和其他超引數,有關cfg的詳細說明請關注YOLOV3實戰4或進群討論 |
.names檔案 | 自定義 | 該檔案中的內容指定了訓練的標籤,如:person,car等,一個標籤佔用一行,示例見:data/coco.names |
.data檔案 | 自定義 | 該檔案中的內容指示了上述train.tx *.names和模型儲存的位置等,參考cfg/coco.data的內容 |
詳細修改:
1、修改makefile檔案,makefile檔案一共改4處。
① 修改開始幾行的內容,如下圖所示 ,0表示否,1表示是,自己根據實際情況設定,建議使用GPU和CUDA
GPU:是否使用GPU? CUDNN:是否開啟CUDA加速? OPENCV:是否使用OpenCV?
OPENMP:是否使用攝像頭? DEBUG:是否開啟除錯模式?
②改運算的架構,自己顯示卡支援什麼架構可以自己查詢,按需修改,也可以使用預設值:
③更改NVCC值:23行處,NVCC=nvcc,改為你cuda路徑下的nvcc,實測也可以不改,因人而異。
④改cuda路徑值:48行處,參考圖如下:
此處的路徑改為你安裝cuda的路徑,一般只需要把cuda換成cuda-9.0或者其他類似,如果安裝過程添加了軟連線,也可以不用修改
2、生成 train.txt
注意:標籤文件存放的路徑一定要和訓練圖片的路徑關聯,具體參考我原始碼註釋:data.c中fill_truth_detection函式的說明,一時半會解釋不清楚
二、開始訓練吧,騷年! 訓練之前,由於更改了makefile的內容,先命令列:make clean 再make 訓練命令: ./darknet detector train <.data檔案路徑> <.cfg檔案路徑> <預訓練權重路徑,一般為darknet53.74什麼的那個,官網下載> -gpus 0,1,如: ./darknet detector train cfg/coco.data cfg/yolov3.cfg darknet53.** -gpus 0,1,2,3 -gpus後面指定所使用的GPU編號 如果不出意外,不,你不可能出意外,你已經踏上了YOLOV3 訓練自己檢測資料集的快船,Come on!老鐵 三、加群交流,重要的事情說三遍
敬請期待YOLOV3常見錯誤總結篇,碼字不易,且行且珍惜!