yolov4-论文解析(2)
yolov4-论文解析(2)
3.方法
其基本目标是在生产系统和并行计算优化中提高神经网络的运行速度,而不是低计算量理论指标(BFLOP)。我们提出了实时神经网络的两种选择:
对于GPU,我们在卷积层中使用少量的组(1 - 8):CSPResNeXt50 / CSPDarknet53
对于VPU -我们使用群卷积,但我们不使用挤压和兴奋(SE)块-具体来说,这包括以下模型:EfficientNet-lite / MixNet [76] / GhostNet [21] / MobileNetV3
yolov4-论文解析(2)
3.1架构选择
我们的目标是在输入网络分辨率、卷积层数、参数数(filter size2* filters * channel / groups)和层输出数(filters)之间找到最优平衡。例如,我们的大量研究表明,在ILSVRC2012 (ImageNet)数据集[10]上的对象分类方面,CSPResNext50要比CSPDarknet53好得多。然而,相反地,在MS COCO数据集[46]上检测对象方面,CSPDarknet53比CSPResNext50更好。下一个目标是选择额外的块来增加感受野,并从不同的主干水平对不同的检测器水平(如FPN、PAN、ASFF、BiFPN)进行参数聚合的最佳方法。对于分类来说是最优的参考模型对于检测器来说并不总是最优的。与分类器相比,检测器需要满足以下条件:
更高的输入网络大小(分辨率)-用于检测多个小型对象
更多的层-一个更高的接受域,以覆盖增加的输入网络的大小
更多的参数-更大的能力,一个模型,以检测多个对象的不同大小在一个单一的形象yolov4-论文解析(2)
假设,我们可以假设一个模型的主干是一个更大的接受域大小(包含更多的convolutional layers 3×3)和更多的参数。表1显示了CSPResNeXt50, CSPDarknet53,和efficient entnet B3的信息。CSPResNext50只包含16个卷积层3×3,一个425×425的接受域和20.6 M的参数,而CSPDarknet53包含29个卷积层3×3,一个725×725的接受域和27.6 M的参数。这一理论证明,以及我们的大量实验,表明CSPDarknet53神经网络是两个作为骨干的检测器的最佳模型。
不同大小的感受野的影响总结如下:
直到对象大小-允许查看整个对象
网络大小-允许查看对象周围的上下文
超过网络大小-增加图像点和最终**之间的连接数yolov4-论文解析(2)
我们在CSPDarknet53上添加了SPP块,因为它显著增加了接受域,分离出了最重要的上下文特性,并且几乎不会降低网络运行速度。我们使用PANet作为不同检测层的不同主干层的参数聚合方法,而不是YOLOv3中使用的FPN。最后,我们选择CSPDarknet53主干、SPP附加模块、PANet路径聚合颈和基于锚的YOLOv3头部作为YOLOv4的架构。在未来,我们计划大幅扩展探测器的免费赠品包(BoF)的内容,这在理论上可以解决一些问题,提高探测器的精度,并以实验的方式依次检查每个特征的影响。我们不使用跨gpu批处理标准化(CGBN或SyncBN)或昂贵的专用设备。这使得任何人都可以在传统的图形处理器(如GTX 1080Ti或RTX 2080Ti)上重现我们最先进的结果。
yolov4-论文解析(2)
3.2选择BoF和BoS来改进目标检测
为了提高目标检测训练,CNN通常使用以下方法:
**函数:ReLU, leaky-ReLU, parametric-ReLU,ReLU6, SELU, Swish, or Mish
回归框损失:MSE, IoU, GIoU,CIoU, DIoU
数据增样:CutOut, MixUp, CutMix
正则化方法:DropOut, DropPath [36],Spatial DropOut [79], or DropBlock
网络**的规范化由其平均值和方差:Batch Normalization (BN) [32],Cross-GPU Batch Normalization (CGBN or SyncBN)
[93], Filter Response Normalization (FRN) [70], or
Cross-Iteration Batch Normalization (CBN) [89]
跳跃连接:剩余连接、加权剩余连接、多输入加权剩余连接或跨级部分连接(CSP)

对于训练**函数,由于PReLU和SELU更难训练,而ReLU6是专门为量化网络设计的,因此我们将上述**函数从候选列表中删除。在reqularization方法中,发表了DropBlock的人将他们的方法与其他方法进行了详细的比较,并且他们的regularization方法取得了很大的成果。因此,我们毫不犹豫的选择了DropBlock作为我们的regularization方法。对于归一化方法的选择,由于我们关注的是只使用一个GPU的训练策略,所以没有考虑syncBN。
yolov4-论文解析(2)
yolov4-论文解析(2)
3.3进一步的改进
图3:Mosaic表示一种新的数据扩充方法。
为了使设计的检测器更适合于单GPU上的训练,我们做了以下额外的设计和改进:
介绍了一种新的数据增强镶嵌和自对抗训练方法。
应用遗传算法选择最优超参数
我们修改了一些现有的方法,使我们的设计适合于有效的培训和检测-修改的SAM、修改的PAN和交叉小批量标准化(CmBN)
提出了一种混合4幅训练图像的数据增强方法。因此4个不同环境混合了,而CutMix只混合了2张输入图像。这允许检测正常上下文之外的对象。此外,批处理归一化计算**统计从4个不同的图像在每一层。这大大减少了对大型小批处理大小的需求。yolov4-论文解析(2)
图4:跨小批处理归一范化
自对抗训练(SAT)也代表了一种新的数据增加技术,在两个前后阶段操作。在第一阶段,神经网络改变原始图像而不是网络权值。通过这种方式,神经网络对自己执行一种对抗性攻击,改变原始图像,以制造图像上没有期望对象的假象。在第二阶段,神经网络以正常的方式对这个修改后的图像进行检测。
CmBN表示CBN修改后的版本,如图4所示,定义为交叉微批标准化(Cross mini-Batch Normalization, CmBN)。这只在单个批内的小批之间收集统计信息。
我们将SAM从空间上的注意修改为点态注意,并将PAN的快捷连接替换为拼接,分别如图5和图6所示。
yolov4-论文解析(2)
图5:修改的SAM
图6:修改后的PAN
yolov4-论文解析(2)
3.4. YOLOv4
在本节中,我们将详细介绍YOLOv4。
YOLOv4由
主干: CSPDarknet53 [81]
Neck:SPP [25], PAN [49]
Head: YOLOv3 [63]

YOLO v4 使用了
骨干网的免费包(BoF): CutMix和Mosaic数据增强,DropBlock正则化,类标签平滑
主干专用包(BoS): Mish**、跨级部分连接(CSP)、多输入加权剩余连接(MiWRC)
检测器的免费包(BoF): ciu -loss, CmBN, DropBlock正则化,马赛克数据增强,自对抗训练,消除网格敏感性,使用多个锚为一个单一的地面真值,余弦退火调度[52],最优超参数,随机训练形状
检测器专用包(BoS): Mish**、sp -block、SAM-block、PAN路径聚合块、DIoU-NMS

相关文章:

  • 2021-07-12
  • 2021-10-02
  • 2021-07-07
  • 2022-01-22
  • 2021-05-13
  • 2021-12-28
  • 2021-10-07
  • 2021-05-01
猜你喜欢
  • 2021-11-16
  • 2021-09-11
  • 2021-08-04
  • 2021-07-03
  • 2021-11-10
  • 2021-12-13
  • 2021-06-05
相关资源
相似解决方案