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的路径

yolo3使用darknet卷积神经网络训练pascal vocyolo3使用darknet卷积神经网络训练pascal voc

 

然后用命令行 : make  完成编译

2.下载voc数据,如下

yolo3使用darknet卷积神经网络训练pascal voc

 

再如下:

yolo3使用darknet卷积神经网络训练pascal voc

 

这样就制作好了darknet需要的数据集,然后设置好路径:

yolo3使用darknet卷积神经网络训练pascal voc

 

 

以及修改 cfg/yolo3-voc.cfg里面的batch以及subdivisions为训练所需要的数据

yolo3使用darknet卷积神经网络训练pascal voc

再下载预训练的模型:

yolo3使用darknet卷积神经网络训练pascal voc

 

 

 

 

然后使用命令:

./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的结果

yolo3使用darknet卷积神经网络训练pascal voc

 

 

最后训练的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