YoloV7改进策略:SPD-Conv加入到YoloV7中,让小目标无处遁形

摘要

SPD-Conv是一种新的构建块,用于替代现有的CNN体系结构中的步长卷积和池化层。它由一个空间到深度(SPD)层和一个非步长卷积(Conv)层组成。

空间到深度(SPD)层的作用是将输入特征图的每个空间维度降低到通道维度,同时保留通道内的信息。这可以通过将输入特征图的每个像素或特征映射到一个通道来实现。在这个过程中,空间维度的大小会减小,而通道维度的大小会增加。

非步长卷积(Conv)层是一种标准的卷积操作,它在SPD层之后进行。与步长卷积不同,非步长卷积不会在特征图上移动,而是对每个像素或特征映射进行卷积操作。这有助于减少在SPD层中可能出现的过度下采样问题,并保留更多的细粒度信息。

SPD-Conv的组合方式是将SPD层和Conv层串联起来。具体来说,输入特征图首先通过SPD层进行转换,然后输出结果再通过Conv层进行卷积操作。这种组合方式可以在不丢失信息的情况下减少空间维度的尺寸,同时保留通道内的信息,有助于提高CNN对低分辨率图像和小型物体的检测性能。
在这里插入图片描述

总结起来,SPD-Conv是一种新的构建块,旨在解决现有CNN体系结构中步长卷积和池化层的问题。它由一个空间到深度(SPD)层和一个非步长卷积(Conv)层组成,能够提高模型对低分辨率图像和小型物体的检测性能,并降低对“良好质量”输入的依赖。

优势

将SPD-Conv应用于YOLO v5和ResNet创建的新CNN架构有以下优势:

  1. 提高了模型对低分辨率图像和小型物体的检测性能。
  2. 降低了对“良好质量”输入的依赖。

具体的改进效果如下:

  1. 在COCO-2017数据集上,使用YOLOv5-SPD相比原始的YOLOv5在AP和top-1准确率上分别提高了1.2%和0.7%。
  2. 在Tiny ImageNet数据集上,使用ResNet18-SPD相比原始的ResNet18在top-1准确率上提高了1.1%。
  3. 在CIFAR-10数据集上,使用ResNet50-SPD相比原始的ResNet50在top-1准确率上提高了0.6%。
Model \textbf{Model} Model AP \textbf{AP} AP AP S \textbf{AP}_\textbf{S} APS Params   (M) \textbf{Params (M)} Params (M) Latency   (ms) \textbf{Latency (ms)} Latency (ms)
YOLOv5-spd-n31.016.02.27.3
YOLOv5-spd-s40.023.58.77.3
YOLOv5-spd-m46.530.324.68.4
YOLOv5-spd-l48.532.452.710.3

这些改进主要得益于SPD-Conv消除了步长卷积和池化层,保留了更多的信息,使得模型能够更好地学习特征表示。此外,SPD-Conv是一种通用的构建块,可以很容易地应用于大多数甚至所有CNN体系结构。

论文:针对低分辨率图像和小物体的新的CNN构建块

https://arxiv.org/pdf/2208.03641.pdf
卷积神经网络(CNN)在许多计算机视觉任务中取得了巨大的成功,例如图像分类和目标检测。然而,它们的性能在低分辨率图像或小目标等更困难的图像任务中迅速下降。在本文中,我们指出,这根源于现有CNN体系结构中常见的缺陷设计,即使用步长卷积和/或池化层,这导致精细信息的损失和学习更有效的特征表示。为此,我们提出了一种新的CNN构建块,称为SPD-Conv,以替代每个步长卷积层和池化层(从而完全消除它们)。SPD-Conv由空间到深度(SPD)层和无步长卷积(Conv)层组成,并且可以应用于大多数甚至所有CNN体系结构。我们在两个最具代表性的计算机视觉任务中解释了这种新设计:目标检测和图像分类。然后,我们将SPD-Conv应用于YOLOv5和ResNet,并创建了新的CNN体系结构。经验上表明,我们的方法显著优于最先进的深度学习模型,特别是在低分辨率图像和小目标等更困难的图像任务中。我们已经在https://github.com/LabSAINT/SPD-Conv上开源了我们的代码。

1、简介

自AlexNet[18]以来,卷积神经网络(CNN)在许多计算机视觉任务中表现出色。例如,在图像分类中,著名的CNN模型包括AlexNet、VGGNet[30]、ResNet[13]等;而在目标检测中,这些模型包括R-CNN系列[9,28]、YOLO系列[26,4]、SSD[24]、EfficientDet[34]等等。然而,所有这些CNN模型都需要在训练和推理中输入“质量好的”输入(清晰图像、中等大小至较大的目标)。例如,AlexNet最初是在227×227清晰图像上训练和评估的,但将图像分辨率降低到1/4和1/8后,其分类准确率分别下降了14%和30%[16]。对VGGNet和ResNet也进行了类似的观察[16]。在目标检测的情况下,SSD在1/4分辨率的图像上遭受了显著的mAP损失(相当于损失了1/4大小的目标),如[11]所示。事实上,小目标检测是一项非常具有挑战性的任务,因为较小的目标固有较低的分辨率,并且模型学习的上下文信息也有限。此外,它们(不幸的是)经常与同一图像中的大型目标共存,而大型目标往往主导特征学习过程,从而使小型目标未被检测到。

在本论文中,我们认为这种性能下降的根源在于现有CNN中存在缺陷但又常见的设计。即使用步长卷积和/或池化,特别是在CNN体系结构的早期层中。这种设计的不利影响通常不会表现出来,因为大多数被研究的场景都是“友好的”,其中图像具有良好的分辨率,对象大小适中;因此,有大量的冗余像素信息,步长卷积和池化可以方便地跳过,模型仍然可以很好地学习特征。然而,在图像模糊或物体很小的更困难的场景中,冗余信息的丰富假设不再成立,当前的设计开始遭受精细信息的损失和不良学习的特征。
在这里插入图片描述

为了解决这个问题,我们提出了一个新的CNN构建块,称为SPD-Conv,以替代(并因此消除)步长卷积和池化层。SPD-Conv是一个空间到深度(SPD)层,后面是一个非步长(即普通)卷积层。SPD层对特征图X进行下采样,但保留通道维度中的所有信息,因此没有信息损失。我们的灵感来自于一种图像转换技术[29],该技术在对神经网络输入原始图像之前对其进行缩放,但我们将其大幅度推广到网络内部和整个网络中的特征图下采样;此外,我们在每个SPD后添加非步长卷积操作,以使用附加卷积层中的可学习参数减少(增加的)通道数。我们提出的方法既通用又统一,因为SPD-Conv(i)可以应用于大多数(如果不是所有)CNN体系结构,(ii)以相同的方式替换步长卷积和池化。总之,本文有以下贡献:

1、我们发现了现有CNN体系结构中存在缺陷但常见的的一种设计,并提出了一种新的构建块,称为SPD-Conv,以代替旧的设计。SPD-Conv在不失去可学习信息的情况下对特征图进行下采样,完全摒弃了现在广泛使用的步长卷积和池化操作。
2、SPD-Conv代表了一种通用和统一的方法,可以很容易地应用于大多数(如果不是所有)基于深度学习的计算机视觉任务。
3、我们使用两个最具有代表性的计算机视觉任务,即目标检测和图像分类,来评估SPD-Conv的性能。具体来说,我们构建了YOLOv5-SPD、ResNet18-SPD和ResNet50-SPD,并将它们与几个最先进的深度学习模型进行比较,评估它们在COCO-2017、Tiny ImageNet和CIFAR-10数据集上的性能。结果表明,特别是在小目标和低分辨率图像上,SPD-Conv在AP和top-1准确率方面取得了显著的性能提升。参见图1的预览。

4、SPD-Conv可以很容易地集成到流行的深度学习库,例如PyTorch和TensorFlow中,可能会产生更大的影响。我们的源代码可以在https://github.com/LabSAINT/SPD-Conv上获取。

本文的其余部分安排如下。第2节介绍了背景和相关工作的回顾。第3节描述了我们提出的方法,第4节使用了物体检测和图像分类两个案例研究。第5节提供了性能评估。本文在第6节得出结论。

2、引言和相关工作

我们首先概述了这一领域,重点放在物体检测上,因为它包含了图像分类。

目前最先进的物体检测模型是基于CNN的,可以分为一阶段和二阶段检测器,或基于锚点和基于锚点的检测器。二阶段检测器首先生成粗略的区域建议,然后使用头部对每个建议进行分类和细化(全连接网络)。相比之下,一阶段检测器跳过了区域建议步骤,直接在密集采样的位置上进行检测。基于锚点的方法使用锚框,这是一组预先定义的与训练数据中对象宽度和高度相匹配的框,以改善训练过程中的损失收敛。我们提供表1,将一些著名的模型进行分类。
在这里插入图片描述

通常,一阶段检测器比二阶段检测器更快,基于锚点的模型比无锚点模型更准确。因此,在我们的案例研究和实验中,我们更关注表1的第一栏中的一阶段和基于锚点的模型。
在这里插入图片描述

图2展示了一个典型的一阶段物体检测模型。它包括用于视觉特征提取的基于CNN的主干网络和一个用于预测每个包含的物体的类别和边界框的检测头。在两者之间,增加了一个额外的层作为颈部分组合不同尺度的特征以产生用于检测不同大小的物体的语义强特征。

2.1 小物体检测

传统上,检测小和大物体被视为一个多尺度物体检测问题。一种经典的方法是图像金字塔[3],它将输入图像调整为多个尺度并训练每个尺度的专用检测器。为了提高准确性,SNIP[31]提出了基于每个检测器中不同物体大小的选择性反向传播。SNIPER[32]通过仅处理每个对象实例周围的上下文区域而不是图像金字塔中的每个像素来提高SNIP的效率,从而减少了训练时间。以不同的方法来提高效率,特征金字塔网络(FPN)利用卷积层中固有的多尺度特征,使用侧向连接并使用自顶向下的结构组合这些特征。之后,PANet[22]和BiFPN[34]通过使用更短的通路来改善FPN的特征信息流。此外,SAN[15]被引入将多尺度特征映射到尺度不变子空间,使检测器对尺度变化更加鲁棒。所有这些模型一致地使用步长卷积和最大池化,而我们完全摆脱了它们。

2.2 低分辨率图像分类

解决这一挑战的早期尝试之一是[6],该论文提出了一种端到端的CNN模型,在分类之前增加了超分辨率步骤。之后,[25]提出将从高分辨率训练图像中获得精细知识转移到低分辨率测试图像上。然而,这种方法需要与特定应用(例如类别)相对应的高分辨率训练图像,而这些图像并不总是可用的。

同样需要高分辨率训练图像的还有如[37]等多个其他研究。最近,[33]提出了一种损失函数,该函数包含了属性级别的可分离性(其中属性指的是精细的、分层类标签),以便模型可以学习特定类别的判别特征。然而,精细的(分层的)类标签很难获得,因此限制了该方法的使用。

3. 一个新的构建块:SPD-Conv

SPD-Conv由空间到深度(SPD)层和一个非下采样卷积层组成。本部分详细描述了它。

3.1 空间到深度(SPD)

我们的SPD组件将一种(原始)图像转换技术[29]推广到CNN内部和整个网络的下采样特征图,如下所示。

考虑任何中间特征图X的大小 S × S × C 1 S \times S \times C_{1} S×S×C1,切出一个子特征图的序列作为
f 0 , 0 = X [ 0 : S :  scale  , 0 : S :  scale  ] , f 1 , 0 = X [ 1 : S :  scale  , 0 : S :  scale  ] , … , f scale  − 1 , 0 = X [  scale  − 1 : S :  scale  , 0 : S :  scale  ] ; f 0 , 1 = X [ 0 : S :  scale  , 1 : S :  scale  ] , f 1 , 1 , … , f scale  − 1 , 1 = X [  scale  − 1 : S :  scale  , 1 : S :  scale  ] ; ⋮ f 0 ,  scale  − 1 = X [ 0 : S :  scale, scale  − 1 : S :  scale  ] , f 1 ,  scale  − 1 , … , , f scale  − 1 ,  scale  − 1 = X [  scale  − 1 : S :  scale, scale  − 1 : S :  scale  ] . \begin{array}{c} f_{0,0}=X[0: S: \text { scale }, 0: S: \text { scale }], f_{1,0}=X[1: S: \text { scale }, 0: S: \text { scale }], \ldots, \\ f_{\text {scale }-1,0}=X[\text { scale }-1: S: \text { scale }, 0: S: \text { scale }] ; \\ f_{0,1}=X[0: S: \text { scale }, 1: S: \text { scale }], f_{1,1}, \ldots, \\ f_{\text {scale }-1,1}=X[\text { scale }-1: S: \text { scale }, 1: S: \text { scale }] ; \\ \vdots \\ f_{0, \text { scale }-1}=X[0: S: \text { scale, scale }-1: S: \text { scale }], f_{1, \text { scale }-1, \ldots,}, \\ f_{\text {scale }-1, \text { scale }-1}=X[\text { scale }-1: S: \text { scale, scale }-1: S: \text { scale }] . \end{array} f0,0=X[0:S: scale ,0:S: scale ],f1,0=X[1:S: scale ,0:S: scale ],,fscale 1,0=X[ scale 1:S: scale ,0:S: scale ];f0,1=X[0:S: scale ,1:S: scale ],f1,1,,fscale 1,1=X[ scale 1:S: scale ,1:S: scale ];f0, scale 1=X[0:S: scale, scale 1:S: scale ],f1, scale 1,,,fscale 1, scale 1=X[ scale 1:S: scale, scale 1:S: scale ].

一般来说,给定任何(原始)特征图X,一个子图f_{x,y}由所有那些i+x和j+y都能被scale整除的X(i,j)组成。因此,每个子图都能把X以一个比例因子downsamples。Fig. 3(a)(b)©给出了一个当scale=2时的例子,我们得到了四个子图 f 0 , 0 , f 1 , 0 , f 0 , 1 , f 1 , 1 f_{0,0},f_{1,0},f_{0,1},f_{1,1} f0,0,f1,0,f0,1,f1,1,每个子图都呈现出 ( S 2 , S 2 , C 1 ) (\frac{S}{2},\frac{S}{2},C_{1}) (2S,2S,C1)形状,且每个都能以2为因子downsamplesX。

下一步,我们在通道维度上将这些子特征图拼接起来,从而得到一个特征图 X ′ X^{\prime} X,该特征图在空间维度上被scale因子减小,在通道维度上被scale因子增加了 e 2 e^{2} e2。换句话说,SPD将特征图 X ( S , S , C 1 ) X\left(S, S, C_{1}\right) X(S,S,C1)转换成了中间特征图 X ′ ( S s c a l e , S s c a l e , s c a l e 2 C 1 ) X^{\prime}\left(\frac{S}{scale}, \frac{S}{scale}\right. , scale \left.^{2} C_{1}\right) X(scaleS,scaleS,scale2C1)(图3(d)给出了当scale=2时的示例)。

3.2 非下采样卷积

在SPD特征变换层之后,我们添加了一个非下采样(即步长为1)的卷积层,该卷积层有C_{2}个滤波器,其中 C 2 < s c a l e 2 C 1 C_{2}<scale^{2}C_{1} C2<scale2C1,进一步将 X ′ ( S scale , S scale , s c a l e 2 C 1 ) X^{\prime}\left(\frac{S}{\text{scale}}, \frac{S}{\text{scale}}, scale^{2}C_{1}\right) X(scaleS,scaleS,scale2C1)转化为 X ′ ′ ( S scale , S scale , C 2 ) X^{\prime\prime}\left(\frac{S}{\text{scale}}, \frac{S}{\text{scale}}, C_{2}\right) X′′(scaleS,scaleS,C2)。我们使用非下采样卷积的原因是尽可能保留所有判别特征信息。否则,例如,使用步长为3的3 \times 3滤波器时,特征图会“缩小”,但每个像素只采样一次;如果步长为2,会发生不对称采样,其中偶数行/列和奇数行/列将有不同的采样次数。总的来说,步长大于1的下采样会导致信息的非判别性损失,虽然在表面看来,它似乎也将特征图 X ( S , S , C 1 ) X\left(S, S, C_{1}\right) X(S,S,C1)转化为 X ′ ′ ( S scale , S scale , C 2 ) X^{\prime\prime}\left(\frac{S}{\text{scale}}, \frac{S}{\text{scale}}, C_{2}\right) X′′(scaleS,scaleS,C2)(但没有 X ′ X^{\prime} X)。
在这里插入图片描述

4. 如何使用SPD-Conv:案例研究

为了解释如何将我们提出的方法应用于重新设计CNN体系结构,我们使用两个最代表性的计算机视觉模型类别:目标检测和图像分类。这不会失去一般性,因为几乎所有的CNN体系结构都使用下采样操作来进行有步幅的卷积和/或池化操作。

4.1 目标检测

YOLO是一系列非常流行的目标检测模型,我们选择最新的YOLOv5[14]来演示。YOLOv5使用CSPDarknet53[4]和一个SPP[12]模块作为其主干,PANet[23]作为其脖子,YOLOv3头[26]作为其检测头。此外,它还使用了各种数据扩充方法和YOLOv4[4]的一些模块进行性能优化。它使用带有一个sigmoid层的交叉熵损失来计算对象性和分类损失,以及CIoU损失函数[38]用于定位损失。CIoU损失考虑了比IoU损失更多的细节,例如边缘重叠、中心距离和宽度与高度的比率。

YOLOv5-SPD。我们将第3节中描述的方法应用于YOLOv5,并获得YOLOv5-SPD(图4),只需将YOLOv5的stride2卷积替换为我们的SPD-Conv构建块。有7个实例这样的替换,因为YOLOv5在主干中使用五个stride-2卷积层将特征图下采样2^5倍,在脖子中使用两个stride-2卷积层。在YOLOv5的脖子中,每个有步长的卷积后面都有一个连接层;这不会改变我们的方法,我们只需将其保留在我们的SPD和Conv之间。
在这里插入图片描述

可扩展性。YOLOv5-SPD可以轻松上下扩展,以满足不同应用或硬件需求,与YOLOv5一样。具体来说,我们只需简单地调整(1)每个非下采样卷积层的滤波器数量和/或(2)C3模块的重复次数(如图4所示),以获得不同版本的YOLOv5-SPD。第一个被称为宽度缩放,将原始宽度n_{w}(通道数)改变为 ⌈ n w × width-factor ⌉ 8 \left\lceil n_{w} \times \text{width-factor}\right\rceil_{8} nw×width-factor8(四舍五入到最近的8的倍数)。第二个被称为深度缩放,将原始深度n_{d}(重复C3模块的次数;例如,图4中的9个C3)改变为 ⌈ n d × d e p t h f a c t o r ⌉ \left\lceil n_{d} \times\right. depth_factor \rceil nd×depthfactor。通过选择不同的宽度/深度因子,我们可以获得nano、small、medium和large版本的YOLOv5-SPD,如表2所示,其中因子值与后来实验中用于比较的YOLOv5相同。
在这里插入图片描述

4.2 图像分类

一个典型的分类CNN以一个stem单元开始,该单元由一个步长为2的卷积和一个池化层组成,以将图像分辨率降低4倍。一个流行的模型是ResNet [13],它赢得了ILSVRC 2015挑战赛。ResNet引入了残差连接,允许训练深度达到152层的网络。它还通过只使用单个全连接层显着减少了总参数数量。在最后使用一个softmax层来归一化类别预测。

ResNet18-SPD和ResNet50-SPD。ResNet-18和ResNet-50都使用四个步长为2的卷积和一个步长为2的最大池化层来将每个输入图像下采样2^5倍。应用我们提出的构建块,我们用SPD-Conv替换四个有步长的卷积;但另一方面,我们只需删除最大池化层,因为我们的主要目标是低分辨率图像,所以实验中使用的数据集中的图像都很小(Tiny ImageNet中的64 \times 64和CIFAR-10中的32 \times 32),因此池化是不必要的。对于较大的图像,这种最大池化层仍然可以通过SPD-Conv以同样的方式替换。这两个新架构如表3所示。
在这里插入图片描述

5 实验

本节使用两个具有代表性的计算机视觉任务,即目标检测和图像分类,来评估我们提出的SPD-Conv方法。

5.1 目标检测

数据集和设置。我们使用COCO-2017数据集[1],该数据集分为train2017(118,287张图像)用于训练,val2017(5,000张图像;也称为minival)用于验证,以及test2017(40,670张图像)用于测试。我们使用表4和表5中列出的各种最先进的基础模型。我们报告不同IoU阈值[0.5:0.95]和目标大小(小、中、大)下val2017的标准平均精度(AP)指标。我们还报告了具有可访问标签的test2017子集test-dev2017(20,288张图像)上的AP指标。但是,这些标签没有公开发布,但需要向CodaLab COCO Detection Challenge[2]提交所有预测标签的JSON文件以检索评估指标,我们已经提交了。

训练。我们在train2017上训练不同版本(nano、small、medium和large)的YOLOv5-SPD和所有基准模型。与大多数其他研究不同,我们没有使用迁移学习,而是从头开始训练。这是因为我们想要检查每个模型的真实学习能力,而不被它通过从理想(高质量)数据集(如ImageNet)迁移学习继承的丰富特征表示所掩盖。这是在我们自己的模型 ( ∗ − S P D − n / s / m / l ) (*-\mathrm{SPD}-\mathrm{n} / \mathrm{s} / \mathrm{m} / \mathrm{l}) (SPDn/s/m/l)和所有现有的yolo系列模型(v5, X, v4及其缩放版本,如纳米,小型,大型等)上进行的。其他基线模型仍然使用迁移学习,因为我们缺乏资源(从头开始训练消耗大量GPU时间)。然而,请注意,这仅仅意味着这些基线比我们自己的模型处于更有利的位置,因为它们受益于高质量的数据集。

我们选择具有0.937动量和0.0005权重衰减的SGD优化器。在三个预热时期内,学习率从0.0033线性增加到0.01,然后使用Cosine衰减策略减小到最终值0.001。nano和small模型在四个V-100 32 GB GPU上以批量大小128进行训练,而medium和large模型以批量大小32进行训练。对于目标性和分类,我们采用CIoU损失[38]和交叉熵损失。我们还采用几种数据增强技术来减轻过拟合并提高所有模型的性能;这些技术包括(i)色调、饱和度和值的摄影失真,(ii)几何失真,如平移、缩放、剪切、fliplr和flipup,以及(iii)多图像增强技术,如马赛克和cutmix。请注意,在推理时不会使用增强。超参数直接采用YOLOv5的而没有重新调整。

结果
表4报告了在val2017上的结果, 表5报告了在test-dev上的结果。两表中的 A P S , A P M , A P L \mathrm{AP}_{\mathrm{S}}, \mathrm{AP}_{\mathrm{M}}, \mathrm{AP}_{\mathrm{L}} APSAPMAPL均表示对于小/中/大物体的 A P \mathrm{AP} AP,不应与模型尺度(nano,small,medium,large)混淆。如表所示,图像分辨率为640 \times 640在目标检测中并不算高(与图像分类相反),因为实际物体的分辨率要低得多,尤其是在物体较小时。
在这里插入图片描述

val2017上的结果。表4按模型尺度组织,由水平线分隔(最后一组是大尺度模型)。在nano模型的第一类中,我们的YOLOv5-SPD-n在AP和 A P S \mathrm{AP}_{\mathrm{S}} APS方面都是表现最好的:其 A P S \mathrm{AP}_{\mathrm{S}} APS比第二名YOLOv5n高出13.15%,其整体AP也比第二名YOLOv5n高出10.7%。

在第二类,小模型中,我们的YOLOv5-SPD-s在AP和\mathrm{AP}_{\mathrm{S}}方面都是表现最好的,尽管这一次YOLOX-S在AP方面是第二好的。

在第三类,中等模型类别中,虽然我们的YOLOv5-SPD-m仍然优于其他模型,但AP性能已经相当接近。另一方面,我们的 A P S \mathrm{AP}_{\mathrm{S}} APS比第二名高出8.6%,具有较大的领先优势,这是一个好兆头,因为SPD-Conv对更小的物体和更低的分辨率特别有利。

最后,对于大型模型,YOLOX-L在AP方面取得了最好的成绩,而我们的YOLOv5-SPD-l仅略低(低3%)(但比最后一组中显示的其他基准要好得多)。另一方面,我们的 A P S \mathrm{AP}_{\mathrm{S}} APS仍然是最高的,这反映了SPD-Conv的上述优势。
在这里插入图片描述

test-dev2017上的结果。如表5所示,我们的YOLOv5-SPD-n在nano模型类别中的 A P S \mathrm{AP}_{\mathrm{S}} APS上再次成为明显的赢家,具有良好的获胜优势(比第二名YOLOv5n高出19%)。对于平均AP,虽然看起来EfficientDet-D0表现得比我们更好,但这是因为EfficientDet的参数几乎是我们的两倍,并且使用高分辨率图像进行训练(通过转移学习,单元格中标记为“Trf”),因此AP与分辨率高度相关。这种训练好处同样反映在小模型类别中。

尽管其他基准获得了这种好处,但我们的方法在接下来的中等模型类别中重新获得了最高排名,在 A P \mathrm{AP} AP A P S \mathrm{AP}_{\mathrm{S}} APS方面均表现最佳。最后,在大型模型类别中,我们的YOLOv5-SPD-l在 A P S \mathrm{AP}_{\mathrm{S}} APS方面也是表现最好的,并且在AP上与YOLOX-L非常接近。

总结。很明显,通过简单地用我们提出的SPD-Conv构建块替换跨行卷积和池化层,神经网络可以显着提高其准确性,同时保持相同水平的参数大小。对象越小,改进越明显,很好地满足了我们的目标。虽然我们并不总是在所有情况下都占据第一位置,但SPD-Conv是唯一一直表现良好的方法;如果表现不佳,它偶尔会成为(非常接近的)亚军,而在 A P S \mathrm{AP}_{\mathrm{S}} APS(我们的主要目标指标)上,它总是赢家。
在这里插入图片描述

最后,请注意,我们采用了未经调整的YOLOv5超参数,这意味着在专门的超参数调整后,我们的模型表现可能会更好。还要注意,所有非YOLO的基线(和PP-YOLO)都使用了转移学习进行训练,因此受益于高质量的图像,而我们的模型则没有。

视觉对比。为了直观的理解,我们使用随机选择的两张图片提供了两个真实的例子,如图5所示。我们比较了YOLOv5-SPD-m和YOLOv5m,因为后者在相应(中等)类别的所有基线中表现最好。图5(a)(b)表明,YOLOv5-SPD-m能够检测到YOLOv5m遗漏的被遮挡长颈鹿,图5©(d)表明,YOLOv5-SPD-m能够检测到非常小的物体(一张脸和两个长凳),而YOLOv5m无法检测到。

5.2 图像分类

数据集和设置。对于图像分类任务,我们使用了Tiny ImageNet[19]和CIFAR-10数据集[17]。Tiny ImageNet是ILSVRC-2012分类数据集的一个子集,包含200个类。每个类有500个训练图像、50个验证图像和50个测试图像。每张图像的分辨率为 64   × 64   × 3 64 \ × 64 \ × 3 64 ×64 ×3像素。CIFAR-10由6万张分辨率为 32   × 32   × 3 32 \ × 32 \ × 3 32 ×32 ×3的图像组成,其中包括5万张训练图像和1万张测试图像。有10个类,每个类有6000张图片。我们使用top-1的准确率作为衡量分类性能的指标。
在这里插入图片描述

训练。我们在Tiny ImageNet上训练我们的ReseNet18-SPD模型。我们执行随机网格搜索来调整超参数,包括学习率、批大小、动量、优化器和权重衰减。图6显示了使用wandb mlop生成的样例超参数扫描图。结果是SGD优化器的学习率为0.01793,动量为0.9447,小批大小为256,权值衰减正则化为0.002113,训练epoch为200。接下来,我们在CIFAR-10上训练我们的ResNet50-SPD模型。超参数采用ResNet50论文,其中SGD优化器使用初始学习率0.1和动量0.9,批大小128,权衰减正则化0.0001,200个训练epoch。对于ReseNet18-SPD和ReseNet50-SPD,我们使用与ResNet相同的衰减函数,随着epoch数的增加而降低学习率。

测试。Tiny ImageNet上的精度是在验证数据集上评估的,因为测试数据集中的地面真实值不可用。在测试数据集上计算CIFAR-10上的精度。

结果。表6总结了top- 1精度的结果。结果表明,我们的模型ResNet18-SPD和ResNet50-SPD明显优于所有其他基准模型。
在这里插入图片描述

最后,我们在图7中提供了一个使用Tiny ImageNet的视觉插图。给出了8个ResNet18错误分类和ResNet18SPD正确分类的例子。这些图像的共同特点是分辨率较低,因此对标准ResNet提出了挑战,该ResNet在其跨步卷积和池化操作中丢失了细粒度信息。

6、结论

本文发现了现有CNN架构中一种普遍但有缺陷的设计,即使用步长卷积和/或池化层。这会导致特别是在低分辨率图像和小物体上的精细特征信息的损失。然后,我们提出了一种新的CNN构建块,称为SPD-Conv,通过用空间到深度卷积和非步长卷积取代它们来消除步长和池化操作。这种新设计具有在降低特征图采样率的同时保留判别特征信息的巨大优势。它也代表了一种通用和统一的方法,可以很容易地应用于任何CNN架构,就像应用于步长卷积和池化一样。我们提供了两个最代表性的用例,即目标检测和图像分类,并通过广泛的评估证明SPD-Conv带来了显著的检测和分类准确率提升。我们期望它可以轻松集成到现有的深度学习框架(如PyTorch和TensorFlow)中,从而广泛受益于研究社区。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/744981.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文华WH7主图多空预警系统指标公式源码

RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//收盘价与N周期最低值做差&#xff0c;N周期最高值与N周期最低值做差&#xff0c;两差之间做比值定义为RSV K:SMA(RSV,3,1);//RSV的移动平均 D:SMA(K,3,1);//K值的移动平均 DIFF : EMA(CLOSE,12) - EMA(CLOSE,26); D…

1uH电感SK6615电流1.5A频率2MHz输入5.5V同步降压转换器

SK6615C 1.5A 2MHz 5.5V同步降压转换器 SK6615 SOT23-5封装和丝印LA 描述 该SK6615C是一款高效、DC-DC降压型开关稳压器&#xff0c;能够提供高达1.5A的输出电流。该器件的工作输入电压范围为 2.6V 至 5.5V&#xff0c;输出电压范围为 0.6V 至 VIN。工作频率为2MHz&#xff0c…

神经网路学习7-线性模型

一个最简单的线性模型&#xff0c;w是权重&#xff0c;一般来说会取随机值&#xff0c;然后不断学习直到与预期相同 如此以此取每个值与真实值的差值&#xff0c;即评估误差 即找一个合适的权重w&#xff0c;使得平均误差最小 上面的是针对单个样本的&#xff0c;后面的是对…

30-33、SpringBoot项目部署\属性配置方式\多环境开发(一个文件)\多环境分组(多个文件)

1、打包插件:和springboot的版本保持一致 根pom <build><plugins><!--打包插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>3.1.3</versi…

urfread刷算法题day7|118. 杨辉三角

观察可得&#xff1a;每行第一个和最后一个&#xff0c;都是1. 而且每行的元素个数也是只比上一行多1个 中间的元素计算的时候&#xff0c;值为它上一行相邻两个元素的和。 考验ArrayList基本功 class Solution {public List<List<Integer>> generate(int numRow…

并发编程理论基础——合适的线程数量和安全的局部变量(十)

多线程的提升方向 主要方向在于优化算法和将硬件的性能发挥到极致想要发挥出更多的硬件性能&#xff0c;最主要的就是提升I/O的利用率和CPU的利用率以及综合利用率操作系统已经解决了磁盘和网卡的利用率问题&#xff0c;利用中断机制还能避免 CPU 轮询 I/O 状态&#xff0c;也提…

【算能全国产AI盒子】基于BM1688CV186AH+FPGA智能物联工作站,支持差异化泛AI视觉产品定制

在数据呈现指数级增长的今天&#xff0c;越来越多的领域和细分场景对实时、高效的数据处理和分析的需求日益增长&#xff0c;对智能算力的需求也不断增强。为应对新的市场趋势&#xff0c;凭借自身的硬件研发优势&#xff0c;携手算能相继推出了基于BM1684的边缘计算盒子&#…

VS Code 配置cmake(Linux环境)

通过sudo apt install cmake在linux上安装cmake 在Vs Code中安装这两个插件 通过命令whereis cmake获取linux中cmake的路径信息 右键CMake Tools右下角齿轮标志&#xff0c;选择扩展设置&#xff08;Extension Settings&#xff09; 注意要设置的是本地&#xff0c;还是远程连接…

如何在FastAPI服务器中添加黑名单和白名单实现IP访问控制

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 添加黑名单功能步骤1:安装依赖步骤2:创建FastAPI应用步骤3:添加黑名单📝 添加白名单功能步骤1:创建白名单列表步骤2:添加白名单检查⚓️ 相关链接 ⚓️📖 介绍 📖 在现代网络应用开发中,为了增强…

(9)农作物喷雾器

文章目录 前言 1 必要的硬件 2 启用喷雾器 3 配置水泵 4 参数说明 前言 Copter 包括对农作物喷雾器的支持。该功能允许自动驾驶仪连接到一个 PWM 操作的泵和&#xff08;可选&#xff09;旋转器&#xff0c;根据飞行器速度控制液体肥料的流动速度。 稍微过时的视频显示了…

【PB案例学习笔记】-24创建一个窗口图形菜单

写在前面 这是PB案例学习笔记系列文章的第24篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

第一百二十九节 Java面向对象设计 - Java枚举比较

Java面向对象设计 - Java枚举比较 您可以通过三种方式比较两个枚举常量&#xff1a; 使用Enum类的compareTo()方法使用Enum类的equals()方法使用运算符 Enum类的compareTo()方法比较同一枚举类型的两个枚举常量。它返回两个枚举常量的序数差。如果两个枚举常量相同&#xff0…

《山西化工》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问&#xff1a;《山西化工》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的第一批认定学术期刊。 问&#xff1a;《山西化工》级别&#xff1f; 答&#xff1a;省级。主办单位&#xff1a;山西省工业和信息化厅 主管单位&#xff1a;山…

基于SaaS平台的iHRM管理系统测试学习

目录 目录 1、登录模块 2、员工管理模块 3、Postmannewman软件的安装&#xff0c;学习 1、Postman的使用 2、Postman断言 3、全局变量和环境变量 4、请求时间戳 5、Postman关联 6、批量执行测试用例 7、Postman生成测试报告 8、Postman读取外部数据文件&#xff08…

Java——IO流(一)-(7/8):字节流-FileOutputStream、字节流完成文件拷贝

目录 文件字节输出流&#xff1a;写字节出去 构造器及常用方法 实例演示 案例&#xff1a;文件复制 过程分析 复制照片 复制文件 文件字节输出流&#xff1a;写字节出去 FileOutputStream&#xff08;文件字节输出流&#xff09; 作用&#xff1a;以内存为基准&#x…

如何提高pcdn技术的传输效率?

提高PCDN技术的传输效率是一个复杂且多层面的任务&#xff0c;涉及多个关键策略和方法的结合。以下是一些具体的建议和措施&#xff0c;有助于提升PCDN技术的传输效率&#xff1a; 一&#xff0e;优化缓存策略&#xff1a; 精准定位热点内容&#xff0c;优先将这部分内容缓存…

《数字图像处理》实验报告四

一、实验任务与要求 对 Fig0403.tif 进行傅里叶变换并显示其频谱图像&#xff1b;fft2(x) 对 Fig0405.tif 图像进行填充和非填充的高斯滤波&#xff0c;并观察其不同&#xff1b;paddedsize&#xff0c;fft2&#xff08;x,m,n&#xff09; 由 sobel 空间滤波算子生成相应的频率…

小柴冲刺嵌入式系统设计师系列总目录

工作两年 逐渐意识到基础知识的重要性✌️ 意识到掌握了这个证书好像就已经掌握了80%工作中用到的知识了。剩下的就在工作的实战中学习 来和小柴一起冲刺软考吧&#xff01;加油&#x1f61c; 【小柴冲刺软考中级嵌入式系统设计师系列】总目录 前言 专栏目标&#xff1a;冲刺…

最新国内首码对接app平台汇总,一手项目资源!

在当前激烈的移动应用市场竞争环境下&#xff0c;有效推广首次代码App项目变得至关重要。文章将探讨一些推广首次代码App项目的策略和适用的推广渠道&#xff0c;助于开发者获取更多流量和用户关注。 选择可靠的平台来进行推广。 在推广首码App项目之前&#xff0c;首先要考虑…

lmdeploy部署chatglm3模型并对话

lmdeploy部署chatglm3模型并对话 环境准备创建虚拟环境安装组件下载模型 chat启动模型并对话启动成api_server服务并对话启动成gradio服务 环境准备 使用30% A100 来运行chatglm3模型&#xff0c;采用lmdeploy来启动。 创建虚拟环境 # 创建虚拟环境 conda create -n langcha…