YOLOv4试图找到bag-of-freebies和bag-of-specials之间的平衡。其中,bag-of-freebies只增加训练策略但不增加推理成本,例如:数据增强;bag-of-specials只稍增加推理成本,但大幅度提升性能,例如:扩大感受野、结合特征、以及后处理。

YOLOv4主要的创新有:

  • 基于BoS增强的架构:Backbone为带有CSP(cross-stage-partial-connections, CSPNet)的Darknet-53,且激活函数为Wish activation function。Neck为增强版的SPP(spatial pyramid pooling)和增强版的PANet(path aggregation network),以及增强版SAM(spatial attention module)。其中, CSP不仅可以减少计算量且可提高模型精度;SPP可以在不影响推理速度的情况提高精度;PANet的作用是整合特征。
  • 基于BoF增强的训练方法:除了常规的增强,例如:随机的明亮度、对比度、扩展、裁剪、翻转、以及旋转,还使用了把四张图片整合到一张图片的mosaic增强。这种增强不仅允许对象在非常见上下文中预测,还减少了batch normalization的需要。对于正则化,不在使用Droupout,转向使用DropBlock。对于检测器的损失函数,增加了CIoU损失,还使用CmBN(Cross mini-batch normalization)收集整个batch的统计数据。
  • 自对抗训练:为了提高鲁棒性,把图片中对象去除掉但是标签保持不变,放入到训练数据中。
  • 基于通用算法的超参数优化:在训练的初期,利用遗传算法寻找最优超参数。训练时,还使用了余弦衰退学习率。

图1 YOLOv4网络架构,CMB: Convolution + Batch Normalization + Mish activation, CBL: Convolution + Batch Normalization + Leaky ReLU, UP: upsampling, SPP: Spatial Pyramid Pooling, and PANet: Path Aggregation Network

表1 YOLOv4中BoF和BoS的选择

YOLOv5

YOLOv5包含一个Ultralytics算法AutoAnchor,该算法会检测和调整数据集或训练设置中不合适的anchor boxes,例如:图片大小。首先,利用k-means算法生成初始anchor boxes标签,然后在初始标签的基础上利用遗传算法迭代1000代以上进化标签。YOLOv5的网络架构,如图2所示。

图2 YOLOv5的网络架构

如图2所示,YOLOv5利用SiLU作为为激活函数。
YOLOv5的backbone为增强版CSPDarknet53,该网络从一个大窗口的卷积层开始,紧接着是一系列卷积层以抽取相关特征。其中,SPPF(spatial pyramid pooling fast)和接下来的卷积层处理不同规模的特征,同时上采样层增加特征地图的分辨率。SPPF层的主要目的是通过池化不同规模特征为固定大小特征地图的方式加速网络的计算。Neck部分由SPPF与增强版的CSP-PAN构成。Head部分与YOLOv3相似。

YOLOv5利用了许多增强,例如:Mosaic、复制粘贴、随机仿射、混合、HSV增强、随机水平翻转等。这些增强提升了网络的敏感性使梯度传播更稳定。YOLOv5共有5个版本,可以适用在不同的硬件资源上。

Scaled YOLOv4

在YOLOv4提出的同一年,Scaled-YOLOv4提出,主要的不同就是由扩大版和缩小版,且缩小版可应用在嵌入式设备中。其中,扩大版牺牲了推理速度提高了精度,而缩小版增加了速度降低了精度。

参考文献

  1. Comprehensive Review of YOLO Architectures in Computer Vision: From YOLOv1 to YOLOv8 and YOLO-NAS[J]. Machine Learning and Knowledge Extraction

标签: none

版权: 本篇博文采用《CC BY-NC-ND 4.0》,转载必须注明作者和本文链接

添加新评论