darknet本來最開始學的是https://github.com/pjreddie/darknet yolo3作者自己開發的,但是它很久不更新了而且mAP值不好觀察,於是另外有個https://github.com/AlexeyAB/darknet fork了它,然后在它上面給出了更精彩的實現,比如支持windows,還有改了一些bug,以及最重要支持訓練時候mAP圖形化觀察
我的遠程服務器操作系統是Linux
1. git clone https://github.com/AlexeyAB/darknet.git
完成后然后打開Makefile ,改編譯選項,我改的是 這個樣子,支持GPU,CUDNN,OPENCV。有的nvcc沒加入到路徑就也要設置nvcc的路徑
然后用命令行 : make 完成編譯
2.下載voc數據,如下
再如下:
這樣就制作好了darknet需要的數據集,然后設置好路徑:
以及修改 cfg/yolo3-voc.cfg里面的batch以及subdivisions為訓練所需要的數據
再下載預訓練的模型:
然后使用命令:
./darknet -i 3 detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -dont_show -mjpeg_port 8090 -map (注: -i 3 是指我使用了第3塊GPU,默認的話是第0塊)
來訓練並且觀察mAP的結果,可以打開chrome或者firefox瀏覽器輸入:http://ip-host:8090來觀察loss曲線和mAP的結果
最后訓練的weight數據保存在了darknet/backup文件夾下面
訓練的命令:
./darknet detector train -i 3 train data/instrument.data cfg/yolov3-instrument.cfg darknet53.conv.74 -dont_show -mjpeg_port 8090 -map
檢測一張圖的命令:
./darknet detector test data/instrument.data cfg/yolov3-instrument.cfg instrument/yolov3-instrument_best.weights /home/linxi/TrainFasterR-CNN/YOLO3/AlexeyAB/VOCdevkit/VOC2007/JPEGImages/10000190383.jpg -i 3
修改代碼(https://github.com/AlexeyAB/darknet/issues/1396)后檢測一系列圖片的命令:
./darknet detector test data/instrument.data cfg/yolov3-instrument.cfg instrument/yolov3-instrument_best.weights -i 3 -dont_show <2007_test.txt> result.txt