4. 实验
我们在ImageNet (ILSVRC 2012 val)数据集上测试了不同的训练改进技术对分类器精度的影响,然后在MS COCO (test-dev 2017)数据集上测试了检测器的精度。
4.1.实验设置
在ImageNet图像分类实验中,默认超参数为:训练步骤为8,000,000;批大小和小批大小分别为128和32;采用多项式衰减学习率调度策略,初始学习率为0.1;热身步长1000;动量衰减为0.9,重量衰减为0.005。我们所有的BoS实验都使用与默认设置相同的超参数,在BoF实验中,我们添加了额外的50%的训练步骤。在BoF实验中,我们验证了混合、切分、镶嵌、Bluring数据增强和标签平滑正则化等方法。在BoS实验中,我们测试了flrelu、Swish和mish**功能的效果。所有实验均使用1080 Ti或2080 Ti GPU进行训练。
在MS COCO对象检测实验中,默认的超参数为:训练步骤为500500;采用步进衰减学习率调度策略,初始学习率为0.01,在400,000步和450,000步分别乘以因子0.1;动量衰减为0.9,重量衰减为0.0005。所有的架构都使用一个GPU来执行批处理大小为64的多尺度训练,而小批处理大小为8或4取决于架构和GPU内存限制。除超参数搜索实验采用遗传算法外,其他实验均采用默认设置。遗传算法利用YOLOv3-SPP进行带GIoU损失的训练,搜索最小值5k集的300个epoch。遗传算法实验采用搜索学习率0.00261、动量0.949、IoU阈值分配ground truth 0.213和损失正态值0.07。我们已经验证了大量的BoF,包括网格敏感性消除、马赛克数据增强、IoU阈值、遗传算法、类标记平滑、交叉小批量标准化、自对抗训练、余弦退火调度器、动态小批量大小、DropBlock、优化锚,不同类型的IoU损失。我们还对各种BoS进行了实验,包括Mish、SPP、SAM、RFB、BiFPN和Gaussian YOLO[8]。对于所有的实验,我们只使用一个GPU进行训练,所以像syncBN这样的优化多个GPU的技术并没有被使用。
4.2.不同特征对分类器训练的影响
首先,研究了不同特征对分类器训练的影响;具体来说,类标签平滑的影响,不同数据增强技术的影响,双边模糊,混合,CutMix和马赛克的影响,如图7所示,和不同的**的影响,如Leaky-ReLU(默认),Swish,和Mish。
图7:数据扩充的各种方法。
在我们的实验中,如表2所示,通过引入特征如:CutMix和Mosaic数据增强、Class label平滑、Mish**等,提高了分类器的准确率。因此,我们用于分类器训练的bof主干(免费包)包括以下内容:CutMix和Mosaic数据增强和类标签平滑。此外,我们使用Mish**作为补充选项,如表2和表3所示。
表2:BoF和Mish对CSPResNeXt-50分类器精度的影响。
表3:BoF和Mish对CSPDarknet-53分类器精度的影响。
4.3。不同特征对检测器训练的影响
进一步的研究关注不同的口袋- offreebies (BoF-detector)对检测器训练精度的影响,如表4所示。我们通过研究不同的特征显著地扩展了BoF列表,在不影响FPS的情况下提高了检测器的准确性:
S: 消除网格灵敏度方程 b x = (t x ) c x, b y = (t y ) c y , 其中 c x 和 c y 始终为整数, 在 YOLOv3 中使用用于评估对象坐标, 因此,接近 c x 或 c x = 1 值的 b x 值需要极高的 t x 绝对值。我们通过将 sigmoid 乘以超过 1.0 的因子来解决此问题,从而消除了对象无法检测到的网格的影响。
M:马赛克数据扩增 – 在训练期间使用 4 图像镶嵌,而不是单个图像
IT:IoU 阈值 – 使用多个锚点进行单个接地真相 IoU(真、锚)和 IoU 阈值
GA:遗传算法 – 在前 10% 的时间段的网络训练期间使用遗传算法选择最佳超参数
LS:类标签平滑 – 使用类标签平滑进行 sigmoid **
CBN: CmBN – 使用交叉小批处理规范化收集整个批处理中的统计信息,而不是在单个小批处理中收集统计信息
CA:协和素退火调度器 – 改变正弦训练中的学习速率
DM:动态小批量尺寸 – 使用随机训练形状在小分辨率训练期间自动增加小批量大小
OA:优化的锚点 – 使用优化的锚点进行 512×512 网络分辨率的训练
GIoU、CIoU、DIoU、MSE – 对边界框回归使用不同的损耗算法
进一步研究涉及不同的巴戈夫特辑(BoS-检测器)对检测器训练精度的影响,包括PAN、RFB、SAM、高斯YOLO(G)和ASFF,如表5所示。在我们的实验中,检测器在使用 SPP、PAN 和 SAM 时获得最佳性能。
表4:免费赠品袋消融研究。(CSPResNeXt50-PANet-SPP 512 x512)
表5:袋贝的消融研究。(规模512 x512)
4.4.不同的骨骼和预先训练的重量对检波器训练的影响
进一步研究不同骨架模型对检测精度的影响,如表6所示。我们注意到,在检测器精度方面,具有最佳分类精度的模型并不总是最佳的。
首先,虽然cspresnext50modelstrainedwithdiffentfeatu抵抗的分类精度比CSPDarknet53模型更高,但CSPDarknet53模型在目标检测方面显示出更高的精度。
其次,在CSPResNeXt50分类器训练中使用BoF和Mish可以提高分类精度,但是在检测器训练中进一步使用这些预训练权重会降低检测器的精度。然而,在CSPDarknet53分类器训练中使用BoF和Mish提高了分类器和使用预先训练权重的检测器的准确性。结果表明,基干CSPDarknet53比CSPResNeXt50更适合于检测器。
我们观察到,CSPDarknet53模型由于各种改进而显示出更大的提高检测器准确度的能力。
表6:使用不同的分类器预训练权重进行检测器训练(所有模型的其他训练参数均相似)
4.5.不同的小批尺寸对检测器培训的影响
最后,我们对不同小批尺寸训练模型的结果进行了分析,结果如表7所示。从表7的结果可以看出,加入BoF和BoS训练策略后,小批量大小对检测器的性能几乎没有影响。这一结果表明,在引入BoF和BoS之后,不再需要使用昂贵的gpu进行培训。换句话说,任何人都只能使用传统的GPU来训练优秀的检测器。
表7:使用不同的小批大小进行检测器培训
图8:不同目标探测器速度和精度的比较。(一些文章指出,他们的检测器的FPS只适用于其中一个gpu: Maxwell/Pascal/V olta)
5. 结果
得到的结果与其他最先进的物体探测器的比较如图8所示。我们的YOLOv4位于Pareto最优曲线上,无论是速度还是精度都优于最快最准确的检测器。
由于不同的方法使用不同架构的gpu进行推理时间验证,我们在Maxwell架构、Pascal架构和Volta架构常用的gpu上运行YOLOv4,并与其他最先进的方法进行比较。表8列出了使用Maxwell GPU的帧速率比较结果,可以是GTX Titan X (Maxwell)或者Tesla M40 GPU。表9列出了使用Pascal GPU的帧率比较结果,可以是Titan X (Pascal)、Titan Xp、GTX 1080 Ti或Tesla P100 GPU。表10列出了使用V olta GPU的帧率比较结果,可以是Titan V olta或者Tesla V100 GPU。
6. 结论
我们提供最先进的检测器,更快(FPS)和更准确(MS COCO AP50…95和AP50)超过所有可用的替代探测器。所述的检测器可以在传统GPU上训练和使用8-16 GB-VRAM,这使其广泛使用成为可能。基于锚点的单级探测器的概念已经被证明是可行的。我们已经验证了大量的特征,并选择使用这些特征来提高分类器和检测器的准确性。这些特性可以作为未来研究和开发的最佳实践。
7. 确认
作者感谢Glenn Jocher提出的镶嵌数据增强、利用遗传算法选择超参数和解决网格敏感性问题的思想。
相关文章: