一文读懂 YOLOv1 与 YOLOv2:目标检测领域的早期里程碑
在深度学习目标检测领域,YOLO 系列以 “快速高效” 的特点占据重要地位。其中 YOLOv1 作为 one-stage 检测方法的经典代表,开创了将检测任务转化为回归问题的新思路;YOLOv2 则在其基础上优化升级,进一步提升了检测精度与实用性。今天我们就从基础原理出发,带你梳理这两个版本的核心知识。
一、YOLOv1:目标检测的 “一次看透” 革命
YOLOv1 全称为 “You Only Look Once”,名字直接点明了它的核心优势 —— 只需一次神经网络前向传播,就能完成目标检测,彻底打破了传统检测方法的多阶段模式。
1. 核心思想:把检测变成 “回归任务”
YOLOv1 不再区分 “候选区域提取” 和 “分类回归” 两步,而是直接通过一个 CNN 网络输出检测结果。它会将输入图像划分为S×S 的网格,每个网格负责检测中心落在该网格内的目标。最终网络输出包含两部分关键信息:
- Bounding boxes(边界框):每个网格预测 2 个边界框,每个边界框用(x,y,w,h)表示位置与大小,同时附带一个confidence(置信度),代表边界框包含目标的概率与预测精度。
- Class probability(类别概率):每个网格预测 20 个类别的概率(基于 PASCAL VOC 数据集),代表网格内目标属于某一类别的可能性。
整体输出维度可表示为 (S×S)×(B×5+C),其中 S=7、B=2、C=20,最终输出为 7×7×30 的特征图。
2. 网络架构与性能特点
YOLOv1 基于 GoogLeNet 改进,共 20 层卷积层(负责特征提取)+2 层全连接层(负责输出预测结果),输入图像尺寸固定为 448×448×3。它的优势与不足非常鲜明:
- 优点:速度极快,FPS(每秒帧率)可达 58,能满足视频实时检测需求;网络结构简单,端到端训练便捷。
- 不足:每个网格仅预测 1 个类别,面对重叠目标时检测效果差;小目标检测精度一般,边界框长宽比选择单一,对不规则目标适配性弱。
二、YOLOv2:更快更强的优化升级
YOLOv2 针对 v1 的不足进行了全方位改进,核心目标是 “在保持速度的同时提升精度”,最终实现了 “更快、更强” 的突破,VOC 2007 数据集上的 mAP(平均精度均值)从 63.4 提升至 78.6。
1. 关键改进:从细节优化到架构升级
YOLOv2 的改进点围绕 “精度提升”“速度保持”“适配更多场景” 展开,核心包括以下 6 点:
(1)Batch Normalization(批量归一化)
- 舍弃 v1 中的 Dropout(防止过拟合),在所有卷积层后加入 Batch Normalization,对每一层输入进行归一化处理。
- 作用:加速网络收敛,提升模型稳定性,同时使 mAP 提升 2%,如今已成为 CNN 网络的 “标配” 操作。
(2)高分辨率训练与检测
- v1 训练时用 224×224 尺寸图像(适配分类任务),测试时切换到 448×448,易导致 “模型水土不服”;v2 则在训练后期额外进行 10 次 448×448 尺寸的微调,同时最终检测输入提升至 416×416(确保输出网格为 13×13,便于后续 anchor 框计算)。
- 作用:让模型更适应高分辨率检测场景,mAP 提升约 4%。
(3)全新网络 DarkNet-19
- 替换 v1 的 GoogLeNet 架构,采用 19 层卷积层 + 5 层最大池化层,无全连接层(减少参数冗余),通过 1×1 卷积压缩通道数(节省计算资源)。
- 特点:5 次降采样后输出 13×13 的特征图,既保证足够大的感受野,又能兼顾小目标检测。
(4)聚类提取先验框(Anchor Boxes)
- 摒弃传统方法中 “人工设定边界框长宽比” 的方式,改用 K-means 聚类分析训练集中的目标边界框,自动生成更贴合数据分布的 “先验框”。
- 优势:先验框更适配实际目标形状,相比 v1 的固定比例,检测精度显著提升;同时通过 Anchor Boxes,每个网格可预测更多边界框(13×13×n),解决了重叠目标检测问题。
(5)Directed Location Prediction(直接位置预测)
- 针对 v1 中边界框偏移量易导致 “收敛不稳定” 的问题,v2 将偏移量计算改为 “相对网格的偏移”:通过 σ 函数将偏移量限制在 [0,1] 之间,确保边界框中心始终落在当前网格内。
- 计算公式:边界框中心(bx,by)=(σ(tx)+Cx, σ(ty)+Cy),其中 Cx、Cy 为网格左上角坐标;边界框大小(bw,bh)=(pw×e^tw, ph×e^th),其中 pw、ph 为先验框尺寸,tw、th 为网络预测偏移量。
(6)多尺度训练(Multi-Scale)
- 利用卷积网络 “输入尺寸灵活” 的特点,在训练过程中每隔一定迭代次数,随机切换输入图像尺寸(从 320×320 到 608×608,步长 32)。
- 作用:让模型适应不同分辨率的目标,提升泛化能力,同时保持检测速度(小尺寸输入时 FPS 更高)。
2. 其他补充:Fine-Grained Features 与感受野
为了解决 “深层特征图感受野过大、小目标信息丢失” 的问题,YOLOv2 还引入了 “Fine-Grained Features(细粒度特征)”:将浅层 13×13×256 的特征图与深层 26×26×128 的特征图融合,通过拆分、叠加操作补充小目标的细节信息,进一步提升小目标检测精度。
此外,YOLOv2 的网络设计也体现了 “小卷积核堆叠” 的思路:3 个 3×3 卷积核的感受野与 1 个 7×7 卷积核相同,但前者所需参数(27C²)远少于后者(49C²),既能减少计算量,又能通过更多非线性变换提升特征提取能力。
三、总结:YOLOv1 与 YOLOv2 的传承与突破
YOLOv1 开创了 one-stage 目标检测的先河,用 “一次前向传播” 的思路重新定义了检测效率;YOLOv2 则在其基础上,通过 Batch Normalization、Anchor Boxes、多尺度训练等改进,弥补了精度短板,成为兼顾 “速度与精度” 的经典模型。这两个版本不仅是 YOLO 系列的起点,也为后续 YOLOv3、YOLOv5 等版本的发展奠定了基础,至今仍是学习目标检测的 “入门必学” 内容。