YOLOv1/v2
一、YOLO-V1 核心内容
YOLO-V1 是经典的 one-stage 目标检测模型,核心是将检测问题转化为回归问题,用单个 CNN 完成任务,可实现视频实时检测。
- 核心设计
- 输入图像被划分为 7×7 网格,每个网格预测 2 个边界框(Bounding boxes)及对应置信度,同时预测 20 个类别的概率。
- 输出特征图维度为 7×7×30,计算方式为(S×S)×(B×5+C),其中 S=7(网格数)、B=2(每个网格边界框数)、C=20(类别数),5 代表边界框的 x、y、w、h 和置信度。
- 网络架构:基于 GoogLeNet 修改,共 20 层,包含卷积层、池化层和全连接层,输入尺寸为 448×448×3,最终通过全连接层和 Reshape 得到 7×7×30 的输出。
- 损失函数:分三部分计算,分别是边界框位置误差、置信度误差(含物体和不含物体两种情况)、类别概率误差,通过不同权重平衡各部分损失。
- 关键技术:使用非极大值抑制(NMS)过滤冗余检测框,保留置信度高的最终检测结果。
- 优缺点
- 优点:检测速度快(FPS 高)、结构简单,适用于实时场景。
- 缺点:每个网格仅预测一个类别,无法解决物体重叠问题;小物体检测效果较差,边界框长宽比选择单一。
二、YOLO-V2 核心内容
YOLO-V2 在 V1 基础上进行多方面优化,实现 “更快、更强” 的检测效果,VOC2007 数据集 mAP 从 63.4 提升至 78.6。
- 核心改进技术
- Batch Normalization:舍弃 Dropout,所有卷积层后加入该操作,对输入归一化,加速网络收敛,提升 2% mAP,现已成为网络标配。
- 高分辨率训练:V1 训练用 224×224 尺寸、测试用 448×448,易导致模型适配问题;V2 额外进行 10 次 448×448 尺寸微调,提升约 4% mAP。
- 新网络架构(DarkNet):输入尺寸 416×416,无全连接层,通过 5 次降采样得到 13×13 特征图;使用 1×1 卷积减少参数,提升计算效率。
- 聚类提取先验框:不同于 Faster R-CNN 的固定先验框比例,通过 K-means 聚类(距离计算为 1-IOU)生成适配数据集的先验框,提升检测准确性。
- 引入 Anchor Box:使预测边界框数量增至 13×13×n(n 为聚类得到的先验框数量),召回率从 81% 提升至 88%。
- 直接位置预测(Directed Location Prediction):不使用直接偏移量,而是预测相对网格单元的偏移量,通过 σ 函数限制偏移范围,避免训练初期模型不稳定。
- 细粒度特征融合(Fine-Grained Features):融合浅层小感受野特征与深层大感受野特征,解决深层特征丢失小目标信息的问题,提升小物体检测效果。
- 多尺度训练(Multi-Scale):训练中每隔一定迭代次数改变输入图像尺寸,范围为 320×320 至 608×608,增强模型对不同尺寸目标的适应能力。
- 感受野相关补充:特征图上的点对应原始图像的区域即感受野,堆叠 3 个 3×3 卷积核(步长 1)与 1 个 7×7 卷积核感受野相同,但前者参数更少(27C² vs 49C²),且能增加非线性变换和特征提取细致度,这是 VGG 网络及 YOLO-V2 优化的重要思路。
三、V1 与 V2 核心差异对比
对比维度 | YOLO-V1 | YOLO-V2 |
---|---|---|
网络架构 | 基于 GoogLeNet,含全连接层 | DarkNet,无全连接层,用 1×1 卷积减参 |
先验框 | 无,每个网格固定 2 个边界框 | 有,K-means 聚类生成适配先验框 |
训练尺寸 | 训练 224×224,测试 448×448 | 训练微调 448×448,支持 320-608 多尺度 |
位置预测 | 直接偏移量,易不稳定 | 相对网格偏移量,σ 函数限制范围 |
特征融合 | 无 | 融合细粒度特征,提升小物体检测 |
mAP(VOC2007) | 63.4 | 78.6 |