系统:ubantu18.4
机器:HP-Z840-Workstation
处理器:Intel® Xeon® CPU E5-2660 v3 @ 2.60GHz × 40
显卡:Quadro K5200/PCIe/SSE2
opencv 3.3.0
cuda 9.0
cudnn 7.0(在本机器上未连接好)
VOCdevkit
——VOC2018 #文件夹的年份可以自己取,但是要与你其他文件年份一致,看下一步就明白了
————Annotations #放入所有的xml文件
————ImageSets
——————Main #放入train.txt,val.txt文件
————JPEGImages #放入所有的图片文件
Main中的文件分别表示test.txt是测试集,train.txt是训练集,val.txt是验证集,trainval.txt是训练和验证集,反正我只建了两个
classes= 1 # 自己数据集的类别数
train = /home/xxx/darknet-master/train.txt # train文件的路径
valid = /home/xxx/darknet-master/2018_test.txt # test文件的路径
names = /home/xxx/darknet-master/data/voc.names #用绝对路径
backup = backup #模型保存的文件夹
1.Testing下面的batch和subdivisions注释“#”掉
#batch=1
#subdivisions=1
#Training下面的batch和subdivisions注释“#”取消掉
batch=64
subdivisions=16
2.将yolo层次(3个地方)附近的filters和classes修改
filters=30 #---------------修改为3*(classes+5)即3*(5+5)=30
activation=linear
[yolo]
mask = 6,7,8
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
classes=5 #---------------修改为标签类别个数,5类
测试语句:./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg yolov3-voc_final.weights 000381.jpg
训练语句:./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
首先在训练开始的时候需要把终端信息记录到文件,这里使用的命令是| tee train_log.txt
调用自己的权重实时检测
./darknet detector demo cfg/voc.data cfg/yolov3-voc.cfg yolov3-voc_final.weights
保存训练结果的训练语句
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 | tee train_yolov3.log
训练语句
./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg yolov3-voc_final.weights 000381.jpg
调用自己的权重进行视频的检测
./darknet detector demo cfg/voc.data cfg/yolov3-voc.cfg yolov3-voc_final.weights VID_20181107_114017.mp4
cuda out of memory 已死亡:调小subdivisions
cfg文件test和train的subdivisions和batch不同