【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析

YOLOv2 目标检测算法深度解析

  • [一、YOLOv1 与 YOLOv2 核心对比](#一、YOLOv1 与 YOLOv2 核心对比)
  • [二、YOLOv2 核心改进点](#二、YOLOv2 核心改进点)
    • [1. Batch Normalization(批归一化)](#1. Batch Normalization(批归一化))
    • [2. 高分辨率输入微调](#2. 高分辨率输入微调)
  • [三、YOLOv2 网络结构详解](#三、YOLOv2 网络结构详解)
    • [1. 整体网络架构](#1. 整体网络架构)
    • [2. 传统 CNN 的局限性](#2. 传统 CNN 的局限性)
    • [3. YOLOv2 的解决方案 ------ 全局平均池化](#3. YOLOv2 的解决方案 —— 全局平均池化)
  • [四、聚类提取先验框(Anchor Boxes)](#四、聚类提取先验框(Anchor Boxes))
    • [1. YOLOv1 vs YOLOv2 先验框数量](#1. YOLOv1 vs YOLOv2 先验框数量)
    • [2. K-means 聚类算法](#2. K-means 聚类算法)
    • [3. 聚类框数量的确定](#3. 聚类框数量的确定)
    • [4. 先验框分配策略](#4. 先验框分配策略)
  • [五、直接位置预测(Directed Location Prediction)](#五、直接位置预测(Directed Location Prediction))
    • [1. 概念](#1. 概念)
    • [2. 计算公式](#2. 计算公式)
    • [3. 示例说明](#3. 示例说明)
  • 六、感受野与多尺度融合
    • [1. 感受野概念](#1. 感受野概念)
    • [2. Fine-Grained Features(细粒度特征融合)](#2. Fine-Grained Features(细粒度特征融合))
    • [3. 多尺度训练(Multi-Scale Training)](#3. 多尺度训练(Multi-Scale Training))

一、YOLOv1 与 YOLOv2 核心对比

YOLOv2 在 YOLOv1 的基础上进行了全方位的升级,主要改进点包括:

  • 引入 Batch Normalization(批归一化),舍弃 Dropout
  • 使用 高分辨率输入(448×448 微调)
  • 采用 DarkNet-19 作为骨干网络(不含全连接层)
  • 引入 Anchor Box(先验框) 机制,数量从 2 个增加到 5 个
  • 使用 K-means 聚类 自动生成先验框尺寸
  • 支持 多尺度训练(320×320 ~ 608×608)

二、YOLOv2 核心改进点

1. Batch Normalization(批归一化)

YOLOv2 在每一层卷积之后都引入了 Batch Normalization(BN)层 ,并舍弃了 Dropout

BN 层的作用是对网络每一层的输入进行归一化处理,使数据分布更加稳定,从而:

  • 加速收敛:网络训练过程更加平稳
  • 提升精度 :使用 BN 后,mAP(平均精度均值)提升了约 2%
  • 正则化效果:BN 本身具有一定的正则化作用,可替代 Dropout

从目前来看,BN 已成为现代卷积神经网络中的标准配置

2. 高分辨率输入微调

问题背景

YOLOv1 在训练时使用 224×224 的输入尺寸,测试时却使用 448×448,这可能导致模型难以适应测试阶段的分辨率变化。

YOLOv2 的改进

  • 在训练过程中额外增加了 10 次 448×448 的高分辨率微调
  • 通过高分辨率分类器微调后,YOLOv2 的 mAP 提升了约 4%

这一改进使得模型在训练和测试阶段的分辨率保持一致,显著提升了检测精度。

三、YOLOv2 网络结构详解

1. 整体网络架构

YOLOv2 不再沿用 YOLOv1 的 GoogLeNet,而是采用自行设计的 DarkNet-19 作为骨干网络。

关键特点

  • 输入尺寸:416×416×3
  • 不含全连接层(FC),全部由卷积层和池化层构成
  • 经过 5 次降采样 (stride=2 的卷积),最终特征图尺寸为 13×13
  • 输出特征图的尺寸为 13×13×125(125 = 5 个先验框 × 25 个参数)

2. 传统 CNN 的局限性

在传统的卷积神经网络中(如下图所示),输入图像经过卷积处理后,在进入全连接层之前,特征图需要被**展平(Flatten)**为一维向量。

问题 :全连接层的权重参数数量取决于输入特征图的大小。例如,若全连接层输入为 128×13×13,输出为 2048 个神经元,则参数量为 128 × 13 × 13 × 2048,十分庞大。若输入图像尺寸改变,特征图大小也随之改变,导致全连接层无法正常工作。

3. YOLOv2 的解决方案 ------ 全局平均池化

YOLOv2 的 DarkNet-19 网络不包含全连接层 ,而是采用全局平均池化(Global Average Pooling) 作为网络的最后一层。

原理:对每个特征图计算全局平均值,输出固定长度的向量(如 1000 维),然后通过 Softmax 输出类别概率。

优势

  • 支持任意尺寸的输入图像
  • 不受输入分辨率变化的影响
  • 极大减少了参数量

局限性 :由于网络进行了 5 次降采样(每次 stride=2),输入图像的尺寸必须能被 32 整除

四、聚类提取先验框(Anchor Boxes)

1. YOLOv1 vs YOLOv2 先验框数量

版本 先验框数量 说明
YOLOv1 2 个/网格 数量较少,定位精度有限
YOLOv2 5 个/网格 数量增加,精度提升
Faster R-CNN 9 种 3 种尺度 × 3 种比例

先验框数量越多,目标定位越精确,但同时也会增加计算量。YOLOv2 在速度和精度之间取得了较好的平衡。

2. K-means 聚类算法

YOLOv2 不再手动设计先验框尺寸,而是通过 K-means 聚类 自动从训练集中学习。

聚类流程

  1. 从训练集中提取所有标注框的宽度(w)高度(h)
  2. 将每个标注框表示为二维坐标点 (w, h)
  3. 使用 K-means 算法对这些点进行聚类(K=5)
  4. 计算每个簇的平均宽高作为先验框尺寸

距离度量

YOLOv2 采用 1 - IoU 作为聚类距离,而非传统的欧氏距离:

d(box, centroid) = 1 - IoU(box, centroid)

使用 IoU 作为距离度量,使得聚类结果更关注框的重叠程度,而非绝对尺寸,从而更适合目标检测任务。

3. 聚类框数量的确定

YOLOv2 通过实验确定 K=5 为最优选择------在模型复杂度和检测精度之间取得了最佳平衡。

4. 先验框分配策略

与 Faster R-CNN 不同,YOLOv2 的先验框不按固定长宽比和尺度预先设定,而是通过聚类直接从数据中学习得到,能更好地适配特定数据集的分布特征。

  • 特征图尺寸为 13×13 ,每个网格分配 5 个先验框
  • 总预测框数量:13 × 13 × 5 = 845 个(YOLOv1 仅为 98 个)

五、直接位置预测(Directed Location Prediction)

1. 概念

直接位置预测(Directed Location Prediction) 是 YOLOv2 引入的一种边界框位置微调方法,其核心目的是预测偏移量 而非绝对坐标,并对偏移量进行约束限制,防止训练过程中出现发散。

与 YOLOv1 直接回归坐标不同,YOLOv2 预测的是相对于网格单元边界的偏移值 ,同时通过 Sigmoid 函数将偏移量限制在 [0, 1] 区间内,确保预测框的中心点不会跑出所属网格的范围。

2. 计算公式

YOLOv2 的位置预测公式如下:

bx = σ(tx) + cx

by = σ(ty) + cy

bw = pw · exp(tw)

bh = ph · exp(th)

其中:

  • bx, by, bw, bh:最终预测框的中心坐标和宽高
  • tx, ty, tw, th:模型预测的偏移量
  • cx, cy:当前网格单元的左上角坐标(偏移量,取值为 0~12)
  • pw, ph:先验框(Anchor Box)的宽高
  • σ:Sigmoid 函数,将值压缩到 (0, 1) 区间

3. 示例说明

以输入图像 416×416 为例,经过 5 次降采样(32 倍缩放)后,特征图尺寸为 13×13

  • 特征图上的位置 (cx, cy) 乘以 32 即可映射回原始图像坐标
  • 使用 Sigmoid 将 tx, ty 限制在 [0, 1],确保预测框中心点落在当前网格内
  • 通过 exp(tw)exp(th) 对先验框尺寸进行缩放调整

六、感受野与多尺度融合

1. 感受野概念

感受野(Receptive Field) 是指特征图上的每个点在原始图像中所对应的视野范围。特征图中的一个单元格,相当于上一层输入图像中多个像素点的"浓缩"。

感受野的作用

感受野决定了网络能够"看到"输入图像的多大区域,对目标检测任务至关重要:

  • 深层网络:感受野大,能捕捉全局语义信息,但可能丢失小目标细节
  • 浅层网络:感受野小,能保留局部细节信息,适合检测小目标

2. Fine-Grained Features(细粒度特征融合)

问题

随着网络不断加深,最后一层特征图的感受野过大,小目标的特征信息可能丢失

解决方案

YOLOv2 引入细粒度特征(Fine-Grained Features) 融合策略:

  1. 在网络的中间层(尺寸为 512×26×26 的特征图)额外复制一份特征
  2. 将该特征图分割成 4 份 ,重新排列为 4 × 13 × 13 × 512
  3. 将重排后的特征拼接到 最后一层 1024×13×13 的特征图之后
  4. 最终得到 (1024 + 2048) × 13 × 13 的融合特征图

这样既保留了深层的大感受野语义信息,又融入了浅层的细节信息,有效改善了小目标检测效果。

3. 多尺度训练(Multi-Scale Training)

策略

由于 YOLOv2 不含全连接层,输入图像的尺寸可以动态变化,只需保证尺寸能被 32 整除即可。

训练机制

  • 每经过 10 个批次(batch),随机选择一个新的输入尺寸
  • 可选范围:320×320608×608(步长为 32)

效果

  • 小尺寸(320×320):速度快,适合实时应用
  • 大尺寸(608×608):精度高,适合高精度需求场景

这种多尺度训练策略使得 YOLOv2 在速度和精度之间实现了更好的平衡。

相关推荐
不会就选b1 小时前
算法日常・每日刷题--<链表>3
数据结构·算法·链表
企业老板ai培训1 小时前
破解中小企业AI变现难:2026年企业AI培训与陪跑行业趋势深度报告,为何从‘陪跑’到‘变现’才是关键?
大数据·人工智能
geovindu1 小时前
go: Iterative Algorithms
开发语言·后端·算法·golang·迭代算法
神奇霸王龙2 小时前
国产音乐视频 Prompt 三段式屠夫榜:5 个国产视频模型实测对比
人工智能·ai·prompt·音视频·agent·ai编程·agi
OpenCSG2 小时前
Hugging Face遭遇AI Agent攻击:AI资产管理正在进入新阶段
人工智能·大模型
神奇霸王龙2 小时前
AI视频Prompt结构化实战指南:可灵/万相/豆包
人工智能·ai·prompt·aigc·音视频·ai编程
aax12134532 小时前
VOC 集群治理工程实操|美丽蓝天绿岛项目 RTO 工艺选型、管控方案与申报要
大数据·数据库·人工智能
Scott9999HH3 小时前
【工控选型破局】拒绝盲目溢价与低质陷阱:基于 Modbus-RTU 状态诊断与自适应滑动中值滤波的 C++ 实战,兼论“性价比高又好用的仪器仪表厂家”选型之道
人工智能
To_OC3 小时前
调了一上午 DeepSeek 参数,我终于摸透了 temperature 和 Top K 的真实作用
人工智能·llm·deepseek