其基本目标是在生产系统中对神经网络进行快速操作,并针对并行计算进行优化,而不是低计算量理论指示器(BFLOP)。我们提供了实时神经网络的两种选择:
对于GPU,我们使用少量的组(1-8)卷积层:CSPResNeXt50 / CSPDarknet53
对于VPU-我们使用分组卷积,但是我们不再使用挤压和激发(SE)块-特别是这包括以下模型:EfficientNet-lite / MixNet [76] / GhostNet [21] / Mo-bileNetV3
3.1 Selection of architecture我们的目标是在输入网络分辨率,卷积层数,参数数(filtersize2 过滤器通道/组)和层输出(过滤器)数目之间找到最佳平衡。例如,大量研究表明,在ILSVRC2012(ImageNet)数据集的对象分类方面,CSPResNext50比CSPDarknet53更好。然而,相反,就检测MS COCO数据集上的对象而言,CSPDarknet53比CSPResNext50更好。
下一个目标是为不同的检测器级别从不同的主干级别中选择其他块以增加接收场和参数聚集的最佳方法: FPN,PAN,ASFF,BiFPN。
对于分类最佳的参考模型对于检测器并非总是最佳的。与分类器相比,检测器需要满足以下条件:
更大的网络输入,用于检测小目标
更多的层-以获得更大的感受野来覆盖增大的输入图像
更多的参数-为了增强从单张图像中检测出不同大小的多个对象的能力
假设可以选择接受场较大(卷积层数为3×3)和参数数较多的模型作为主干。表1显示了CSPResNeXt50、CSPDarknet53和Effi-cientNet B3的信息。CSPResNext50只包含16个卷积层3×3,425×425感受野和20.6M参数,而CSPDarknet53包含29个卷积层3×3,725×725感受野和27.6M参数。这一理论证明,再加上我们的大量实验,表明CSPDarknet53神经网络是两者作为探测器骨干的最佳模型。
不同大小的感受野对检测效果的影响如下所示:
最大对象大小-允许查看整个对象
最大网络大小-允许查看对象周围的上下文
超过网络大小-增加图像点和最终激活之间的连接
我们在CSPDarknet53上添加SPP块,因为它显著增加了接受场,分离出最重要的上下文特征,并且几乎不会降低网络操作速度。我们使用PANET代替YOLOv3中使用的FPN作为不同骨级的参数聚合方法,用于不同的检测器级别。
最后,我们选择了CSPDarknet53主干、SPP附加模块、PANET路径聚合Neck和YOLOv3(基于锚点的)头部作为YOLOv4的体系结构。
将来,我们计划显着扩展检测器的赠品袋(BoF)的内容,从理论上讲,它可以解决一些问题并提高检测器的准确性,并以实验方式依次检查每个功能的影响。
我们不使用跨GPU批量标准化(CGBNor SyncBN)或昂贵的专用设备。这使任何人都可以在传统的图形处理器上重现我们的最新成果,例如GTX 1080Ti或RTX2080Ti。
3.2 Selection of BoF and BoS为了改进目标检测训练,CNN通常使用以下方法:
激活:ReLU,leaky-ReLU,parameter-ReLU,ReLU6,SELU,Swish或Mish
边界框回归损失:MSE,IoU,GIoU,CIoU,DIoU
数据增强:CutOut,MixUp,CutMix
正则化方法:DropOut, DropPath [36],Spatial DropOut [79]或DropBlock
通过均值和方差对网络激活进行归一化:Batch Normalization (BN) [32],Cross-GPU Batch Normalization (CGBN or SyncBN)[93], Filter Response Normalization (FRN) [70], orCross-Iteration Batch Normalization (CBN) [89]
跨连接:Residual connections, Weightedresidual connections, Multi-input weighted residualconnections, or Cross stage partial connections (CSP)
至于训练激活功能,由于PReLU和SELU更难训练,并且ReLU6是专门为量化网络设计的,因此我们从候选列表中删除了上述激活功能。在重新量化方法中,发布Drop-Block的人们将自己的方法与其他方法进行了详细的比较,而其正则化方法赢得了很多。因此,我们毫不犹豫地选择了DropBlock作为我们的正则化方法。至于标准化方法的选择,由于我们专注于仅使用一个GPU的训练策略,因此不考虑syncBN。
3.3 Additional improvements为了使设计的检测器更适合在单个GPU上进行训练,我们进行了以下附加设计和改进:
我们引入了一种新的数据增强方法:Mosaic, and Self-Adversarial Training (SAT)
在应用遗传算法时,我们选择最优的超参数
我们修改了一些现有方法,使我们的设计适合进行有效的训练和检测-改进的SAM,改进的PAN ,以及跨小批量标准化(CmBN)
Mosaic是一种新的混合4幅训练图像的数据增强方法。所以四个不同的上下文信息被混合,而CutMix只混合了2种。
这允许检测其正常上下文之外的对象。此外,批量归一化从每层上的4个不同的图像计算激活统计。这极大地减少了对large mini-batch-size的需求。