YOLOV2网络架构
采用Darkent-19作为新的主干网络。
Darkent-19中只有1*1和3*3的卷积核,但是YOLOv1中还有7*7的卷积核。YOLOv2直接舍弃了大
的卷积核。比如我们使用7*7的卷积核进行运算,需要的权重参数是49个,但是如果我们使用3个
3*3 卷积核,需要的权重参数是27个,感受野还相同。5*5的卷积核相当于两个3*3的卷积核。(权
重参数从25个降低到17个)。Darkent-19在每个网络之后进行了批量归一化操作。
YOLOv1 先用 224×224 的 ImageNet 数据预训练分类模型(分类训练阶段),再将输入尺寸放大
到 448×448,在检测数据集上微调,最终得到一个端到端的目标检测器。(检测训练阶段)
| 阶段 | 输入尺寸 | 数据集 | 目标 |
| 分类训练阶段(左) | 224×224 | ImageNet | 学习通用图像特征 |
| 检测训练阶段(右) | 448×448 | Pascal VOC 等检测数据集 | 学习目标定位与检测 |
YOLOv2 延续了 “先预训练,再检测微调” 的思路,但做了更精细的优化,分为两大阶段:
| 阶段 | 子步骤 | 输入尺寸 | 数据集 | 关键信息 |
| 预训练阶段 | 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 区域划分为 4 个不同颜色的格子,并以步长 2 遍历
整个特征图。遍历完成后,将所有相同颜色的格子按通道维度进行重组,原本的 26×26 特征图就
会被转换为 13×13×4 的特征张量,这就是典型的 Space-to-Depth(空间到深度)重排操作。
在 YOLOv2 的直通层(Passthrough Layer)中,该操作会被应用于骨干网络输出的 512 通道
26×26 特征图:通过上述 2×2 分块与重组,空间维度上的信息被重排到通道维度中,最终得到一
个 13×13×2048 的特征张量。
随后,这个 13×13×2048 的高分辨率特征,会与网络深层输出的 13×13×1024 低分辨率特征进行
通道拼接,最终得到一个 13×13×3072 的融合特征图。
直通层通过这种方式,实现了浅层细粒度特征与深层语义特征的有效融合,解决了 YOLOv1 中小
目标检测精度低的问题,让模型能够捕捉到更多细节信息,从而显著提升了小目标的检测性能。
锚框和位置偏移运算
模型最终输出为尺寸 13×13×5×(5+C)的三维特征矩阵。
其中,参数 5代表 YOLOv2 为每个网格预先设定的5 组先验锚框。
整张特征图共划分为 13×13个网格单元,每个网格都会独立预测 5 个边界框。
维度 (5+C)为单个预测框的输出向量长度,含义如下:
前 4 个数值:分别预测目标边界框的中心偏移量、框体宽度与高度;
第 5 个数值:目标存在置信度,用于判断该区域内是否包含物体;
末尾 C个数值:对应全部目标类别的预测概率。
在后处理阶段,置信度分支的输出需经过 Sigmoid 激活函数映射至 0~1 区间,以此得到最终有
效的目标置信得分,完成检测结果的解码与输出。
在现实场景中,待检测目标的外形与尺寸往往具备固定规律。例如:行人多呈现竖向长条形态,俯
视视角下的车辆则偏向宽矩形结构。不难发现,不同类别的物体,其边界框的长宽比例、尺寸大小
都存在明显共性。
我们可以从数据集中归纳出一批具有代表性、普适性较强的边界框尺寸与比例,将这类起到先验模
板作用的基准框,定义为锚框(Anchor)。
为了获得适配数据集、泛化性更强的通用锚框,YOLOv2/YOLOv5 不再依靠人工经验手动设定尺
寸,而是采用聚类算法,对数据集中所有真实标注的边界框做维度聚类分析,自动统计并归纳特
征,最终筛选出 5 组最具代表性、贴合目标实际形态的锚框,以此作为模型的先验基准框,提升边
界框回归精度与检测效果。
模型将特征图划分为 13×13个网格单元,每个网格会从预设的一组锚框中,匹配并选用最合适的先
验锚框。以划分为 13×13网格的图像为例,首先标注出真实目标框及其中心位置。在训练阶段,模
型会为每个真实目标,逐一计算其与全部候选锚框的交并比(IoU),筛选出交并比最大的最优锚
框作为匹配基准。该匹配锚框的中心会落在对应网格内,随后以这个最优锚框为参照,结合模型实
时预测的边界框参数,计算坐标、宽高的偏移误差,以此完成边界框的回归训练,不断修正预测框
位置,提升定位精度。
锚框的尺寸为数据集图像下的相对尺度,具备较强的数据依赖性,因此需要根据自身数据集的目标
分布,定制适配的专属锚框,才能更好贴合实际检测场景。
以单个网格为例:假设第二行第二个网格中,红色框为模型输出的预测边界框,蓝色框为该网格匹
配的先验锚框。目标中心的偏移参数由模型直接回归预测得到。训练过程中,模型以蓝色锚框作为
基准模板,结合预测框坐标、宽高、置信度与类别信息,与真实标注框进行比对,进而计算坐标偏
差损失、置信度损失与分类损失,完成参数的迭代优化。
总结一下:
锚框是基于数据集目标特征预先设定的先验基准框,提前归纳了物体常见的尺寸与长宽比例;
为模型提供固定参考模板,避免网络凭空预测目标尺寸与形态,降低学习难度;
模型无需直接预测完整边界框,仅需以匹配的锚框为基础,微调中心坐标、宽高尺寸,简化回归任务;
适配不同形态的检测目标,有效提升边界框定位精度,加快模型收敛速度,改善小目标、异形目标的检测效果。
【1】参考
大白话讲明白Yolov3的Darknet-53网络架构 #YOLO #YOLOv3 #目标检测 #知识前沿派对 #深度学习 - 抖音