一句话总结:YOLO(You Only Look Once)首次将目标检测建模为单一的回归问题——从整张图像到边界框坐标和类别概率的端到端预测,以 45 FPS 的实时速度(Fast YOLO 达到 155 FPS)开创了单阶段目标检测范式,在速度上大幅超越了以 R-CNN 为代表的传统两阶段方法。


Intro

Motivation

在 YOLO 之前,目标检测的主流范式是将检测问题拆分为多个阶段:

  1. R-CNN 系列:区域提议 → 特征提取 → 分类 → 边界框回归
  2. DPM(Deformable Part Models):滑窗 + 分类器

这些方法的共同问题是:

  • :多个组件各自独立优化,无法端到端,推理速度难以实时
  • 复杂:需要手工设计的组件(如 Selective Search、非极大值抑制 NMS)
  • 不够全局:分类器只看局部区域,缺少对整张图像的上下文理解

核心主张

YOLO 的根本创新在于:将目标检测重新定义为一个回归问题——直接从图像像素预测边界框和类别概率。

这带来了几个革命性的变化:

  1. 端到端可微:整个 pipeline 是一个神经网络,可以直接在检测性能上优化
  2. 极快:单次前向传播即可完成检测
  3. 全局推理:预测时网络”看到”整张图像,而不是局部候选区域,背景误检率极低

贡献

  1. 提出 YOLO,第一个统一且实时的单阶段目标检测器
  2. 将检测建模为回归问题,消除手工设计的 pipeline 组件
  3. 45 FPS(base)/ 155 FPS(Fast YOLO)
  4. 泛化能力强:在艺术品检测(Picasso Dataset、People-Art Dataset)上大幅超越 DPM 和 R-CNN

Method 核心方法

Figure 1: YOLO 统一检测框架——将整张图像划分为 S×S 网格,每个网格预测 B 个边界框和 C 个类别概率,最终输出 S×S×(B5+C) 维张量。整张图像经过单次 CNN 前向传播即可得到所有检测结果,实现了端到端可微的实时目标检测。*

1. 统一检测框架

YOLO 的核心思想极其简洁:

  1. 将输入图像划分为 S × S 的网格(grid),如 7×7
  2. 每个网格负责预测 B 个边界框(bounding box)和对应的置信度
  3. 每个网格同时预测 C 个类别的条件概率
  4. 最终输出是一个 S × S × (B*5 + C) 维的张量

每个边界框的预测:5 个值 (x, y, w, h, confidence)

  • (x, y):边界框中心相对于网格单元的坐标
  • (w, h):边界框的宽度和高度,相对于整张图像
  • confidence:Pr(Object) × IoU(是否包含物体 × 预测框与真实框的 IoU)

每个网格的类别预测:C 个条件概率 Pr(Class_i | Object)

训练时的目标分配:网格中物体的中心落在哪个网格,该网格就负责预测这个物体。

2. 网络架构

YOLO 的架构受 GoogLeNet(Inception)启发:

  • 24 个卷积层 + 2 个全连接层
  • 使用 1×1 卷积进行降维,3×3 卷积提取特征
  • Fast YOLO:9 个卷积层,更少的 filter,追求极致速度

Figure 2: YOLO 检测结果示例——在 PASCAL VOC 数据集上的定性检测结果。YOLO 能够检测出图像中的多种物体(人、车、动物等),但由于 7×7 粗粒度网格的限制,小物体和密集物体的定位精度相对较差。

3. 损失函数:多部分加权 Sum-Squared Error

YOLO 优化的核心挑战:大多数网格不含物体(背景)→如果对所有网格等权,背景的置信度损失会主导训练。

损失函数五部分

部分权重范围说明
坐标 (x, y)λ_coord=5仅含物体的网格定位精度至关重要——高权重
尺寸 (w, h)λ_coord=5仅含物体的网格但对大框惩罚相同于小框→对小物体不公
含物体的置信度1仅含物体的网格Pr(Object)×IoU 应→1
不含物体的置信度λ_noobj=0.5仅不含物体的网格降低权重防主导训练
类别1仅含物体的网格条件概率 Pr(Class

关键设计

  • 对 w, h 取平方根后再计算 SSE——部分缓解大框/小框偏差不一致问题(大框的 w 误差 10px vs 小框的 w 误差 10px)
  • NMS 后处理尽管声称”端到端”,但推理时仍需 NMS 去重——这是 YOLO 相比现代端到端检测器(如 DETR)的主要局限

4. 训练细节

配置
预训练ImageNet 1000 类(前 20 卷积层 + AvgPool + FC),224²
检测训练分辨率提升至 448²(double resolution for fine details)
优化器SGD,momentum 0.9,weight decay 5e-4
学习率初始 1e-3 → 逐步衰减
数据增强随机缩放/平移(达原图 20%)+ HSV 色彩空间扰动
正则化Dropout(0.5,第一个 FC 后)

5. 设计局限分析

问题根因后续改进
空间约束过强每个网格最多预测 B=2 个框→密集小物体场景受限YOLOv2+ 使用 anchor boxes
定位误差大全连接层直接预测坐标,无锚框精调后续版本引入 anchor-based
小物体召回低7×7 粗网格+全图特征(无 FPN 多尺度)YOLOv3 引入 FPN 式多尺度

4. 推理

  • 单次前向传播输出所有预测
  • NMS(非极大值抑制)用于去除重叠的重复检测框(虽然是”端到端”,但仍需 NMS 后处理)

实验/评估/结果

PASCAL VOC 2007 检测

模型mAPFPS
Fast R-CNN70.0%0.5
Faster R-CNN VGG-1673.2%7
YOLO63.4%45
Fast YOLO52.7%155
YOLO + Fast R-CNN 后处理75.0%~10

YOLO 在速度上遥遥领先,但 mAP 低于两阶段方法。

PASCAL VOC 2012

模型mAP
Fast R-CNN68.4%
YOLO57.9%

泛化实验

Picasso Dataset(艺术画中的人物检测):

  • YOLO 的 AP 远高于 R-CNN 和 DPM
  • 原因:YOLO 学到了更一般的”物体性”表征,而不是局部纹理特征

People-Art Dataset

  • 同样的跨域泛化优势

错误分析

相比 Fast R-CNN,YOLO 的错误分布有鲜明特征:

  • 定位错误(localization error):YOLO 更多——因为网格划分粗糙,对小物体和密集物体的边界框预测不够精确
  • 背景误检(false positive on background):YOLO 少得多(约一半)——因为”看到”了整张图,能利用全局上下文区分前景和背景

结论

YOLO 开创了单阶段实时目标检测的范式——将检测简化为回归问题,以极致的速度和简洁性为代价换取了一定的精度损失(主要是定位精度)。其对视觉特征的泛化能力(跨域从真实照片到艺术品)暗示了回归式检测具有优良的语义学习特性。YOLO 引发了庞大的后续工作系列(YOLOv2 到 YOLOv10),成为工业部署中最广泛使用的目标检测框架之一。


思考

优点

  1. 开创性范式:YOLO 是单阶段目标检测的开山之作。将检测视为回归这一思路看似简单,但在 2015 年是极具颠覆性的。它直接挑战了”区域提议是必需的”这一当时的主流认知。

  2. 工程价值巨大:45-155 FPS 的实时检测能力使 YOLO 成为第一个真正可部署的 AI 检测系统,深刻影响了自动驾驶、视频监控、AR 等应用。

  3. 全局推理的优势:YOLO 利用整张图像进行预测,对背景的错误分类远少于基于局部候选区域的 R-CNN。这个洞察至今适用:全局上下文是检测质量的关键。

  4. 泛化能力:在艺术品检测上的优异表现不是偶然——回归式学习可能比分类式学习提取了更本质的视觉表征。

缺点与局限

  1. 定位精度差:7×7 的粗粒度网格 + 每个网格 2 个框的设计导致对小物体和密集物体的定位很差。后续 YOLOv2/v3 通过引入 anchor boxes 和多尺度预测解决了这个问题。

  2. 小物体检测困难:每个网格最多检测 B 个物体,当多个小物体落在一个网格中时必然漏检。

  3. 不自然的空间约束:每个网格预测的边界框受限于网格位置(中心必须在网格内),这对横跨多个网格的大物体是一种不合理约束。

  4. mAP 不如两阶段方法:在精度上无法与 Faster R-CNN 竞争。后续的 YOLOv4-v10 通过大量改进(CSPNet、PANet、Mish、数据增强等)才逐步缩小并最终反超。

与已有 Wiki 的连接