Scaled-YOLOv4: Scaling Cross Stage Partial Network 论文翻译

论文地址:Scaled-YOLOv4: Scaling Cross Stage Partial Network

摘要

实验结果表明,基于CSP方法的YOLOv4目标检测神经网络在保持最优速度和准确率的前提下,具有向上/向下可伸缩性,可用于不同大小的网络。我们提出了一种网络缩放方法,它不仅改变深度、宽度、分辨率,而且还改变网络的结构。YOLOv4-large模型实现了SOTA的结果:在Tesla V100上,以15 FPS的速度对MS COCO数据集实现了55.4% AP (73.3% AP50),而伴随着TTA,YOLOv4-large实现了55.8% AP (73.2 AP50)。YOLOv4-tiny模型在RTX 2080Ti上以443 FPS的速度实现22.0% AP (42.0% AP50),而使用TensorRT,batch-size= 4和fp16精度YOLOv4-tiny实现1774 FPS。
在这里插入图片描述

1.介绍

基于深度学习的目标检测技术在我们的日常生活中有着广泛的应用。例如,医学图像分析、自动驾驶汽车、商业分析和人脸识别都依赖于对象检测。上述应用程序所需的计算设施可能是云计算设施、通用GPU、物联网集群或单个嵌入式设备。为了设计一种有效的目标探测器,模型缩放技术是非常重要的,因为它可以使目标检测器对各种类型的设备实现高精度和实时推断。

最常用的模型缩放技术是改变骨干的深度(一个CNN中卷积层的数量)和宽度(一个卷积层中卷积滤波器的数量),然后训练适合不同设备的CNN。例如ResNet[10]系列中,ResNet-152和ResNet-101经常用于云服务器gpu, ResNet-50和ResNet-34经常用于个人计算机gpu, ResNet-18和ResNet-10可以用于低端嵌入式系统。在[2]中, Cai等人尝试开发只需训练一次即可应用于各种设备网络架构的技术。它们利用解耦训练、搜索和知识蒸馏等技术对多个子网络进行解耦和训练,使整个网络和子网络能够处理目标任务。Tan等人[30]提出使用NAS技术进行复合缩放,包括在EfficientNet-b0上处理宽度、深度和分辨率。他们利用这个初始网络搜索给定计算量的最佳CNN架构,将其设为EfficientNet-B1,然后利用线性缩放技术得到EfficientNet-B2到EfficientNet-B7这样的架构。Radosavovic等[23]从浩瀚的参数搜索空间AnyNet中总结并添加约束,设计了RegNet。在RegNet中,他们发现CNN的最佳深度约为60。他们还发现,当瓶颈比设置为1,跨stage的宽度增加率设置为2.5时,性能最好。另外,最近有专门为目标检测而提出的NAS和模型缩放方法,如SpineNet[5]和EfficientDet[31]。
通过对目前最先进的目标检测器[1,3,5,22,31,36,40]的分析,我们发现YOLOv4[1]的主干CSPDarknet53几乎匹配所有通过网络架构搜索技术得到的最优架构特征。CSPDarknet53的深度、瓶颈比、跨stage宽度生长比分别为65、1和2。因此,我们开发了基于YOLOv4的模型缩放技术,提出了scale -YOLOv4。提出的缩放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结构本质上是一种once-for-all结构;
  5. 利用上述方法研制了YOLOv4-tiny和YOLO4v4-large。

2.相关工作

2.1 实时检测器

目标检测器主要分为 one-stage目标检测器[24,25,26,18,16,20]和two-stage目标检测器[9,8,27]。只需一次CNN操作就可以得到one-stage目标检测器的输出。对于two-stage目标检测器,通常将第一阶段CNN得到的高分区域建议输入到第二阶段CNN进行最终预测。one-stage目标检测器和two-stage目标检测器的推理时间可以表示为Tone = T1st和Ttwo = T1st + mT2,其中m为置信分数高于阈值的区域建议的数量。换句话说,one-stage检测器所需的推理时间是固定的,而two-stage检测器所需的推理时间不是固定的。所以如果需要实时的检测器,它们几乎都是one-stage目标检测器。目前流行的one-stage目标检测器主要有两种:anchor-based[26,16]和anchor-free的[6,12,13,32]。在所有anchor-free方法中,CenterNet[42]非常流行,因为它不需要复杂的后处理,如非最大抑制(NMS)。目前,更准确的实时one-stage目标检测器是anchor-based的EfficientDet[31]、YOLOv4[1]、PP-YOLO[19]。在本文中,我们开发了基于YOLOv4[1]的模型缩放方法。

2.2 模型缩放

传统的模型缩放方法是改变模型的深度,即增加更多的卷积层。例如,Simonyan等人设计的VGGNet[28]在不同的阶段叠加了额外的卷积层,并使用这个概念设计了vgg11、vgg13、vgg16、vgg19架构。后续的方法通常遵循相同的模型缩放方法。对于He等人提出的ResNet[10],扩展深度可以构建非常深的网络,如ResNet-50、ResNet-101和ResNet-152。后来Zagoruyko等人[39]考虑到了网络的宽度,他们改变了卷积层核的数量来实现缩放。因此,他们设计了wide ResNet (WRN),同时保持同样的精度。虽然WRN的参数量比ResNet大,但推理速度要快得多。随后的DenseNet[11]和ResNeXt[37]也设计了一个复合缩放版本,将深度和宽度考虑在内。对于图像金字塔推理,在运行时进行增强是一种常用的方法,它取一个输入图像,做各种不同的分辨率缩放,然后输入这些不同的金字塔组合到一个训练好的CNN,最后,网络将多组输出整合为最终结果。Redmon等人[26]使用上述概念来执行输入图像的大小缩放。他们使用更高的输入图像分辨率来对经过训练的Darknet53进行微调,执行该步骤的目的是获得更高的精度。
近年来,网络架构搜索(NAS)相关研究得到大力发展,NASFPN[7]搜索特征金字塔的组合路径。我们可以把NAS-FPN看作是一种主要在阶段级执行的模型缩放技术。对于EfficientNet[30],它使用了基于深度、宽度和输入大小的复合缩放搜索EfficientDet[31]的主要设计理念是将具有不同功能的目标检测器模块拆解,然后对图像大小、宽度、#BiFPN层、#box/class层进行缩放。另一种采用NAS概念的设计是SpineNet[5],主要针对fish-shaped目标检测器的整体架构进行网络架构搜索。这种设计理念最终可以产生一个比例排列的结构。另一种采用NAS设计的网络是RegNet[23],它主要固定阶段数和输入分辨率,将各阶段的深度、宽度、瓶颈比、组宽等参数集成为深度、初始宽度、坡度、量化、瓶颈比、组宽。 最后,利用这六个参数对复合模型进行尺度搜索。上述方法都是伟大的工作,但很少有方法分析不同参数之间的关系 。在本文中,我们将根据目标检测的设计要求,尝试寻找一种协同复合缩放方法。

3.模型缩放的原则

在对所提出的目标检测器进行模型缩放后,下一步是处理将发生变化的定量因素,包括带有定性因素的参数的数量。这些因素包括模型推理时间、平均精度等。根据使用的设备或数据库,定性因素会有不同的增益效果。我们将在3.1中对定量因素进行分析和设计。在3.2和3.3中,我们将分别设计运行在低端设备和高端gpu上的微型目标检测器的定性因素。

3.1 模型缩放的常规原则

在设计有效的模型比例方法时,我们的主要原则是当比例上升或下降时,我们想要增加或减少的定量成本越低/越高越好。在本节中,我们将展示和分析各种常见的CNN模型,并试图了解它们在面对(1)图像大小、(2)层数和(3)通道数量变化时的量化成本。我们选择的cnn是ResNet、ResNext和Darknet。
对于具有b通道数的k层CNN, ResNet层计算为k∗{conv 1 × 1, b/4 – conv
3 × 3, b/4 – conv 1 × 1, b}, ResNext层计算为k∗{conv 1 × 1, b/2 – gconv 3 × 3/32, b/2 – conv 1 × 1,b}。对于darknet,计算量为k∗{conv 1 × 1, b/2 – conv 3 × 3, b}。将可用于调整图像大小、层数和通道数的缩放因子分别设置为:α, β, 和 γ。当这些比例因子发生变化时,FLOPs的相应变化见表1。(根据上面的描述和EfficientNet的论文,下面的图应该画错了,width和depth位置应该互换)。

在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值