Scaled-YOLOv4: Scaling Cross Stage Partial Network
Abstract
我们展示了基于CSP方法的YOLOv4对象检测神经网络,可以上下缩放,并且适用于小型和大型网络,同时保持最佳的速度和准确性。我们提出了一种网络缩放方法,该方法不仅可以修改深度,宽度,分辨率,还可以修改网络的结构。OLOv4-large模型达到了最先进的结果:在Tesla V100上以15 FPS的速度,MS COCO数据集的AP为55.4%(AP50为73.3%),而随着测试时间的增加,YOLOv4-large的模型达到55.8% AP(73.2 AP50)。据我们所知,这是目前所有已发表作品中COCO数据集的最高准确性。 YOLOv4-tiny模型在RTX 2080Ti上以〜443 FPS的速度达到22.0%AP(42.0%AP50),而通过使用TensorRT,批处理大小为 4和FP16精度,YOLOv4-tiny模型达到1774 FPS。
1. Introduction
基于深度学习的对象检测技术在我们的日常生活中有许多应用。 例如,医学图像分析,自动驾驶车辆,业务分析和面部识别都依赖于对象检测。 以上应用程序所需的计算设备可能云计算设施,如通用GPU,IoT集群或单个嵌入式设备。 为了设计有效的物体检测器,模型缩放技术非常重要,因为它可以使物体检测器在各种类型的设备上实现高精度和实时推断。最常见的模型缩放技术是更改主干的深度(CNN中卷积层的数量)和宽度(卷积层中卷积滤波器的数量),然后训练适用于不同设备的CNN。 例如,在ResNet [10]系列中,ResNet-152和ResNet-101经常用于云服务器GPU,ResNet-50和ResNet-34经常用于个人计算机GPU,而ResNet-18和ResNet-10可以用作 用于低端嵌入式系统。In [2], Cai et al.尝试开发只需训练一次即可应用于各种设备网络架构的技术。他们使用解耦训练,搜索和知识蒸馏等技术来解耦和训练多个子网络,以便整个网络和子网都能够处理目标任务。 Tan等人 [30]提出使用NAS技术执行复合缩放,包括在EfficientNet-B0上处理宽度,深度和分辨率。 他们使用此初始网络搜索给定计算量的最佳CNN架构,并将其设置为EfficientNet-B1,然后使用线性缩放技术获得诸如EfficientNet-B2到EfficientNet-B7的体系结构。 Radosavovic等人 [23]总结并添加了来自庞大参数搜索空间AnyNet的约束,然后设计了RegNet。 在RegNet中,他们发现CNN的最佳深度约为60。他们还发现,当瓶颈比率设置为1且跨平台的宽度增加率设置为2.5时,将获得最佳性能。另外,最近有专门针对对象检测而提出的NAS和模型缩放方法,例如SpineNet [5]和EfficientDet [31]。
通过对目前最先进的物体检测器[1,3,5,22,31,36,40]的分析,我们发现YOLOv4[1]的主干CSPDarknet53几乎匹配所有通过网络架构搜索技术得到的最优架构特征。CSPDarknet53的深度、瓶颈比、各阶段之间的宽度生长比率分别为65、1和2。因此,我们开发了基于YOLOv4的模型缩放技术,提出了scale -YOLOv4。提出的scaled-YOLOv4 具有出色的性能,如图1所示。Scale - yolov4的设计过程如下。首先对YOLOv4进行了重新设计,提出了YOLOv4- CSP,然后在YOLOv4- CSP的基础上开发了Scale -YOLOv4。在提出的scale - yolov4中,我们讨论了线性缩放模型的上界和下界,并分别分析了小模型和大模型缩放时需要注意的问题。因此,我们能够系统地开发YOLOv4-large和YOLOv4-tiny模型。Scaled-YOLOv4能够在速度和精度之间实现最好的平衡,能够在15 fps、30 fps和60 fps的影片以及嵌入式系统上进行实时对象检测。
我们总结了本文的工作:(1)设计了一种针对小模型的强大的模型缩放方法,系统地平衡了浅层CNN的计算代价和存储带宽;(2)设计一种简单有效的大型目标检测器缩放策略;(3)分析各模型缩放因子之间的关系,基于最优组划分进行模型缩放;(4)实验证实了FPN结构本质上是一种一次性结构;(5)利用上述方法开发了YOLOv4-tiny和YOLO4v4-large。