AI知识分享AI知识分享
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
  • 大模型基础

    • 语言模型基础

      • 概述
      • 基于统计方法的语言模型
      • 基于神经网络的语言模型
      • 语言模型的采样方法
      • 语言模型的评测
    • 大语言模型架构

      • 概述
      • 主流模型架构
      • Encoder-only
      • Encoder-Decoder
      • Decoder-only
      • 非Transformer 架构
    • Prompt工程

      • 工程简介
      • 上下文学习
      • 思维链
      • 技巧
    • 参数高效微调

      • 概述
      • 参数附加方法
      • 参数选择方法
      • 低秩适配方法
      • 实践与应用
    • 模型编辑

      • 简介
      • 方法
      • 附加参数法
      • 定位编辑法
    • RAG

      • 基础
      • 架构
      • 知识检索
      • 生成增强
  • 动手学深度学习

    • 深度学习基础

      • 引言
      • 数据操作
      • 数据预处理
      • 数学知识(线代、矩阵计算、求导)
      • 线性回归
      • 基础优化方法
      • Softmax回归
      • 感知机
      • 模型选择
      • 过拟合和欠拟合
      • 环境和分布偏移
      • 权重衰减
      • Dropout
      • 数值稳定性
    • 卷积神经网络

      • 模型基本操作
      • 从全连接层到卷积
      • 填充和步长
      • 多个输入和输出通道
      • 池化层
      • LeNet
      • AlexNet
      • VGG
      • NiN网络
      • GoogleNet
      • 批量归一化
      • ResNet
    • 计算机视觉

      • 图像增广
      • 微调
      • 目标检测
      • 锚框
      • 区域卷积神经网络
      • 单发多框检测
      • 一次看完
      • 语义分割
      • 转置卷积
      • 全连接卷积神经网络
      • 样式迁移
    • 循环神经网络

      • 序列模型
      • 语言模型
      • 循环神经网络
      • 序列到序列学习
      • 搜索策略
    • 注意力机制

      • 优化算法

YOLO

参考文献

  • 一文掌握所有 YOLO 模型

概念

YOLO (You Only Look Once) 是目前世界上最流行、应用最广泛的单阶段(One-Stage)实时目标检测算法系列。

与 SSD 类似,YOLO 也将目标检测任务重构为一个单一的回归问题,直接从图像像素到边界框坐标和类别概率。但 YOLO 系列以其极致的速度和不断进化的精度著称,尤其是从 v3 版本开始,它成为了工业界和学术界的首选基准模型之一。

演变与里程碑

image-20260319061824787

早期奠基 (v1 - v2)

  • YOLO v1 (2016):开山之作。速度极快,但定位精度较差,尤其是对小物体和密集物体的检测效果不佳。它将图像分为 7×7网格,每个网格只预测 2 个框。
  • YOLO v2 (YOLO9000, 2017):引入了锚框 (Anchor Boxes) 机制(借鉴 Faster R-CNN),使用了更深的网络结构(Darknet-19),并提出了多尺度训练。Batch Normalization 的加入显著提升了收敛速度和精度。

成熟与爆发 (v3 - v5)

  • YOLO v3 (2018):里程碑版本。
    • 骨干网络:使用 Darknet-53(引入残差连接)。
    • 多尺度预测:借鉴 SSD 和 FPN 思想,在三个不同尺度的特征图上进行预测,极大地提升了对小物体的检测能力。
    • 分类器:将 Softmax 改为独立的 Logistic 分类器,支持多标签分类(一个物体属于多个类别)。
  • YOLO v4 (2020):集大成者。没有改变主干架构,而是系统性地整合了各种“技巧”(Bag of Freebies & Bag of Specials),如 Mosaic 数据增强、CmBN、SAM (Spatial Attention Module)、CIoU Loss 等,在速度和精度上全面超越 v3。
  • YOLO v5 (2020):由 Ultralytics 公司发布(非原作者 Joseph Redmon)。
    • 工程化极致:首次将模型部署变得极其简单,支持 PyTorch 原生,内置自动锚框计算、超参数进化等。
    • 结构创新:引入了 Focus 结构(后期被替换)、CSPNet (Cross Stage Partial Network) 来减少计算量并增强梯度传播。
    • 虽然学术创新性有争议,但其易用性和生态完善度使其成为工业界落地最快的版本。

现代革新 (v6 - v10+)

  • YOLO v6 / v7 / v8:
    • YOLO v8 (2023):Ultralytics 推出。最大的变化是Anchor-Free(无锚框)设计,简化了模型结构;解耦头(Decoupled Head)分离分类和回归任务;引入了新的损失函数。目前是最主流的通用版本。
    • YOLO v9 (2024):提出了可编程梯度信息 (PGI) 和 辅助可逆分支 (GELAN),旨在解决深度网络中的信息瓶颈问题。
    • YOLO v10 (2024):清华大学团队提出。主打无NMS训练 (NMS-Free Training),通过一致性双重分配策略,彻底消除了推理阶段的非极大值抑制(NMS)延迟,进一步提升了实时性。

网络架构

YOLO的核心架构是一个卷积神经网络(CNN),通常包括多层卷积、池化和全连接层。YOLOv1使用了一个简单的卷积网络,而后续版本(如YOLOv3、YOLOv4)则引入了更复杂的特征提取器(如Darknet-53、CSPNet)以提高检测精度。YOLOv1的架构如下:

image-20260319063028031

单阶段模型遵循特定的设计模式,即“骨干-颈部-头部”。然而,YOLOv1 中没有“颈部”的概念,只有骨干和头部。YOLOv1 的架构灵感来源于 GoogleNet,包含 24 个卷积层和两个全连接层。其中,前 20 个卷积层构成骨干,其余层连接到另外两个全连接层,作为检测头部。YOLOv1 没有使用 Inception 模块,而是在骨干中使用了一个 1×1 卷积层和 3×3 卷积层。这有助于在不降低空间维度的情况下减少通道数,从而显著降低参数数量。

工作原理

YOLO的工作原理基于将目标检测任务转化为一个回归问题。具体来说:

  1. YOLO模型将输入图像划分为S×S的网格,每个网格预测 (B) 个边界框坐标和与边界框相关的目标概率(objectness score),以及 (C) 个类别概率。(预测结果被编码为一个 S x S x ( B x 5 + C) 的张量。这也意味着每个网格单元只能预测一个物体。)
  2. 模型的输出是一系列边界框、类别标签以及对应的置信度分数。
  3. YOLO通过一次性处理整个图像,生成所有目标的检测结果,这种方法显著提高了检测速度。

对于边界框坐标,YOLO 预测边界框的中心 ((x, y)) 以及宽度 (w) 和高度 (h)。中心坐标相对于网格单元,因此范围在 0 到 1 之间;宽度和高度相对于图像尺寸,也在 0 到 1 之间。目标概率(objectness score)表示边界框内是否包含物体,其计算公式为:

p(Object)×IOUpredtruth p(\text{Object}) \times IOU_{\text{pred}}^{\text{truth}} p(Object)×IOUpredtruth​

公式说明:

  • p(Object)p(\text{Object})p(Object):该网格单元包含物体的概率。
  • IOUpredtruthIOU_{\text{pred}}^{\text{truth}}IOUpredtruth​:预测框与真实框的交并比(Intersection over Union, IoU)。
image-20260319063723506

由于检测头需要预测边界框坐标、目标概率(objectness score)以及物体类别,因此 YOLOv1 的损失函数分为三个部分:定位损失(localization loss)、置信度损失(confidence loss)和分类损失(classification loss)。

最近更新: 2026/3/22 18:37
Contributors: klc407073648
Prev
单发多框检测
Next
语义分割