一、YOLOv3:架构优化与性能提升
(一)Darknet-53 骨干网络
Darknet-53 拥有 53 个卷积层,在图片分类训练集上训练时输入图像尺寸为 256x256,用于 YOLOv3 时输入尺寸是 416×416。相比同期的 ResNet-101、ResNet-152,它效果更好且运行速度快。这得益于其独特设计,没有最大池化层,下采样通过卷积层实现,且卷积核个数较少,参数和运算量小。同时,残差网络的应用有效解决了深层网络的梯度消失、爆炸及性能退化问题。
(二)网络模型与训练细节
YOLOv3 输入 416x416 的图像,预测出 52×52、26×26、13×13 三个特征层,在每个特征层上使用 3 个预设边界框尺寸,共 9 个 anchor boxes(基于 COCO 数据集聚类得到) 。训练时,正负样本匹配规则为:与 ground truth 的 iou 值最大的预测框或 anchor 是正样本;iou 值大于设定阈值(原论文为 0.5)但非最大的忽略;小于阈值的为负样本。非正样本仅存在置信度损失。
(三)损失函数
损失函数由目标定位偏移量损失、目标置信度损失和目标分类损失组成。坐标损失用误差平方和,类别损失采用二值交叉熵。通过平衡系数调整各部分损失权重,让模型在训练中更好地学习目标定位、置信度和分类信息。
(四)小目标检测改进
相比 YOLOv1,YOLOv3 对小目标检测效果更好。这是因为其扩充了预测框数量,增加了 grid cell 个数,采用多尺度预测(类似 FPN 结构),改进了损失函数(惩罚小框项),优化了网络结构(骨干网络与跨层连接),还使用了更合理的正负样本定义和标签方式。
二、YOLOv4:多方面创新优化
(一)改进方法分类
- Bag of freebies(BoF):主要改变训练策略或增加训练成本,但不影响测试性能。包括数据预处理(光度和几何畸变、Mosaic 数据增强等)、模拟对象遮挡(random erase、CutOut 等方法)、采用 DropBlock regularization、解决类别不平衡(设置损失函数权重)、Label smoothing(标签平滑处理)、使用 CIoU_loss 进行 Bounding box 回归以及 Self - Adversarial Training(自对抗训练)。
- Bag of specials(BoS):增加少量推理成本却能显著提升检测精度。如采用 DIoU - NMS(考虑检测区域中心点距离)、Mish activation(平滑激活函数,利于梯度流和信息传递)、利用 SPP 提升模型感受野(加速核心特征提取)、使用 CSPDarknet53(减少计算量并保证准确率)以及 PAN(加强特征金字塔结构,提升不同尺度目标识别能力)。
(二)模型结构与改进
采用 CSP + Darknet53 作为 backbone,利用 SPP 作为 additional module,Neck 部分使用 PANet,head 沿用 YOLOv3 (anchor based) 。相比 YOLOv3,主要改进有:主干网络 CSPDarknet53 中部分激活函数替换为 Mish,后面网络仍用 LeakyReLU 以平衡计算速度;利用 SPP 增加感受野并减少特征冗余;网络输出顺序改变,从小目标到大目标,增强了特征融合程度。
(三)损失函数相关 IOU 系列
损失函数采用 CIoU - loss。IOU 通过计算预测框与真实框相交和并集面积比值衡量重叠程度,但存在无法衡量框间距、相交方式以及不相交时无法回传梯度等问题。GIOU 在 IOU 基础上引入最小外接凸闭合框,能衡量框间距,但目标框包裹预测框时会退化为 IOU。DIoU 在 IOU 基础上引入惩罚项,考虑中心点距离,收敛速度快且在 NMS 中表现更优。CIoU 进一步考虑长宽比,在训练阶段能更精准优化预测框,但由于测试推理阶段没有真实框,NMS 中使用 DIoU - NMS。
三、YOLOv5:轻量高效的升级
(一)Focus 结构
Focus 结构通过切片操作,将图像长度和宽度方向的空间维度信息切片并堆叠至通道维度,使长和宽缩小为原来一半,通道数变为 4 倍。以 Yolov5s 为例,608×608×3 的图像经切片和卷积操作,变成 304×304×32 的特征图,实现多尺度特征融合,增大感受野,其功能与 YOLOv2 中的 Passthrough layer 类似。
(二)自适应锚框计算
与之前版本不同,YOLOv5 在训练过程中,网络会根据预测框与真实框的比对结果,反向更新迭代网络参数,自适应计算不同训练集的最佳锚框值,也可选择关闭该功能。
(三)网络模型
输入端采用 Mosaic 数据增强、自适应锚框计算和自适应图片缩放;Backbone 包含 Focus 结构和 CSP 结构;Neck 使用 FPN + PAN 结构;Prediction 采用 GIOU_Loss。整体网络结构在继承基础上有所创新,模型轻量(如 YOLOv5s 仅 7.9M),速度快,适用于嵌入式等设备。