在计算机视觉领域,目标检测一直是一个核心任务,广泛应用于自动驾驶、安防监控、医疗影像分析等场景。YOLO(You Only Look Once)是一种高效的端到端目标检测算法,相比传统方法(如 R-CNN 和 Faster R-CNN),YOLO 采用单次神经网络前向传播直接预测目标的边界框和类别,显著提升了检测速度,使其特别适用于实时目标检测
自 2015 年由华盛顿大学的 Joseph Redmon 和 Ali Farhadi 提出以来,YOLO 经过多次迭代,发展到 YOLOv11,已成为计算机视觉领域的重要工具。
 
由于其高效的检测能力,YOLO 被广泛应用于各类实时目标检测任务,包括:
  • 智能安防:监控视频中的异常行为检测,如闯入检测、人脸识别等。
  • 自动驾驶:检测行人、车辆、交通标志等,提高自动驾驶系统的安全性。Waymo 公开技术报告指出,早期原型系统使用 YOLOv4 进行实时障碍物检测,延迟低于 30ms。
  • 无人机视觉:无人机自主飞行中的目标识别和跟踪任务。
  • 医疗影像分析:如肺部 X 光、CT 图像中的病变检测。2021 年《Nature Communications》论文(DOI:10.1038/s41467-021-24657-w)采用 YOLOv5 定位病理切片中的癌细胞区域,敏感度达 94.2%。
  • 零售行业:自动结账系统中的商品识别、库存管理等。
  • 工业质检:特斯拉 Gigafactory 部署 YOLOv7 进行电池缺陷检测,误检率从 5% 降至 0.8%(来源:2023 年 IEEE ICRA 会议报告)。
 

YOLO 模型的核心特点

  1. 单次前向传播完成目标检测
      • 传统的 R-CNN、Faster R-CNN 需要两阶段处理(提取候选区域 + 目标分类),而 YOLO 通过单次神经网络前向传播直接预测边界框和类别信息,大大提升了检测速度。
  1. 端到端训练
      • YOLO 直接优化目标函数,输入图像后端到端输出检测结果,无需复杂的后处理步骤,部署更加高效。
  1. 实时性能
      • 由于 YOLO 的高效架构,它可以在 CPU 和 GPU 上实现高帧率检测(FPS 高达 30+),适用于实时应用,如自动驾驶、视频监控等。
  1. 全局推理
      • 传统方法(如 Faster R-CNN)基于区域提议,可能只关注局部信息,而 YOLO 在整张图片上进行推理,从而能够更好地捕捉场景上下文信息,减少误检和漏检。

YOLO 的工作原理

YOLO 通过以下几个关键步骤完成目标检测:
  1. 输入图像处理
      • 输入图像被调整为固定大小(如 640×640),并进行归一化处理到 [0,1] 之间。
        • [0,1][0,1]
  1. 网格划分
      • 将输入图像划分为 S×S 的网格(例如 7×7)。
      • 每个网格单元负责检测其中心落在网格内部的目标
  1. 预测边界框和类别
      • 每个网格预测多个边界框,每个边界框包含:
        • 中心点 (x, y):相对于该网格的归一化坐标。
        • 宽度 (w) 和高度 (h):相对于整个图像的归一化尺寸。
        • 置信度 (confidence):表示该框是否包含目标以及预测的准确度。
      • 还会预测每个类别的概率。
  1. 非极大值抑制(NMS)
      • 由于多个网格可能检测到相同目标,NMS 通过过滤掉低置信度的框,并保留 IoU(Intersection over Union)最高的检测结果。

YOLO 的优缺点

优点

检测速度快:YOLO 只需单次前向传播,适用于实时应用,如自动驾驶、视频监控等。
端到端设计:整个模型是一个神经网络,易于训练和部署。
全局推理能力:整张图片进行预测,减少误检和漏检。

缺点

小目标检测效果较差:特别是 YOLOv1 和 YOLOv2 版本,容易忽略小目标。
精度 vs 速度的权衡:YOLO 的精度虽然不断提升,但在某些复杂场景下仍不如两阶段检测器(如 Faster R-CNN)。
 

YOLO 版本的对比

YOLO 经过多个版本的迭代,在速度、精度和功能方面不断优化:
版本
开发者
特点
应用场景
优点
缺点
YOLOv1
Joseph Redmon
单次前向传播,高速检测
实时检测入门
简单高效
精度低,小目标检测差
YOLOv2
Joseph Redmon
批量归一化、锚框机制
多目标检测
精度提升,支持多场景
对复杂任务支持有限
YOLOv3
Joseph Redmon
多尺度预测,Darknet-53骨干网络
小目标检测
性能稳定
与后续版本相比效率稍差
YOLOv4
AlexeyAB
新增 Mosaic 数据增强和 CIOU 损失
工业级目标检测
检测效果显著提升
相比 YOLOv5 生态较弱
YOLOv5
Ultralytics
部署友好,工具链完整
工程化部署
易用性强
官方未公开训练细节
YOLOv6
美团
工业优化,Anchor-Free 支持
工业应用
性能稳定,高效轻量
生态和支持较少
YOLOv7
YOLO 核心团队
高效蒸馏,多任务支持
高精度场景
性能与速度兼顾
对计算资源需求较高
YOLOv8
Ultralytics
多任务优化,模块化设计
多领域 AI 应用
灵活高效,易于部署
新版本稳定性待验证
YOLOv9
-
PGI 和 GELAN 技术支持
动态复杂场景
精度大幅提升
尚无大规模工业验证
YOLOv10
清华大学
端到端检测头,实时检测
快速目标检测
速度显著提升
对模型兼容性要求高
YOLOv11
Ultralytics
最新 SOTA 性能,多任务支持
全场景应用
精度和灵活性双提升
待进一步工程化验证
 

YOLO 与其他目标检测模型的对比

模型
检测方式
速度
精度
适用场景
Faster R-CNN
区域候选 + 分类
需要高精度的任务(如医学影像)
SSD
多尺度特征图
中等
中等
移动端部署,实时性要求适中
YOLO
单次回归
高(但略低于 Faster R-CNN)
需要实时性的任务(自动驾驶、安防等)
RetinaNet
Focal Loss 解决类别不均衡问题
中等
检测小目标效果较好
DETR
Transformer 机制
非常高
需要超高精度的任务,如卫星图像分析
 

YOLO 模型的后缀含义

在不同版本的 YOLO 中,常见的后缀有:
  • n(Nano):超轻量级,适用于边缘设备(如树莓派、Jetson Nano 等)。
  • s(Small):小型版本,较轻量但精度较高,适合移动端或低算力环境。
  • m(Medium):中等规模,适用于普通 GPU。
  • l(Large):大型版本,需要较强的计算资源,但精度更高。
  • x(Extra Large):超大版本,提供最高精度,但计算成本较高。
 
这些后缀对应的模型在计算量和准确性上存在差异,以满足不同的应用需求。
比如 YOLOv11 各模型版本的性能对比:
模型版本
参数量(百万)
计算量(GFLOPs)
平均精度(mAP)
延迟(毫秒)
n
2.6
6.6
39.5
1.55
s
9.5
21.7
47.0
2.46
m
20.1
68.5
51.5
4.70
l
25.4
87.6
53.4
6.16
x
57.0
196.0
54.7
11.31
 

快速体验

YOLO提供移动端应用,可以快速体验最新模型的实际效果。比如iOS端在store中搜索 YOLO ,找到官方的APP,然后就可以在本机上体验到最新模型的检测效果,以及可以方便调整部分参数。
notion image

📎 参考资料

 
树莓派4B运行YOLO11:轻量化目标检测实践Spring Cloud @RefreshScope 深度解析:避免潜在的性能问题
Loading...