目录
一、前言
本文意在梳理YOLO的发展历史,较为通识性,尽可能少涉及技术讲解。
二、What is YOLO?
1.1 惊天出世
2015年6月,Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi 团队提出了《You Only Look Once: Unified, Real-Time Object Detection》论文,对标Faster R-CNN系列算法(何恺明团队),从此掀起了一场目标检测领域技术革命。附上一作Joseph Redmon的帅照:
1.1.1 基本思想
一言以蔽之:YOLO通过端到端的单阶段回归,直接从整幅图像预测目标的类别和位置,实现了高速、实时、全局感知的目标检测。
Q:啥叫端到端?单阶段?回归?
A:问得好,那就是存在不是端到端,不是单阶段,不是回归的方法应用于目标检测领域,且看1.2章节竞争对手。你得先了解当时的主流门派(算法),才能体会YOLO的颠覆性。
1.2 独领风骚
YOLO横空出世,一时间CV界炸开了锅,反响为何如此热烈,那就得看看在它出现之前主流的目前检测算法是怎么干的了。
1.2.1 竞争对手(主流门派)
R-CNN系列
- R-CNN(2014)
- Fast R-CNN(2015)
- Faster R-CNN(2015)
核心思想:
通俗来讲目标检测就是3个步骤:
- 生成候选框;
- 特征提取;
- softmax分类。
解释:一张图片送进去模型,先生成很多的候选框,接着对这些方框区域进行特征提取,最后进行分类。非常直觉的行为,机器不知道物体在哪里,就先生成一大堆框框,那必然是能够覆盖图片中的检测目标的,那这些检测目标属于哪个类别呢?那不得先进行特征提取,再送进去softmax进行分类,最后该合并的框框合并,该去除的框框去除即可。
缺点:我愿称之为“一图拆多图”,增加了计算量,导致慢。
小结:这就是所谓的“two stage”两步式方法,也就是先找框框,再特征提取、分类的方法,未涉及回归,Faster R-CNN首次实现端到端,所谓端到端其实也就是“one stage”。
1.2.2 华山论剑(对比)
YOLO(One-Stage) | R-CNN 系列(Two-Stage) | |
---|---|---|
核心思想 | 直接回归目标的类别和位置,端到端预测 | 先生成候选框,再分类,分步骤完成 |
计算流程 | 一次前向传播直接预测所有目标 | 两阶段(区域提议 + 分类) |
速度 | 快(YOLOv1 45 FPS,YOLOv3 可达 100+ FPS) | 慢(R-CNN 0.02 FPS,Faster R-CNN 7 FPS) |
精度 | 速度快但易错检,尤其对小目标和重叠目标较难处理 | 精度高,适用于高要求任务 |
候选框生成 | 无候选框,直接预测 | 需要区域提议(RPN 或 Selective Search) |
适用场景 | 实时检测(如无人机、自动驾驶、安防监控) | 需要高精度的检测任务(如医学影像分析) |
小结:YOLO初代论快很快,论准还是R-CNN你比较准,但是天下武功唯快不破,好比于“高渐离”遇上“暗信”,大招技能CD那么久早就被普攻A死了。
1.3 隐退山林
YOLO经历了2015 至 2018的辉煌时代,Joseph Redmon担心目标检测算法被应用在军事领域,就戛然而止了,决定退出江湖。事实证明,确实是这样的,随着无人机的发展,目标打击全靠计算机视觉。有点武林秘书的感觉了~
1.4 继承者们
Joseph Redmon 是退出江湖了,但是one stage目标检测算法可谓是在武林中掀起了一场腥风血雨,继承了Joseph Redmon的回归思想,从2020年开始,继承者们冒了出来:
- Alexey Bochkovskiy团队;
- Ultralytics公司;
- 美团;
- Chien-Yao Wang团队;
- 清华大学;
- 中国科学院大学;
5年时间把YOLO从v3干到了v12,这大可不必,因为是不同门派的作品,有些版本前后压根没啥联系,大家都来沾老祖宗的光,容易造成误解。下面我会梳理下不同的派系,大家会更加清楚。
三、YOLO发展脉络(Timeline)
2.1 发展时间线
以上是yolo的发展时间线,重申一下从yolov3版本之后就是百花齐放时代,请注意版本前后可能存在没有联系。
2.2 发展阶段
- 开创时代(本尊)
2015 至 2018是开创时代,本尊就是yolov1、yolov2、yolov3。 - 割据时代(不同衍派)
老祖宗那肯定是yolov1 - yolov3。
之后又衍生了俄台门派,漂亮国门派、中华门派(按照人员地区分),但这些都是继承者们。
2.3 归纳
本文梳理了yolo的发展脉络,后续会从技术层面梳理一条架构改进技术路线,以及yolo在工业领域适用算法推荐。
如果梳理还算清晰,有被帮助到,一键三连吧~
(转载请注明出处,谢谢~)