YOLOv1 与 YOLOv2 核心技术总结
YOLOv1 与 YOLOv2 核心技术总结
本总结围绕 YOLO 系列的前两个关键版本展开,系统梳理了 YOLOv1 的开创性设计与局限,以及 YOLOv2 针对痛点的优化方案,清晰呈现了从 “快速基础” 到 “更快更强” 的技术演进逻辑。
一、YOLOv1:one-stage 检测的开创性尝试
YOLOv1 是目标检测领域经典的one-stage 方法,核心创新是将检测问题转化为端到端的回归问题,通过单个 CNN 完成 “类别 + 位置” 预测,支持视频实时检测,应用场景广泛。
1. 核心设计
- 核心思想:将输入图像划分为S×S 网格(PPT 中为 7×7),每个网格负责预测其中心区域的目标;每个网格输出 B 个边界框(PPT 中 B=2)及对应置信度,同时预测 C 个类别概率(VOC 数据集 C=20),最终输出维度为
S×S×(B×5+C)
(7×7×30)。 - 网络架构:基于 GoogLeNet 修改,共 20 层;输入图像尺寸 448×448×3,经卷积、池化后,通过全连接层将特征重塑为 7×7×1024,最终输出 7×7×30 的预测结果。
- 损失函数:分三部分计算误差,通过权重平衡不同任务的影响:
- 位置误差:仅对包含目标的网格中负责预测的边界框计算(x、y 坐标用平方差,w、h 用根号平方差,避免大目标误差主导)。
- 置信度误差:包含目标的边界框权重更高(用 λcoord 调整),无目标的边界框权重低,避免背景误判。
- 分类误差:仅对包含目标的网格计算类别概率误差。
- 非极大值抑制(NMS):过滤重复边界框,保留置信度最高、IoU 符合阈值的预测结果。
2. 优缺点
- 优点:检测速度快(PPT 对比显示 FPS 优于 R-CNN 系列)、网络结构简单,端到端训练效率高。
- 局限:
- 每个网格仅预测 1 个类别,无法解决目标重叠场景的检测问题。
- 小目标检测效果一般,边界框长宽比选择单一,适配性不足。
二、YOLOv2:“更快更强” 的全面优化
YOLOv2 针对 v1 的局限进行了多维度改进,核心目标是提升检测精度(mAP)与速度,同时优化小目标检测能力,最终在 VOC2007 数据集上 mAP 从 63.4 提升至 78.6。
1. 关键改进方案
改进方向 | 技术细节 | 优化效果 |
---|---|---|
Batch Normalization(BN) | 舍弃 Dropout,所有卷积层后加入 BN;对每一层输入做归一化 | 网络收敛更易,mAP 提升 2%;成为后续网络的标准组件 |
更高分辨率训练 | v1 训练用 224×224、测试用 448×448(易 “水土不服”);v2 额外用 448×448 微调 10 次 | 高分辨率特征提取更细,mAP 提升约 4% |
新网络架构(DarkNet) | 输入尺寸 416×416,无全连接层;5 次降采样后得到 13×13 特征图;用 1×1 卷积压缩通道,减少参数 | 避免过拟合,提升计算效率 |
聚类提取先验框 | 用d(box, centroids)=1-IoU 作为聚类距离(而非欧氏距离),适配数据集真实边界框比例 | 先验框更贴合数据分布,优于 Faster R-CNN 的固定比例 |
引入 Anchor Box | 每个网格输出多个 Anchor 框(13×13×n),而非 v1 的 2 个边界框 | 召回率从 81% 提升至 88%,解决目标重叠检测问题 |
Directed Location Prediction | 不直接预测绝对偏移,而是预测相对网格 cell 的偏移;用 σ(tx)、σ(ty) 将偏移限制在 [0,1],公式为bx=σ(tx)+Cx 、by=σ(ty)+Cy | 避免训练初期收敛不稳定,提升边界框定位精度 |
感受野优化 | 用 3 个 3×3 卷积堆叠替代 1 个 7×7 卷积(参数从 49C² 降至 27C²) | 减少参数总量,增加非线性变换,特征提取更细致 |
Fine-Grained Features(细粒度特征融合) | 融合浅层小感受野特征与深层大感受野特征 | 弥补深层特征丢失小目标信息的问题,提升小目标检测效果 |
Multi-Scale 训练 | 训练中每间隔一定迭代次数,动态调整输入尺寸(320×320 至 608×608,步长 32) | 网络适配不同尺度目标,增强泛化能力 |
三、版本演进核心逻辑
YOLOv1 奠定了 one-stage 检测 “端到端回归” 的基础,以速度为核心优势但精度有限;YOLOv2 则通过 “架构优化(DarkNet)、先验框适配(聚类)、特征融合(细粒度)、动态训练(Multi-Scale)” 四大方向,在保持速度优势的同时,大幅提升了精度与小目标检测能力,成为 YOLO 系列走向实用的关键版本。