进阶提升 · 1YOLOv2 改进
核心概念
- YOLOv2:YOLO 的第二代版本,重点提升检测精度,同时保持实时速度。
- Darknet-19:YOLOv2 使用的主干网络,由 19 层卷积层组成,借鉴 VGG 小卷积核设计。
- Anchor Boxes(先验框):通过 K-Means 聚类从真实标注框中学习得到的更合理的候选框尺寸。
- 偏移量预测:采用相对网格坐标和 sigmoid 限制,使预测中心点稳定落在对应网格内。
提出问题
- YOLOv1 的 7×7 网格和 2 个候选框,导致检测能力不足,尤其是小目标。
- 固定手工设定的候选框比例(如 Faster R-CNN 的 9 种)不够灵活,无法适配不同数据集。
- 直接预测绝对偏移量时,训练不稳定,框容易漂移出对应网格。
论点与解决方案
- 更高分辨率特征图:
- YOLOv2 将输出网格从 7×7 提升到 13×13,可捕捉更多细粒度信息,提高小目标检测能力。
- 改进主干网络:
- Darknet-19 全卷积结构,使用 3×3 和 1×1 卷积,既扩大感受野又减少参数。
- 先验框生成:
- 使用 K-Means + IoU 距离度量,自动从数据集中学习合适的候选框尺寸。
- 选取 k=5 作为折中(提升 Recall 明显,mAP 基本不变)。
- 偏移量计算改进:
- 预测结果不再是绝对位置,而是 相对于当前网格左上角的偏移量,范围限制在 [0,1]。
- 通过 sigmoid 函数约束,避免训练初期预测点漂移出网格,提高收敛稳定性。
关键机制 / 细节
- 多次降采样:输入 416×416,经过 5 次下采样得到 13×13 特征图。
- 候选框改进:
- YOLOv1:每网格 2 个候选框(人工设定)。
- YOLOv2:每网格 5 个候选框(聚类得到)。
- 距离度量改进:
- Faster R-CNN 使用欧式距离聚类 → 受框大小影响。
- YOLOv2 使用 IoU 距离 (1 - IoU) → 与框大小无关,更合理。
- Recall 提升:
- 候选框数增加 → Recall 提升约 7%。
- mAP 基本持平(变化 <0.3)。
总结
- YOLOv2 的核心改进:
- 更高分辨率的特征图(7×7 → 13×13)。
- 新的主干网络 Darknet-19。
- 候选框通过 K-Means 自动学习。
- 偏移量预测更稳定,限制在网格内。
- 效果:Recall 提升显著,检测更加全面;速度依然保持实时。
- 意义:YOLOv2 成功解决了 v1 的候选框不足与训练不稳定问题,为 v3 的进一步改进打下基础。