【深度学习】YOLOv1目标检测算法——核心思想、网络结构与损失函数解析
YOLOv1 目标检测算法深度解析
一、YOLOv1 核心思想
1. 核心思想
YOLOv1(You Only Look Once version 1)将目标检测任务视为一个端到端的回归问题。其核心思想是:将输入图像划分为 S×S 个网格单元(grid cell),如果某个目标的中心点落在某个网格内,则该网格负责预测该目标。
在 YOLOv1 中,图像被划分为 7×7 = 49 个网格,每个网格负责检测其区域内的目标。

2. 示例说明
以上图为例,YOLOv1 将输入图片划分为 7×7 的网格,每个网格允许预测 2 个边界框(bounding box),这些边界框的尺寸可以超出当前网格的边界范围。
对于每个边界框,YOLOv1 预测 5 个参数:
- 中心点坐标:
x, y(相对于网格边界的偏移量) - 宽度与高度:
w, h(相对于整张图像的尺寸比例) - 置信度(Confidence):反映该框内包含目标的信心程度以及定位的准确度

3. 网络结构与流程图解析
网络结构组成
YOLOv1 的网络结构主要由以下部分组成:
- 24 个卷积层:用于提取图像特征
- 2 个全连接层:用于输出最终的预测结果
输入与输出
| 项目 | 规格 |
|---|---|
| 输入 | 448 × 448 × 3(彩色图像) |
| 输出 | 7 × 7 × 30(张量) |
输出张量含义
- 7 × 7:表示将输入图片划分成 7×7 个网格,每个网格负责检测其区域内的目标。
- 30:表示每个网格的预测信息,包含:
- 20 个类别概率(以 PASCAL VOC 数据集为例,共 20 个类别)
- 2 个边界框信息(每个边界框包含
x, y, w, h, confidence,共 5 个参数 × 2 = 10 个值)
坐标归一化说明
- 中心点坐标
x, y:相对于所在网格的边界进行归一化,取值范围 [0, 1]。 - 宽度
w和高度h:相对于整张图像的宽度和高度进行归一化,取值范围 [0, 1]。

二、YOLOv1 损失函数详解
YOLOv1 的损失函数由三部分组成:位置误差、置信度误差和类别概率误差。
1. 位置误差(Localization Loss)
位置误差用于衡量预测边界框与真实边界框在位置和尺寸上的偏差。
计算公式要点:
S²表示网格数量(YOLOv1 中为 7² = 49)B表示每个网格预测的边界框数量(YOLOv1 中为 2)𝟙_{ij}^{obj}表示:若第i个网格的第j个边界框负责预测目标,则值为 1,否则为 0- 坐标
x, y和尺寸w, h的误差分别计算,并可根据需求设置不同的权重系数
权重说明:如果认为位置误差更重要,可以将对应的权重系数设置得更大;反之亦然。
2. 置信度误差(Confidence Loss)
置信度表示边界框内包含目标的概率以及定位的准确度,计算公式为:
Confidence = Pr(Object) × IoU
其中:
Pr(Object):边界框内存在目标的概率(存在为 1,不存在为 0)IoU:预测框与真实框的交并比(Intersection over Union)
损失计算:
- 对于负责预测目标的边界框(
𝟙_{ij}^{obj} = 1):计算预测置信度与真实置信度(即 IoU)之间的误差 - 对于不负责预测目标的边界框(
𝟙_{ij}^{noobj} = 1):同样计算误差,但通常给予较小的权重,以平衡正负样本
3. 类别概率损失(Classification Loss)
类别概率损失用于衡量预测的类别分布与真实标签之间的差异。
计算公式要点:
𝟙_{i}^{obj}表示:若第i个网格包含目标,则值为 1,否则为 0p_i(c) - \hat{p}_i(c):预测类别概率与真实标签(One-Hot 向量)之间的差值
示例:若模型输出 20 个类别的概率值,真实标签为"狗"(对应索引位置为 1,其余为 0),则只计算"狗"这一类别上的误差平方。
三、NMS 非极大值抑制
1. 概念
在目标检测过程中,模型通常会生成大量候选框(YOLOv1 中每个网格生成 2 个,总共 98 个候选框)。这些候选框之间可能存在重叠或包含关系,导致同一个目标被多次检测。
非极大值抑制(NMS,Non-Maximum Suppression) 的作用就是筛选出最佳的目标框,去除冗余的重复检测。

如上图所示,同一个人脸被多个候选框检测到,导致框与框之间严重重叠。NMS 会保留置信度最高的框,抑制其他重叠度较高的框。
2. 执行步骤
- 排序:根据置信度得分对所有候选框进行降序排列。
- 选取最高分框:选择得分最高的候选框,将其加入最终保留列表。
- 计算重叠度:计算当前选中框与其他所有候选框的 IoU(交并比)。
- 抑制冗余框:若 IoU 超过设定的阈值(如 0.5),则将该候选框移除。
- 迭代处理:重复步骤 2~4,直到所有候选框都被处理完毕。
四、YOLOv1 优缺点分析
1. 优点
| 优点 | 说明 |
|---|---|
| 检测速度快 | YOLOv1 专为实时目标检测设计,推理速度可达每秒数十至上百帧,远超同期算法(如 R-CNN) |
| 端到端训练 | 将目标检测视为单一的回归问题,直接在全局上预测类别和位置,无需复杂的候选区域生成和后处理 |
| 多尺度预测 | 训练和测试阶段均对不同尺度的图像进行处理,通过网格划分和多边界框设计,适应不同尺寸的目标 |
| 网络结构简单 | 由 24 个卷积层和 2 个全连接层组成,结构清晰,易于实现和部署 |
2. 缺点
| 缺点 | 说明 |
|---|---|
| 小目标检测效果差 | 输入图像为 448×448,输出特征图仅为 7×7,下采样倍率较大,容易丢失小目标的特征信息,导致漏检或误检 |
| 网格限制 | 每个网格只能预测 2 个边界框且只能识别 1 个类别,在处理密集目标或多类别重叠场景时能力不足 |
| 定位精度有限 | 对于细长形目标或边界框与网格不对齐的情况,定位准确度不如基于锚点(Anchor)的方法 |
更多推荐




所有评论(0)