YOLOv2大白话:人工智能新手入门指南
摘要
YOLOv2采用Darknet-19主干网络,以1×1和3×3卷积替代大卷积核并减少参数量。训练分预训练和检
YOLOV2网络架构
YOLOv2的主干网络选用了Darknet-19,这一设计颇具巧思。与YOLOv1相比,Darknet-19彻底舍弃了7×7的大卷积核,仅保留1×1与3×3两种尺寸。原因一目了然:一个7×7卷积核需要49个参数,而堆叠三个3×3卷积核仅需27个参数,却拥有完全相同的感受野。即便是5×5卷积核,用两个3×3叠加也能替代,参数量从25降至17。更值得关注的是,每次卷积后均紧跟批量归一化操作,训练稳定性与收敛速度都得到了显著提升。

YOLOv1的标准流程是先利用224×224分辨率的ImageNet数据预训练分类模型,随后放大至448×448在检测数据集上进行微调。YOLOv2延续了“先预训练、再检测微调”的基本范式,但在细节上做了更精细的打磨,具体分为两个阶段:
| 阶段 | 输入尺寸 | 数据集 | 目标 |
|---|---|---|---|
| 分类训练阶段(左) | 224×224 | ImageNet | 学习通用图像特征 |
| 检测训练阶段(右) | 448×448 | Pascal VOC 等检测数据集 | 学习目标定位与检测 |
YOLOv2也沿用了这一模式,但额外增加了一步:预训练阶段先以224×224训练160个epoch,再用448×448微调10个epoch;检测阶段则使用416×416(或352/608)的输入尺寸,必须满足32的倍数,并且每隔10个批次更换一次尺寸。
| 阶段 | 子步骤 | 输入尺寸 | 数据集 | 关键信息 |
|---|---|---|---|---|
| 预训练阶段 | Train | 224×224 | ImageNet | 160 个 epoch |
| Fine-tune | 448×448 | ImageNet | 10 个 epoch | |
| 检测阶段 | Detection | 416×416(或 352/608) | Pascal VOC & COCO | 尺寸是 32 的倍数,每 10 个批次更换尺寸 |
上面的网络架构图其实仅对应预训练阶段的分类网络。进入检测阶段后,模型后部会被替换,仅保留主干部分。

实际的YOLOv2检测网络保留了Darknet-19作为骨干,并在其后堆叠了两个卷积层。为了融合不同层级的特征,设计引入了直通层(Passthrough Layer):将骨干网络第5组卷积层输出的高分辨率浅层特征,通过空间到深度(Space-to-Depth)重排后,与网络尾部卷积层输出的低分辨率深层特征进行拼接。最后再经过两个卷积层直接输出检测结果。这种结构使模型能够同时利用浅层的细节信息与深层的语义信息,对小目标的检测能力提升尤为显著。

具体操作方式如下:以26×26特征图为例,将其左上角2×2区域划分为四个不同颜色的格子,然后以步长2遍历整个特征图。遍历完成后,将所有相同颜色的格子按通道维度堆叠到一起,原先的26×26特征图就变成了13×13×4的张量——这就是Space-to-Depth重排。在YOLOv2的直通层中,该操作作用于骨干网络输出的512通道26×26特征图,最终得到13×13×2048的张量,再与网络深层输出的13×13×1024特征进行通道拼接,形成13×13×3072的融合特征图。
直通层的本质是将浅层细粒度的位置信息与深层抽象的语义信息相结合,有效解决了YOLOv1在检测小目标时精度偏低的问题,使模型能够捕捉到更多细节。

锚框和位置偏移运算
模型最终输出是一个13×13×5×(5+C)的三维特征矩阵。其中5表示每个网格预设了5组先验锚框,整张特征图被划分为13×13个网格单元,每个网格独立预测5个边界框。每个预测框的输出向量长度为5+C,具体含义如下:前4个数值是边界框的中心偏移量和宽高,第5个是目标置信度,最后C个数值对应各类别的预测概率。
在后处理阶段,置信度分支的输出需经过Sigmoid激活函数,映射到0~1之间,从而得到真正有效的置信得分。这一步虽然简单,但直接决定了最终检测结果的解码质量与输出效果。

现实中的目标物体在外形和尺寸上往往具有固定的规律。例如行人通常呈竖向长条状,俯视视角下的车辆则是宽矩形。不同类别物体的边界框长宽比和大小都存在明显的共性。如果能从数据集中归纳出一些具有代表性、普适性强的基准框,让模型以此为参考,就能显著降低学习难度。这些基准框就是锚框(Anchor)。
为了让锚框更贴合数据集,YOLOv2和YOLOv5不再依赖人工经验手动设定尺寸,而是采用聚类算法对所有真实标注框进行维度聚类分析,自动统计并归纳特征,最终选出5组最具代表性的锚框作为先验基准。这一改进显著提升了边界框回归的精度。

训练时,模型将特征图划分为13×13个网格,每个网格从预设的5组锚框中匹配最优的一组。具体做法是:针对每个真实目标框,计算其与所有候选锚框的IoU,选出IoU最大的锚框作为匹配基准。该匹配锚框的中心落在对应网格内,随后模型以它为参照,结合预测的边界框参数,计算坐标和宽高的偏移误差,完成回归训练。通过不断修正预测框位置,定位精度逐步提升。

锚框的尺寸是相对于数据集图像的比例尺,具有极强的数据依赖性。因此,在训练自有数据集时,必须根据目标分布定制专属锚框,否则效果会大打折扣。
以单个网格为例:假设第二行第二个网格中,红色框是模型输出的预测边界框,蓝色框是匹配的先验锚框。目标中心的偏移由模型直接回归预测得到。训练时,模型以蓝色锚框为基准,结合预测框的坐标、宽高、置信度和类别信息,与真实标注框比对,计算坐标偏差损失、置信度损失和分类损失,不断迭代优化。

归纳锚框的核心价值:
- 锚框是基于数据集目标特征预先设定的先验基准框,提前归纳了常见物体的尺寸与长宽比例。
- 为模型提供固定的参考模板,避免网络凭空预测目标尺寸,降低学习难度。
- 模型无需直接预测完整边界框,只需以匹配的锚框为基础,微调中心坐标和宽高即可,大幅简化回归任务。
- 适配不同形态的检测目标,显著提升定位精度,加快收敛速度,尤其对改善小目标、异形目标的检测效果极为明显。
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。