darknet yolov3 訓練自定義資料集
阿新 • • 發佈:2019-01-13
修改類別
- yolo層的classes修改成新的類別書
- yolo層前一個convolution層的filters修改成(classes+4+1)*3
- 修改data檔案中的類別數目
訓練
./darknet detector train cfg/custom.data cfg/yolov3.cfg pretrained/darknet53.conv.74 2>&1 train.log
burn_in的效果比較好
測試
單幅圖測試
./darknet detector test examples/traffic/image.data examples/traffic/yolov3.cfg examples/traffic/yolov3_900.weights data/person_walk.jpg 引數說明 image.data: 訓練時指定類別數目,訓練/測試影象路徑 yolov3.cfg: 網路定義檔案 yolov3_900.weights: 訓練出的網路權重 person_walk.jpg: 測試圖片
批量統計recalling
預設darknet的recall模式只能測試coco_val_5k,要測試其他資料集,只需要修改darknet/examples/detector.c中的validate_detector_recall()函式,傳入一個檔名(格式如下文test.txt所述), 具體修改如
修改前
list plist = get_paths("data/coco_val_5k.list");
修改後
list *plist = NULL; if (pathfile == NULL) plist = get_paths("data/coco_val_5k.list"); else plist = get_paths(pathfile);
命令列(recall2會傳入test.txt,否則預設呼叫coco_val_5k)
./darknet detector recall2 examples/traffic/image.data examples/traffic/yolov3.cfg examples/traffic/yolov3_900.weights examples/traffic/test.txt 引數說明 image.data: 訓練時指定類別數目,訓練/測試影象路徑 yolov3.cfg: 網路定義檔案 yolov3_900.weights: 訓練出的網路權重 test.txt: 一行表示一個測試圖片的絕對路徑(VOC格式的圖片集,按照darknet訓練資料格式,新建一個labels目錄,儲存標籤)