最近在研究车辆检测相关算法,因yolo算法的速度和精度基本均能满足要求,原版的yolo v3算法是检测多类物体,本人是在原来代码的基础上修改为检测单目标车辆,并基于预训练权重在VOC2007数据集上进行训练。
源代码:https://github.com/qqwweee/keras-yolo3
原作者已经给出了训练和测试方法,在此不再赘述。
要实现只检测“car”这一类别,要修改的地方有一下几个:
1、修改yolo.cfg文件
将yolo.cfg文件的classes修改为1,所有的filters=255的值修改为filters=18(计算方式为(classes+5)*3)。(为了不改变yolo.cfg,我是直接将yolo.cfg另存为car.cfg,再做修改)
注意:filters仅仅是Yolo层前的filters修改为18,一共三处。
2、修改类别文件
将coco_class.txt和voc_class.txt文件中的类别全部修改成‘car’ ,或在该目录下新建object_classes.txt文件,写入car。
3、修改voc_annocation.py, 生成数据集
将voc_annocation.py 中的classes修改成只有“car”一个,
准备数据集VOC2007, 然后运行voc_annocation.py生成2007_train