链接:https://arxiv.org/abs/2011.08036 代码: https://github.com/WongKinYiu/ScaledYOLOv4 本文的贡献: (1)针对小模型设计了一种强大的模型缩放方法,该方法可以系统地平衡浅层CNN的计算成本和存储带宽; (2) 设计一个简单但有效的策略来缩放大型目标探测器; (3) 分析所有模型缩放因子之间的关系,然后根据最有利的组划分进行模型缩放; (4) 实验已经证实,FPN结构本质上是一次性结构; (5)利用上述方法开发了YOLOv4 tiny和YOLO4v4 large。
一、文章简介
在设计有效的模型缩放方法时,我们的主要原则是,当缩放比例上升/下降时,我们想要增加/减少的量化成本越低/越高越好。我们将展示和分析各种通用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的相应变化总结在下表: 缩放尺寸、深度和宽度会导致计算成本增加。它们分别显示平方、线性和平方增长。 CSPNet可以应用于各种CNN架构,同时减少参数和计算量。此外,它还提高了准确性,减少了推理时间。将其应用于ResNet、ResNeXt和Darknet,并观察计算量的变化,如下所示:
在将上述CNN转换为CSPNet后,新的体系结构可以有效地将ResNet、ResNeXt和Darknet上的计算量(FLOP)分别减少23.5%、46.7%和50.0%
轻量级模型不同于大型模型,因为它们的参数利用效率必须更高,以便用少量计算达到所需的精度。在进行模型缩放时,我们希望计算顺序尽可能低。下表分析了具有有效参数利用率的网络,如DenseNet和OSANet的计算负载,其中g表示增长率。
对于一般CNN,以上列出的g、b和k之间的关系为k<<g<b。因此,DenseNet的计算复杂度顺序为O(whgbk),而OSANet的计算复杂度顺序为O(max(whbg,
w
h
k
g
2
whkg^2
whkg2))。上述两种方法的计算复杂度小于ResNet系列的O(
w
h
k
b
2
whkb^2
whkb2)。 最小化/平衡特征图的大小:为了在计算速度方面获得最佳的折衷,作者提出了一个新的概念,即在CSPOSANet的计算块之间执行梯度截断。如果将最初的CSPNet设计应用于DenseNet或ResNet架构,因为这两个架构的第j层输出是第1到(j-1)层的集成,我们必须将整个计算块视为一个整体。由于OSANet的计算块属于PlainNet体系结构,因此从计算块的任何一层生成CSPNet都可以达到梯度截断的效果。使用此功能重新规划基础层的b通道和计算块生成的kg通道,并将它们拆分为两条通道数相等的路径,如下所示。 OSANet、CSPOSANet和CSPOSANet的通道数,其中部分位于计算块(PCB)中 当通道数为b+kg时,如果要将这些通道分成两条路径,最好的分割方法是将其分成两个相等的部分,即(b+kg)/2。当考虑硬件的带宽峰值时,如果不考虑软件优化,则最佳值是
c
e
i
l
(
(
b
+
k
g
)
/
2
τ
)
×
2
τ
ceil((b+kg)/2τ)×2τ
ceil((b+kg)/2τ)×2τ。 **卷积后保持相同数量的通道:**为了评估低端设备的计算成本,还必须考虑功耗,而影响功耗的最大因素是内存访问成本(MAC)。通常卷积运算的MAC计算方法如下: 其中
h
、
w
、
C
i
n
、
C
o
u
t
h、w、C_{in}、C_{out}
h、w、Cin?、Cout?和K分别表示特征映射的高度和宽度、输入和输出的通道数以及卷积核大小。通过计算几何不等式,可以得出
C
i
n
=
C
o
u
t
C_{in} = C_{out}
Cin?=Cout?时为最小MAC。 最小化卷积输入/输出(CIO) : 下表列出了OSA、CSP和CSPOSANet的CIO,当
k
g
>
b
/
2
kg>b/2
kg>b/2时,所提出的CSPOSANet可以获得最佳的CIO
Scaling Large Models for High-End GPUs:由于我们希望在对CNN模型进行缩放后提高精度并保持实时推理速度,因此在进行复合缩放时,必须在目标检测器的多个缩放因子中找到最佳组合。通常,我们可以调整目标探测器输入、主干和颈部的比例因子。下表总结了可调整的潜在比例因子。 图像分类和目标检测的最大区别在于前者只需要识别图像中最大分量的类别,而后者需要预测图像中每个对象的位置和大小。在单级目标检测器中,每个位置对应的特征向量用于预测该位置处目标的类别和大小。更好地预测物体大小的能力基本上取决于特征向量的感受野。在CNN架构中,与感受野最直接相关的是stage,而功能金字塔网络(FPN)架构告诉我们,更高的stage更适合预测大型物体。在下表中,我们说明了感受野和几个参数之间的关系。 从上表可以明显看出,宽度缩放可以独立操作。当输入图像大小增加时,如果想要对大型对象有更好的预测效果,必须增加网络的深度或级数。在列出的参数中,{
s
i
z
e
i
n
p
u
t
size^{input}
sizeinput,#stage}的混合有4个最佳影响。因此,在执行放大时,我们首先对{
s
i
z
e
i
n
p
u
t
size^{input}
sizeinput,#stage}执行复合缩放,然后根据实时要求,我们进一步分别对深度和宽度执行缩放。
二、CSP-ized YOLOv4
YOLOv4是为通用GPU上的实时目标检测而设计的。本文重新设计了YOLOv4到YOLOv4 CSP,以获得最佳的速度/精度权衡。 主干:在CSPDarknet53的设计中,cross-stage process的下采样卷积计算不在残差块中。因此,可以推断每个CSPDarknet阶段的计算量为
w
h
b
2
(
9
/
4
+
3
/
4
+
5
k
/
2
)
whb^2(9/4+3/4+5k/2)
whb2(9/4+3/4+5k/2)。从上面推导的公式中,我们知道只有当k>1时,CSPDarknet阶段才会比Darknet阶段有更好的计算优势。CSPDarknet53中每个阶段拥有的残差层数量分别为1-2-8-8-4。为了获得更好的速度/精度折衷,将第一个CSP阶段转换为原始的Darknet残差层。
Neck:为了有效地减少计算量,在YOLOv4中对PAN架构进行了CSP化。PAN架构的计算列表如上左所示。它主要是将来自不同特征金字塔的特征进行整合,然后通过两组反向Darknet残差层,无需快捷连接。CSP实现后,新计算列表的体系结构如上图右所示。这个新的更新有效地减少了40%的计算量。
三、YOLOv4-tiny
将使用带有PCB架构的CSPOSANet来构成YOLOv4的主干。设定g=b/2作为增长率,并使其在最后增长到b/2+kg=2b。通过计算,推导出k=3,其结构如下所示。至于每个阶段的通道数和颈部部分,遵循YOLOv3 tiny的设计。
四、YOLOv4-large
YOLOv4 large是为云GPU设计的,主要目的是实现高精度的目标检测。本文设计了一个完全CSP化的模型YOLOv4-P5,并将其放大到YOLOv4-P6和YOLOv4-P7。图4显示了YOLOv4-P5、YOLOv4P6和YOLOv4-P7的结构。设计在
s
i
z
e
i
n
p
u
t
size^{input}
sizeinput和#stage上执行复合缩放。将每个阶段的深度设置为
2
d
s
i
2^{d_{s_i}}
2dsi??,
d
s
d_s
ds?设置为[1,3,15,15,7,7]。最后,进一步使用推断时间作为约束来执行额外的宽度缩放。实验表明,当宽度缩放因子等于1时,YOLOv4P6可以在每秒30帧的视频中达到实时性能。对于YOLOv4-P7,当宽度缩放因子等于1.25时,它可以以16 FPS的视频速度达到实时性能。
五、消融实验
(一)、Ablation study on CSP-ized model
分析CSP化对参数量、计算量、吞吐量和平均精度的影响。使用Darknet53(D53)作为主干,选择FPN和SPP(FPNSPP)以及PAN和SPP(PANSPP)作为颈部设计消融研究。在下表中,列出了不同DNN模型CSP后的
A
P
v
a
l
AP^{val}
APval结果。分别使用LeakyReu(Leaky)和Mish激活函数来比较使用的参数、计算量和吞吐量。所有实验都是在COCO minval数据集上进行的,得到的AP显示在下表的最后一列中。 从上表中列出的数据可以看出,CSP化模型大大减少了32%的参数和计算量,并改善了吞吐量和AP。如果想要保持相同的帧速率,可以添加更多的层-或更先进的激活函数。从上表所示的数字中,可以看到CD53s CFPNSPP Mish和CD53sCPANSPP Leaky与D53 FPNSPP Leaky具有相同的吞吐量,但它们在计算资源较低的情况下,分别有1%和1.6%的AP改进。从以上的改进数据中,可以看到CSP模式的巨大优势。因此。
(二)、Ablation study on YOLOv4-tiny
从上表所示的图中,可以看到,设计的PCB技术可以使模型更加灵活,因为这样的设计可以根据实际需要进行调整。从以上结果中,也证实了线性缩小确实有其局限性。显然,在有限的操作条件下,tinyCD53s的残差法成为推理速度的瓶颈,因为它的帧速率远低于具有相同计算量的COSA体系结构。同时,也看到,提出的COSA可以获得更高的AP。 其余实验效果如上。
|