基于keras的YOLOV3改变锚框数量代码操作

起因

原来师兄的毕设里面有提到过改变锚框的数量,但是没有具体的实现流程,然后导师想要我试试看这个的效果,如果效果好可以放在项目里。于是就改yolo的代码。记录一下防止忘记。
注意:本文是将原有的9个anchors(每个尺度3个anchors)改为3个anchors(每个尺度1个anchors)。
基于keras版本的代码:https://github.com/qqwweee/keras-yolo3

步骤

1.修改cfg文件
找到yolov3.cfg,找到[yolo],总共有三个,此处我是留了原来每个尺度下面的中间锚框,如下所示16,30 , 62,45,156,198。然后修改num=3(原先为9),mask分别改为2,1,0.random和classes根据自身情况而定。改完后,每个[yolo]上面几行的filters改为x*(5+classes)其中X就是预设的anchor数量,此处我们预设的是1,所以总共为6.
基于keras的YOLOV3改变锚框数量代码操作
2.修改model.py文件
num_layers要保证为3,所以在这个文件内出现的num_layer下面的//3,都给去掉。另外anchor_mask改为如下:
基于keras的YOLOV3改变锚框数量代码操作

3.重新修改配置文件
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
将我们修改的cfg文件修改成keras适用的h5文件

4.然后可以开始训练

参考

https://blog.****.net/u012746060/article/details/81183006