1.为了提高tiny的识别精度,利用11卷积层在原YOLOv3-tiny的基础上做了一些修改,增加了卷积深度;
具体是在每个33卷积层后加入了4个33和11卷积层,然后调整YOLO层的相加层数(route)
2.在voc数据集上进行训练,起初训练了50200之后,测试能出图,但是不出框;
分析:
1)终端输出loss在一段时间内一直徘徊在1.6-1.7之间,不进不退,怀疑是学习率设置不对,于是修改为在20000,40000,45000次迭代时减少学习率,重新开始训练;;
2)训练到40000次左右,loss还是出现徘徊的情况,重新测试,出现了coco数据集上才有的类别,感到很奇怪;
3)后来发现是因为上一次检测的默认类别是coco的80个类别的顺序,同样的类别序号对应的具体类别不一样,但是识别概率是一样的,于是将原简短的测试指令:
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
替换成完整的测试指令,并使用data/voc.data
./darknet detector test cfg/voc.data cfg/yolov3-tiny.cfg yolov3-tiny.backup data/dog.jpg
出现了正常的结果,此外test时,要将cfg改成test模式。
GPU版本测试效果上测试效果。
如果在GPU上设置thresh值之后,依然无法出框,可以尝试在cpu版本的darknet上测试,中间不是很明白,所以搜索了解决办法,感觉可以试试
虽然出结果了,但是识别率只有可怜的0.5左右,于是准备再训练50000次,看看效果怎么样。
因为是初学者,可能对我有用,如果有更好的办法,也欢迎交流。