YOLO系列目标检测算法发展史
2021-02-28 本文已影响0人
LabVIEW_Python
目标检测的发展大致经历了两个历史时期,如下图所示:
- 传统的目标检测算法时期 ( 2014年以前 )
- 基于深度学习的目标检测算法时期 ( 2014年以后 )
- 2019年后目标检测算法的发展方向是:单阶段无锚框(anchor-free one-stage),例如:CenterNet、CornerNet、FCOS等
从图中可以看出,Joseph Redmon于2015年提出YOLO算法是的单阶段目标检测算法的开山鼻祖,跟R.Girshick于2014年提出的RCNN系列两阶段目标算法一起引领基于深度学习的目标检测算法的发展。YOLO系列算法是一种能满足实时检测要求(FPS > 30)的高精度算法,如下图所示,所以受到广大工程应用人员的青睐,在实际项目中有非常广泛的应用,值得初学者投入时间精力去学习、研究和应用。
YOLO系列算法在COCO数据集上的检测性能YOLO的全称是You Only Look Once,即你只用看一次。YOLOv1版本是YOLO系列的开山之作,其核心思想是:把目标检测当做一个单一的回归任务。它首先将图像划分为SxS个网格,物体真实框中心落在哪个网格上,就由该网格对应的锚框负责检测该物体。 YOLO统一的检测思路
YOLOv2是在YOLOv1基础上做了优化,包括:
- 骨干网络从224224换为448448的Darknet19
- 采用全卷积网络结构:Conv+BatchNorm
- 使用Kmeans在COCO数据集上类聚Anchor,可以在COCO数据集上达到更好的检测效果
- 引入多尺度训练,提升网络的泛化能力和检测效果
参考文献:《YOLO9000: Better, Faster, Stronger》 YOLOv2的优化措施对检测精度的影响
YOLOv2有一些待改进点:
- 小目标上召回率不高
- 靠近的群体目标检测效果不好
- 检测精度还有优化空间
YOLOv3是在YOLOv2的待改进点上做了进一步的优化,包括:
- 骨干网络Darknet53
- 采用多尺度预测
- 跨尺度特征融合
- 在COCO数据集上类聚9种不同尺度的anchor,每个尺度3个
参考文献:《YOLOv3: An Incremental Improvement》
YOLOv3仍有一些待改进点: - 召回率相对较低
- 定位精度仍需优化
- 靠近的群体目标检测效果较差
从此其它人开始接手YOLO系列算法的改进工作,比较出名的有:
- Alexey Bochkovskiy大神的YOLOv4 《YOLOv4: Optimal Speed and Accuracy of Object Detection》
- 2020.07.24 百度发布产业最实用的PP-YOLO,COCO数据集精度45.9%,Tesla V100预测速度72.9 FPS《PP-YOLO: An Effective and Efficient Implementation of Object Detector》
YOLOv4、PP-YOLO和Scaled-YOLOv4的性能对比图