yolo3使用darknet卷积神经网络训练pascal voc
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