目标检测系列(九):YOLO v3

目标检测系列(九):YOLO v3


References

  1. https://zhuanlan.zhihu.com/p/34945787
  2. https://zhuanlan.zhihu.com/p/35394369
  3. https://blog.csdn.net/SIGAI_CSDN/article/details/83028599
  4. https://blog.csdn.net/ikerpeng/article/details/54316814

《YOLOv3: An Incremental Improvement 》

STAR

S:2013年,R-CNN横空出世,目标检测DL世代大幕拉开。各路豪杰快速迭代,陆续有了SPP,fast,faster版本,至R-FCN,速度与精度齐飞,区域推荐类网络大放异彩。奈何,未达实时检测之基准,难获工业应用之青睐。此时,凭速度之长,网格类检测异军突起,先有YOLO,继而SSD,更是摘实时检测之桂冠,与区域推荐类二分天下。然准确率却时遭世人诟病。遂有JR一鼓作气,并coco,推v2,增加输出类别,成就9000。此后一年,作者隐遁江湖,逍遥twitter。偶获灵感,终推v3,横扫武林! (hhhh,参考的这个博主简直是段子手啊。)
T: 如果在速度渐长的情况下,提高MAP?
A: 多级预测(提高小目标检测率)+ log 损失代替softmax + 加深网络(Darknet-53)
R: 速度更快了,准确率不再是短板

1.准确率不再是短板

yolov31.png-982.8kB

yolov34.png-571.2kB

2. 训练和检测都很快

yolov32.png-599.5kB

可以看出, 和前辈们比,YOLO 的速度非常快,比 R-CNN 快 1000 倍,比 Fast R-CNN 快 100 倍。

和同辈们比,YOLOv3-608检测准确率比DSSD更高,接近FPN,但是检测时间却只用了后面两者的三分之一不到。

原因如论文中所说,它在测试时观察整张图像,预测会由图像中的全局上下文(global context)引导。它还通过单一网络评估做出预测,而不像 R-CNN 这种系统,一张图就需要成千上万次预测。

3. 实现方法(黑科技)

1. 多级预测

终于为yolo增加了top down 的多级预测,解决了yolo颗粒度粗,对小目标无力的问题。v2只有一个detection,v3一下变成了3个,分别是一个下采样的,feature map为1313,还有2个上采样的eltwise sum,feature map为2626,52*52,也就是说v3的416版本已经用到了52的feature map,而v2把多尺度考虑到训练的data采样上,最后也只是用到了13的feature map,这应该是对小目标影响最大的地方。在论文中从单层预测五种boundingbox变成每层3种boundongbox;

2. loss 不同

作者v3替换了v2的softmax loss 变成logistic loss,由于每个点所对应的bounding box少并且差异大,每个bounding与ground truth的matching策略变成了1对1。当预测的目标类别很复杂的时候,采用logistic regression进行分类是更有效的,比如在Open Images Dataset数据集进行分类。在这个数据集中,会有很多重叠的标签,比如女人、人,如果使用softmax则意味着每个候选框只对应着一个类别,但是实际上并不总是这样。复合标签的方法能对数据进行更好的建模。

扫描二维码关注公众号,回复: 5362015 查看本文章

3. 加深网络

采用简化的residual block 取代了原来 1×1 和 3×3的block; (其实就是加了一个shortcut,也是网络加深必然所要采取的手段)。这和上一点是有关系的,v2的darknet-19变成了v3的darknet-53,为啥呢?就是需要上采样啊,卷积层的数量自然就多了,另外作者还是用了一连串的33、11卷积,33的卷积增加channel,而11的卷积在于压缩3*3卷积后的特征表示。

4. 思考(对于下一代YOLO的思考)

  1. mAP会继续提高。随着模型训练越来越高效,神经网络层级的不断加深,信息抽象能力的不断提高,以及一些小的修修补补,未来的目标检测应用mAP会不断提升。
  2. 实时检测会成为标配。目前所谓的“实时”,工业界是不认可的。为什么呢,因为学术圈的人,验证模型都是建立在TitanX或者Tesla这类强大的独立显卡上,而实际的潜在应用场景中,例如无人机/扫地/服务机器人/视频监控等,是不会配备这些“重型装备”的。所以,在嵌入式设备中,如FPGA,轻量级CPU上,能达到的实时,才是货真价实的。(我认为这也是未来发展的方向)
  3. 模型小型化成为重要分支。类似于tiny YOLO的模型分支会受到更多关注。模型的小型化是应用到嵌入式设备的重要前提。而物联网机器人无人机等领域还是以嵌入式设备为主的。模型剪枝/二值化/权值共享等手段会更广泛的使用。

5. 题外话:

YOLO让人联想到龙珠里的沙鲁(cell),不断吸收同化对手,进化自己,提升战斗力:YOLOv1吸收了SSD的长处(加了 BN 层,扩大输入维度,使用了 Anchor,训练的时候数据增强),进化到了YOLOv2;

吸收DSSD和FPN的长处, 仿ResNet的Darknet-53,仿SqueezeNet的纵横交叉网络,又进化到YOLO第三形态。

但是,我相信这一定不是最终形态。。。让我们拭目以待吧!
yolov33.png-939.6kB

如需转载请注明出处,谢谢!

猜你喜欢

转载自blog.csdn.net/weixin_43854922/article/details/86510124