比较YOLOv4和其他最先进的目标检测。YOLOv4的运行速度是EfficientSet的两倍,性能相当。YOLOv3的AP和FPS分别提高10%和12%
摘要:据说有大量的特征可以提高卷积神经网络(CNN)的准确性。需要在大型数据集上对这些特征的组合进行实际测试,并对结果进行理论证明。某些功能只在某些模型上运行,或只针对某些问题运行,或只针对小规模数据集运行;而一些特性,如批处理规范化和残差连接,则适用于大多数模型、任务和数据集。我们假设这些通用特征包括加权残差连接(WRC)、跨阶段部分连接(CSP)、跨小批量标准化(CmBN)、自我对抗训练(SAT)和Mish激活。我们使用了新功能:WRC、CSP、CmBN、SAT、Mish激活、马赛克数据增强、CmBN、DropBlock正则化和CIoU损失,并将其中一些功能结合起来,以实现最先进的结果:MS COCO数据集的43.5%AP(65.7%AP50),实时速度为∼特斯拉V100上的每秒65帧。
目标检测器由以上几个部分组成:数据输入、主干网络、颈部网络、头部(稠密预测:一阶段处理网络;稀疏预测:二阶段处理网络)
对于分类来说是最优的参考模型,对于检测器来说并不总是最优的。与分类器相比,检测器需要以下各项:
•更高的输入网络尺寸(分辨率)-用于检测多个小尺寸对象
•更多层次–更高的感受野,覆盖更大的输入网络
•更多参数–使模型能够在一张图像中检测多个不同大小的对象
不同大小的感受野的影响总结如下:
•增大目标大小-允许查看整个目标
•增大网络大小-允许查看周围的上下文对象
•超过网络规模-增加图像点和最终激活之间的连接数量
为了改进目标检测训练,CNN通常使用以下方法:
•激活:ReLU、leaky-ReLU、参数ReLU、ReLU6、SELU、Swish或Mish
•边界框回归损失:MSE、IoU、GIoU
•数据扩充:剪切、混合、剪切混合
•正则化方法:DropOut、DropPath、Spatial DropOut、 DropBlock
•网络激活的均值和方差标准化:批次标准化(BN)、跨GPU批处理规范化(CGBN或SyncBN)、滤波器响应标准化(FRN)、交叉迭代批量标准化(CBN)
•跳过连接:残差连接,加权残差连接,多输入加权残差连接或跨阶段部分连接(CSP)
为了使设计的探测器更适合在单个GPU上训练,我们进行了如下额外的设计和改进:
•我们介绍了一种新的数据增强马赛克和自我对抗训练(SAT)方法
•我们在应用遗传算法时选择最佳超参数
•我们修改了一些现有方法,使我们的设计适用于有效的训练和检测-修改SAM、修改的PAN和交叉小批量标准化(CmBN)
定义跨小批量标准化(CmBN)。这仅在单个批次内的小批次之间收集统计信息。
YOLOv4包括:
•主干网络:CSPDarknet53
•颈部网络:SPP,PAN
•头部网络:YOLOv3
YOLO v4使用:
•主干网中的BoF:CutMix和马赛克数据增强、DropBlock正则化、类标签平滑
•主干网中的BoS:Mish激活、跨阶段部分连接(CSP)、多输入加权残差连接(MiWRC)
•检测器的BoF:CIoU损失、CmBN、DropBlock正则化、马赛克数据增强、自我对抗训练、消除网格灵敏度,对单个真值使用多个anchor,余弦退火调度器,最优超参数,随机训练形状。
•检测器的BoS:Mish激活,SPP块、SAM块、PAN路径聚合块、DIoU NMS。
我们将SAM从空间注意修改为点注意力,并将PAN的shortcut连接替换为串联连接,分别如图5和图6所示。
实验结果:不同目标检测器的速度和精度对比
微信公众号:
下载对应的论文,在公众号中回复:paper