Ch07 CNN与CV修订于 二〇二六年七月六日

深挖-YOLO (You Only Look Once)

一句话理解

YOLO (You Only Look Once) 是实时目标检测领域的标杆算法,将目标检测建模为单一的回归问题——一次前向传播同时预测边界框 (Bounding Box) 和类别概率,无需 RPN (Region Proposal Network) 等分阶段流程,2026 年仍是最广泛使用的工业级目标检测方案。

零基础理解

传统目标检测方法(如 R-CNN 系列)的工作流程:第一步,用滑动窗口或选择性搜索在图像上”扫”出可能有物体的候选区域(Region Proposals);第二步,对每个候选区域做分类(这是什么?)和边界框精修(框在哪里?)。这种”扫一遍再判断”的方式效率很低。

YOLO 的思路完全不同:只看一眼就告诉你”哪里有什么”。它把图像划分为一个网格(比如 7x7),每个网格单元负责预测”这个格子中心有没有物体,如果有,完整框是什么,是什么类别”。一次性输出所有检测结果,一步到位。

类比:传统方法像你拿着一只手电筒,在黑暗中逐片区域寻找钥匙;YOLO 像你打开灯,整间屋子一览无余,直接告诉你钥匙在哪。

这种”一步到位”的设计使得 YOLO 的推理速度极快(45+ FPS,甚至 100+ FPS),非常适用于实时视频流、自动驾驶、安防监控等需要快速响应的场景。

核心概念

1. 网格划分 (Grid Division)

输入图像被划分为 的网格(如 YOLOv1 中 )。每个网格单元负责预测中心点落在该网格内的物体。如果一个物体的中心在某个网格单元中,该单元就”声称”负责检测这个物体。

这是 YOLO 最核心的设计思想:将空间划分的责任分配给每个网格单元,每个单元只负责图像的一小块区域。

2. 边界框预测 (Bounding Box Prediction)

每个网格单元预测 个边界框(YOLOv1 中 ),每个框包含 5 个值:

  • :边界框中心相对于网格单元边界的偏移(归一化到 [0, 1])
  • :边界框的宽高相对于整张图像的比例(归一化到 [0, 1])
  • :该框包含物体的置信度 =

同时,每个网格单元还预测 个类别概率 (条件概率,前提是该网格确实包含物体)。

最终输出张量维度:。以 YOLOv1 在 VOC 数据集上为例:。

3. 置信度 (Confidence) 与 IoU

置信度 (Confidence Score) 衡量两个方面的乘积:

  • 该网格是否包含物体()
  • 预测框与真实框的重叠程度()

IoU (Intersection over Union):预测框与真实框的交集面积除以并集面积,是衡量边界框预测质量的指标。。

推理时,最终每个框的类别置信度为:

4. NMS (非极大值抑制, Non-Maximum Suppression)

YOLO 的一个网格可能产生多个预测框(尤其是相邻网格对同一物体都产生高置信度预测),NMS 用于去除冗余框:

  1. 按置信度对所有预测框排序
  2. 选择置信度最高的框,保留
  3. 计算其他框与该框的 IoU,超过阈值(如 0.5)的视为重复,删除
  4. 在剩余框中重复步骤 2-3,直到所有框处理完毕

NMS 是目标检测的”最后一道关卡”,直接影响最终检测结果的精确度。

5. 损失函数设计

YOLO 的损失函数是多任务损失,包含三个部分:

  • 第一行:边界框坐标损失(仅针对包含物体的框),对宽高取平方根以减小大框的误差敏感性
  • 第二行:置信度损失(包含物体和不含物体的框分别计算,不含物体的权重 较小)
  • 第三行:分类损失(仅针对包含物体的网格单元)

YOLO 版本演进

版本年份Backbone核心创新定位
YOLOv12015自定义 CNN (24 层)开创性工作:统一检测框架,端到端回归学术验证,开创性但精度较低
YOLOv2 (YOLO9000)2016Darknet-19引入 Anchor Box、Batch Normalization、多尺度训练、联合分类与检测训练大幅提升精度和速度
YOLOv32018Darknet-53引入 FPN 多尺度预测,3 个尺度检测头,ResNet 风格残差连接工业界最广泛使用的经典版本
YOLOv42020CSPDarknet-53引入 CSPNet、PANet、Mish 激活函数、Mosaic 数据增强、CIoU Loss精度和速度的极致优化(非官方作者)
YOLOv52020CSPNet 变体Ultralytics 接手,PyTorch 原生实现,N/S/M/L/X 多尺寸模型,工程化完善工业部署最便捷的版本
YOLOv62022EfficientRep美团提出,RepVGG 风格 backbone,工业级优化工业场景专项优化
YOLOv72022E-ELAN可扩展的高效聚合网络,模型重参数化,动态标签分配训练技巧的系统化总结
YOLOv82023CSPNet + C2fUltralytics 统一框架,支持分类/检测/分割/姿态估计,Anchor-Free全能型统一视觉框架
YOLOv92024GELAN + PGI可编程梯度信息 (PGI),广义高效层聚合网络 (GELAN)信息瓶颈理论驱动,解决深层网络信息丢失
YOLOv102024一致双标签分配无需 NMS!一致双标签分配策略,端到端训练+推理首个真正端到端的 YOLO,NMS-Free
YOLO112024C3k2 + C2PSA进一步提高精度,支持更多视觉任务,Ultralytics 最新版本2025 年工业部署主流选择

YOLO 版本命名的”混乱”历史

需要注意的是,YOLOv5 及之后的版本并非原作者 Joseph Redmon 发布(他因伦理顾虑于 2020 年宣布退出 CV 研究)。YOLOv5 由 Ultralytics 公司发布,YOLOv6 由美团团队发布,YOLOv7 由原作者之一 Chien-Yao Wang 等发布,YOLOv8 及之后又回到 Ultralytics。这种”多线并行”的命名方式在社区引起了一些争议,但也反映了 YOLO 在工业界的巨大影响力。

YOLO 与其他检测器对比

维度YOLO 系列Faster R-CNNDETR (DEtection TRansformer)
检测范式单阶段 (One-Stage):直接回归框 + 类别两阶段 (Two-Stage):RPN 候选区域 + 分类/回归基于 Transformer 的端到端集合预测
推理速度极快 (45-160+ FPS)较慢 (5-17 FPS)中等 (20-30 FPS,优化后)
检测精度 (mAP)良好-优秀 (50-55+ mAP on COCO)优秀 (依赖 backbone)优秀 (SOTA 级别,尤其大物体)
小物体检测较弱(早期版本),YOLOv8+ 显著改善较好(FPN 多尺度特征)弱(DETR 原版),Deformable DETR 改善
NMS 需求需要(YOLOv10 除外)需要不需要(二分图匹配 + 匈牙利算法)
训练复杂度低,单阶段训练,超参数较少中等,Alternating Training 或 Approximate Joint Training高,收敛慢(原版 DETR 需 500 epochs)
部署友好度极高,ONNX/TensorRT/TFLite/NCNN 全面支持中等,需要 RPN + RCNN 双模块较低,Transformer 推理优化不如 CNN 成熟
2026 年工业应用安防、自动驾驶、零售、无人机、移动端精度优先场景(医学影像、遥感)新兴场景,多模态大模型视觉分支

2026 年定位

YOLO 是实时目标检测的工业首选,短期内地位难以撼动。

YOLO 的核心优势:

  • 速度优势:单阶段检测 + CNN backbone 的极致优化,使得 YOLO 在边缘设备(Jetson Nano、手机 NPU)上也能实时运行
  • 工程生态:Ultralytics 提供了从训练、验证、导出到部署的完整工具链,yolo predict model=yolov8n.pt source=video.mp4 一行命令即可完成推理
  • 多任务扩展:YOLOv8+ 不再局限于检测,而是扩展为分类、实例分割、姿态估计、OBB(旋转框检测)的统一框架
  • 持续迭代:从 YOLOv5 到 YOLO11,社区持续贡献新技巧、新架构、新优化,保持着旺盛的生命力

YOLO 面临的挑战:

  • DETR 系列的追赶:RT-DETR (Real-Time DETR) 等优化版 DETR 在保持端到端优势的同时,推理速度已接近 YOLO 水平
  • 多模态大模型的降维打击:GPT-5.5、Gemini 3.5 Pro 等多模态模型可以通过自然语言描述直接定位物体,虽然速度远不及 YOLO,但在灵活性和表达能力上有本质优势
  • YOLO 版本碎片化:YOLOv5/v6/v7/v8/v9/v10/11 由不同团队维护,社区在选择时存在困惑

2026 年实践建议:如果你的任务是”实时检测”且场景相对固定(安防、工业质检、零售),YOLOv8/YOLO11 仍然是最优选择;如果追求极致精度且能接受稍慢的推理,Deformable DETR 或 DINO 值得考虑;如果任务需要灵活的自然语言交互,多模态大模型是未来方向。

相关笔记

来源

关联8

知识图谱

局部图谱 · 点节点跳转