2015年,R-CNN横空出世,目标检测DL世代大幕拉开。
各路豪杰快速迭代,陆续有了SPP,fast,faster版本,至R-FCN,速度与精度齐飞,区域推荐类网络大放异彩。
奈何,未达实时检测之基准,难获工业应用之青睐。
此时,凭速度之长,网格类检测异军突起,先有YOLO,继而SSD,更是摘实时检测之桂冠,与区域推荐类二分天下。然准确率却时遭世人诟病。
遂有JR一鼓作气,并coco,推v2,增加输出类别,成就9000。此后一年,作者隐遁江湖,逍遥twitter。偶获灵感,终推v3,横扫武林!
自从YOLO诞生之日起,它就被贴上了两个标签,
1.速度很快。
2.不擅长检测小物体。
而后者,成为了很多人对它望而却步的原因。
由于原理上的限制,YOLO仅检测最后一层卷积输出层,小物体像素少,经过层层卷积,在这一层上的信息几乎体现不出来,导致难以识别。
YOLOv3在这部分提升明显。先看看小物体的识别。
直观地看下和YOLOv2的对比图如下。可以看出,对于小物体的识别,提高非常明显。
无论是传统的模式识别图像检测,还是基于CNN的视觉检测,对于紧凑密集或者高度重叠目标的检测通常是非常困难的。比如对合影的人群检测在YOLOv2上的结果:
而下面是v3的结果:
前方高能预警。。。。。。。。。。。。。。。。
一次检测到图中90%的人,还增加了tie(领带)这个新类别,非常惊艳!
再看看模型的泛化能力如何:
骷髅并不在训练数据集中,但是通过训练模型强大的泛化能力,自动将其归类到了人类。(也算是最为合理的近似处理了)
这在YOLOv2中是检测不到的。
那么,模型泛化能力很强的副作用,就是分类结果跑偏,比如下面这张coser的识别图,最左侧的人识别成了马:
论文中做了详尽的对比。
和前辈们比,YOLO 的速度非常快,比 R-CNN 快 1000 倍,比 Fast R-CNN 快 100 倍。
和同辈们比,YOLOv3-608检测准确率比DSSD更高,接近FPN,但是检测时间却只用了后面两者的三分之一不到。
原因如论文中所说,它在测试时观察整张图像,预测会由图像中的全局上下文(global context)引导。它还通过单一网络评估做出预测,而不像 R-CNN 这种系统,一张图就需要成千上万次预测。
YOLO让人联想到龙珠里的沙鲁(cell),不断吸收同化对手,进化自己,提升战斗力:YOLOv1吸收了SSD的长处(加了 BN 层,扩大输入维度,使用了 Anchor
,训练的时候数据增强),进化到了YOLOv2;
吸收DSSD和FPN的长处, 仿ResNet的Darknet-53,仿SqueezeNet的纵横交叉网络,又进化到YOLO第三形态。
但是,我相信这一定不是最终形态。。。让我们拭目以待吧!
论 文:https://pjreddie.com/media/files/papers/YOLOv3.pdf
翻 译:https://zhuanlan.zhihu.com/p/34945787
代 码:https://github.com/pjreddie/darknet
官 网: https://pjreddie.com/darknet/yolo
Youtube:https://www.youtube.com/watch?v=MPU2HistivI
旧 版:
https://pjreddie.com/darknet/yolov2/
https://pjreddie.com/darknet/yolov1/
----------------------2018.5.7后记分割线------------------------------
补上YOLOv3的视频检测的链接:
浩克匠心:【目标检测简史】YOLOv3的实景大片儿