本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期先简要介绍 YOLO v3,因为 YOLO v3 相比于 YOLO v2 改进不多,但不得不承认效果确实好。
YOLO v3
论文相关信息(链接):
YOLO v3 的改进思路,也是在不牺牲或者少牺牲速度的基础上提高精度,最大的改变是在网络结构上,借鉴了 ResNet 、FPN 等结构,设计了 DarkNet-53 :
更为清晰的结构图转自这里,这里面后半部分的结合不同大小特征图来优化预测输出正是 FPN 中的精髓:
还是非常能打的,和ResNet几乎一模一样的准确率,但是速度快了一倍:
最主要的 trick:如上面的结构图所示,分别在三个不同尺度的特征图上做预测,来兼顾大小目标的检测。与 YOLO v2 中几乎一样,三个不同尺度中的每一个网格块生成三个先验框,大小同样由聚类(k = 9)确定,每个框的一套输出值也一样,预测框参数 tx、ty、tw、th ,预测框置信度 to,再加上预测八十个类别的概率值,就是图中的输出了。比较重要的还是去掉了一个网格块只负责一个物体检测的设定,改成跟 Faster R-CNN 中一样,将这些框用非极大值抑制处理后作为 GT 的预测框,这样比原来更加合理,而且也没有了重叠目标识别的问题了。
其他都是比较细节的点了,比如损失函数上的小改变、置信度预测规则不同、训练时和 Faster R-CNN 一样只使用严格定义的正例负例,以后深入到代码层面再来谈谈体会。