版权声明:https://blog.csdn.net/z0n1l2 https://blog.csdn.net/z0n1l2/article/details/83933765
修改类别
- 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目录,存储标签)