YOLOv12最新创新改进系列:不再使用跨步卷积或池化层,融合低分辨率图像和小物体的新型卷积神经网络构建模块-SPDConv,全新改进,嘎嘎提升,适用于目标检测全领域!!!
购买相关资料后畅享一对一答疑!
详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!
不再使用跨步卷积或池化层:一种用于低分辨率图像和小物体的新型卷积神经网络构建模块
作者
Raja Sunkara 和 Tie Luo
密苏里科技大学计算机科学系
{rs5cq,tluo}@mst.edu
摘要
卷积神经网络(CNN)在许多计算机视觉任务中取得了显著成功,如图像分类和目标检测。然而,当处理低分辨率图像或小物体时,它们的性能迅速下降。本文指出,这一问题的根源在于现有CNN架构中常见但存在缺陷的设计,即使用跨步卷积和/或池化层,这导致了细粒度信息的丢失和学习到的特征表示效果较差。为此,我们提出了一种新的CNN构建模块,称为SPD-Conv,用于替代每个跨步卷积层和每个池化层(从而完全消除它们)。SPD-Conv由一个空间到深度(SPD)层和一个非跨步卷积(Conv)层组成,可以应用于大多数甚至所有的CNN架构。我们在两个最具代表性的计算机视觉任务中解释了这一新设计:目标检测和图像分类。然后,我们通过将SPD-Conv应用于YOLOv5和ResNet,创建了新的CNN架构,并通过实验证明我们的方法显著优于最先进的深度学习模型,特别是在处理低分辨率图像和小物体的困难任务中。
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损失,具体表现为损失34.1,如文献 [11] 所示。实际上,小物体检测是一个非常具有挑战性的任务,因为较小的物体本身具有较低的分辨率,并且模型学习的上下文信息有限。此外,它们常常(不幸的是)与图像中的大物体共存,而大物体往往主导特征学习过程,导致小物体未被检测到。
本文认为,这种性能下降的根源在于现有CNN中一种常见但有缺陷的设计,即在CNN架构的早期层中使用跨步卷积和/或池化层。这种设计的不利影响通常不会显现,因为大多数研究场景都是“友好”的,即图像具有良好的分辨率和适中的物体大小;因此,跨步卷积和池化可以方便地跳过大量冗余像素信息,模型仍然可以很好地学习特征。然而,在更具挑战性的任务中,当图像模糊或物体较小时,这种对冗余信息的假设不再成立,当前的设计开始因细粒度信息的丢失和特征学习效果差而受损。
为了解决这个问题,我们提出了一种新的CNN构建模块,称为SPD-Conv,以替代(并因此完全消除)跨步卷积和池化层。SPD-Conv由一个空间到深度(SPD)层和一个非跨步(即普通)卷积层组成。SPD层通过在通道维度上保留所有信息来下采样特征图X,因此不会有信息丢失。我们的灵感来自一种图像变换技术 [29],该技术在将原始图像输入神经网络之前对其进行重新缩放,但我们将其大大推广到整个网络内部和整个网络中的特征图下采样;此外,我们在每个SPD之后添加了一个非跨步卷积操作,以使用可学习的参数在添加的卷积层中减少(增加的)通道数量。我们提出的方法既通用又统一,即SPD-Conv(i)可以应用于大多数甚至所有CNN架构,(ii)以相同的方式替代跨步卷积和池化。
总之,本文的主要贡献如下:
-
识别常见设计缺陷并提出SPD-Conv:
- 我们识别出现有CNN架构中的一种常见但有缺陷的设计,即使用跨步卷积和/或池化层。
- 我们提出了一种新的构建模块SPD-Conv,取代旧设计。
- SPD-Conv通过不丢失可学习信息的方式下采样特征图,完全抛弃了目前广泛使用的跨步卷积和池化操作。
-
SPD-Conv的通用性和统一性:
- SPD-Conv代表了一种通用和统一的方法,可以轻松应用于大多数甚至所有基于深度学习的计算机视觉任务。
-
通过两个代表性计算机视觉任务进行实证验证:
- 使用目标检测和图像分类两个最具代表性的计算机视觉任务,评估SPD-Conv的性能。
- 具体来说,我们构建了YOLOv5-SPD、ResNet18-SPD和ResNet50-SPD,并在COCO-2017、Tiny ImageNet和CIFAR-10数据集上与几种最先进的深度学习模型进行了比较。结果表明,SPD-Conv在AP和top-1准确率方面显著提升,尤其在小物体和低分辨率图像上表现尤为出色。见图1预览。
2 预备知识与相关工作
我们首先概述这一领域,重点关注目标检测,因为它涵盖了图像分类。
当前最先进的目标检测模型基于CNN,可以分为单阶段和双阶段检测器,或基于锚点和无锚点检测器。双阶段检测器首先生成粗略的区域提议,然后使用一个头部(全连接网络)对每个提议进行分类和细化。相比之下,单阶段检测器跳过区域提议步骤,直接在密集采样的位置上进行检测。基于锚点的方法使用锚框,这是一组预定义的框,匹配训练数据中物体的宽度和高度,以改善训练期间的损失收敛。我们提供了表1对一些知名模型进行分类。
总体而言,单阶段检测器比双阶段检测器更快,基于锚点的方法比无锚点的方法更准确。因此,在我们的案例研究和实验中,我们更关注单阶段和基于锚点的模型,即表1的第一类。
一个典型的单阶段目标检测模型如图2所示。它由一个基于CNN的骨干网络用于视觉特征提取,一个检测头用于预测每个包含物体的类别和边界框。在两者之间,添加了一个额外的层颈以结合多尺度特征,生成语义强的特征以检测不同大小的物体。
2.1 小物体检测
传统上,检测小物体和大物体被视为一个多尺度目标检测问题。经典方法之一是图像金字塔 [3],它将输入图像调整为多个尺度,并为每个尺度训练一个专门的检测器。为了提高准确性,提出了SNIP [31],它基于每个检测器中不同物体大小进行选择性反向传播。SNIPER [32]通过仅处理每个物体实例周围的上下文区域而不是图像金字塔中的每个像素,从而提高了SNIP的效率,减少了训练时间。紧随其后,特征金字塔网络(FPN) [20] 利用卷积层中固有的多尺度特征,通过侧向连接和自上而下的结构结合这些特征。随后,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₁,从中切割出一系列子特征图:
-
f₀,₀ = X[0 : S : scale, 0 : S : scale]
-
f₁,₀ = X[1 : S : scale, 0 : S : scale]
-
…
-
fₛᵃᵖₑₗₑ−₁,₀ = X[scale − 1 : S : scale, 0 : S : scale]
-
f₀,₁ = X[0 : S : scale, 1 : S : scale]
-
f₁,₁ = X[1 : S : scale, 1 : S : scale]
-
…
-
fₛᵃᵖₑₗₑ−₁,₁ = X[scale − 1 : S : scale, 1 : S : scale]
…
- f₀,ₛᵃᵖₑₗₑ−₁ = X[0 : S : scale, scale − 1 : S : scale]
- f₁,ₛᵃᵖₑₗₑ−₁ = X[1 : S : scale, scale − 1 : S : scale]
- …
- fₛᵃᵖₑₗₑ−₁,ₛᵃᵖₑₗₑ−₁ = X[scale − 1 : S : scale, scale − 1 : S : scale]
一般来说,给定任意(原始)特征图X,子图fₓ,ᵧ由所有满足i + x和j + y均可被scale整除的条目X(i, j)组成。因此,每个子图将X下采样scale倍。图3(a)(b)©以scale = 2为例,展示了如何获得四个子图f₀,₀、f₁,₀、f₀,₁、f₁,₁,每个子图的形状为(S/2, S/2, C₁),并将X下采样2倍。
接下来,我们沿通道维度将这些子特征图拼接,得到一个特征图X₀,其空间维度减少scale倍,通道维度增加scale²倍。换句话说,SPD将特征图X(S, S, C₁)转换为中间特征图X₀(scale × S, scale × S, scale²C₁)。图3(d)使用scale = 2进行说明。
3.2 非跨步卷积
在SPD特征变换层之后,我们添加一个具有C₂个滤波器的非跨步(即stride=1)卷积层,将X₀(scale × S, scale × S, scale²C₁)进一步转换为X₀₀(scale × S, scale × S, C₂)。我们使用非跨步卷积的原因是尽可能保留所有判别性特征信息。否则,例如,使用3×3滤波器且stride=3,特征图将被“缩小”,但每个像素仅被采样一次;如果stride=2,则会发生非对称采样,即偶数和奇数行/列将被不同次数地采样。一般而言,步幅大于1的跨步会导致信息的非判别性丢失,尽管在表面上,它看起来也是将特征图X(S, S, C₁) → X₀₀(scale × S, scale × S, C₂),但没有X₀。
4 如何使用SPD-Conv:案例研究
为了说明如何将我们提出的方法应用于重新设计CNN架构,我们使用了两个最具代表性的计算机视觉模型类别:目标检测和图像分类。这并不影响一般性,因为几乎所有的CNN架构都使用跨步卷积和/或池化操作来下采样特征图。
4.1 目标检测
YOLO系列是非常流行的目标检测模型,我们选择最新的YOLOv5 [14]进行演示。YOLOv5使用CSPDarknet53 [4]作为其骨干网络,并配有一个SPP [12]模块;使用PANet [23]作为其颈部(neck),以及YOLOv3头部 [26] 作为其检测头。此外,它还使用了各种数据增强方法和一些来自YOLOv4 [4] 的模块以优化性能。它采用带有sigmoid层的交叉熵损失来计算目标性和分类损失,以及CIoU损失函数 [38] 来计算定位损失。CIoU损失考虑了比IoU损失更多的细节,如边缘重叠、中心距离和宽高比。
YOLOv5-SPD: 我们按照第3节所述的方法将SPD-Conv应用于YOLOv5,得到YOLOv5-SPD(见图4),仅通过将YOLOv5中的跨步为2的卷积替换为我们的SPD-Conv构建模块。共有7处替换,因为YOLOv5在骨干网络中使用了五个跨步为2的卷积层以将特征图下采样2⁵倍,并在颈部中使用了两个跨步为2的卷积层。YOLOv5颈部中的每个跨步卷积后都有一个拼接层;这并不改变我们的方法,我们仅在SPD和Conv之间保留它。
可扩展性: YOLOv5-SPD可以通过以与YOLOv5相同的方式轻松缩放以适应不同的应用或硬件需求。具体来说,我们可以简单地调整(1)每个非跨步卷积层中的滤波器数量和/或(2)C3模块的重复次数(如图4所示),以获得不同版本的YOLOv5-SPD。第一种调整称为宽度缩放,它将原始宽度nw(通道数)更改为d_nw × width_factor(四舍五入到最接近的8的倍数)。第二种调整称为深度缩放,它将原始深度nd(C3模块的重复次数,例如图4中的9 × C3)更改为d_nd × depth_factor。通过选择不同的宽度/深度因子,我们获得了表2所示的nano、small、medium和large版本的YOLOv5-SPD,其中因子值与YOLOv5相同,以便在后续实验中进行比较。
表2:缩放YOLOv5-SPD以获得适合不同用例的不同版本。
模型 | 深度因子 | 宽度因子 |
---|---|---|
YOLOv5-SPD-n | 0.33 | 0.25 |
YOLOv5-SPD-s | 0.33 | 0.50 |
YOLOv5-SPD-m | 0.67 | 0.75 |
YOLOv5-SPD-l | 1.00 | 1.00 |
4.2 图像分类
分类CNN通常以一个由跨步为2的卷积和池化层组成的干线单元(stem unit)开始,以将图像分辨率降低四倍。一个流行的模型是ResNet [13],它在ILSVRC 2015挑战赛中获胜。ResNet引入了残差连接,允许训练深达152层的网络。它还通过仅使用一个全连接层显著减少了参数总数。最终使用softmax层对类别预测进行归一化。
ResNet18-SPD 和 ResNet50-SPD: ResNet-18和ResNet-50都使用了四个跨步为2的卷积和一个跨步为2的最大池化层,将每个输入图像下采样2⁵倍。应用我们提出的构建模块,我们用SPD-Conv替换了四个跨步卷积;另一方面,我们简单地移除了最大池化层,因为我们的主要目标是低分辨率图像,实验中使用的数据集具有相当小的图像(Tiny ImageNet为64 × 64,CIFAR-10为32 × 32),因此池化是不必要的。对于更大的图像,这些最大池化层仍然可以以相同的方式被SPD-Conv替换。两个新架构如表3所示。
表3:我们的ResNet18-SPD和ResNet50-SPD架构。
层名称 | ResNet18-SPD | ResNet50-SPD |
---|---|---|
spd1 | SPD-Conv | SPD-Conv |
conv1 | 3 × 3 卷积核,64输出通道 | 3 × 3 卷积核,64输出通道 |
conv2 | 3 × 3 卷积,64输出通道 × 2 | [1 × 3 卷积,64输出通道; 1 × 1 卷积,256输出通道] × 3 |
spd2 | SPD-Conv | SPD-Conv |
conv3 | 3 × 3 卷积,128输出通道 × 2 | [1 × 3 卷积,128输出通道; 1 × 1 卷积,512输出通道] × 4 |
spd3 | SPD-Conv | SPD-Conv |
conv4 | 3 × 3 卷积,256输出通道 × 2 | [1 × 3 卷积,256输出通道; 1 × 1 卷积,1024输出通道] × 6 |
spd4 | SPD-Conv | SPD-Conv |
conv5 | 3 × 3 卷积,512输出通道 × 2 | [1 × 3 卷积,512输出通道; 1 × 1 卷积,2048输出通道] × 3 |
fc (全连接层) | 全局平均池化 + 全连接(类别数) + softmax | 全局平均池化 + 全连接(类别数) + softmax |
5 实验
本节使用两个具有代表性的计算机视觉任务——目标检测和图像分类,评估我们提出的方法SPD-Conv。
5.1 目标检测
数据集与设置: 我们使用COCO-2017数据集 [1],该数据集分为train2017(118,287张图像)用于训练,val2017(5,000张图像;也称为minival)用于验证,以及test2017(40,670张图像)用于测试。我们使用表4和表5中列出的广泛的最先进基线模型。我们在val2017上报告不同IoU阈值[0.5:0.95]和物体大小(小、中、大)的标准指标平均精度(AP)。我们还报告了test-dev2017(20,288张图像)上的AP指标,这是test2017的一个子集,具有可访问的标签。然而,标签未公开发布,需要将所有预测标签以JSON文件提交到CodaLab COCO检测挑战赛 [2] 以检索评估指标,我们确实这样做了。
训练: 我们在train2017上训练不同版本(nano、small、medium和large)的YOLOv5-SPD和所有基线模型。与大多数其他研究不同,我们从头开始训练,不使用迁移学习。这是因为我们希望检验每个模型的真实学习能力,而不被从理想(高质量)数据集如ImageNet通过迁移学习继承的丰富特征表示所掩盖。这在我们自己的模型(∗-SPD-n/s/m/l)和所有现有的YOLO系列模型(v5、X、v4及其缩放版本如nano、small、large等)上进行了。这些基线模型仍然使用迁移学习,因为我们缺乏资源(从头训练消耗大量GPU时间)。然而,请注意,这仅意味着这些基线模型处于比我们自己的模型更有利的位置,因为它们受益于高质量的数据集。
我们选择了动量为0.937、权重衰减为0.0005的SGD优化器。学习率在前三个热身时期从0.0033线性增加到0.01,然后使用余弦衰减策略下降到最终值0.001。nano和small模型在四个V-100 32 GB GPU上训练,批大小为128,而medium和large模型的批大小为32。采用CIoU损失 [38] 和交叉熵损失来计算目标性和分类。我们还采用了几种数据增强技术以缓解过拟合并提高所有模型的性能;这些技术包括(i)色调、饱和度和亮度的光度失真,(ii)几何失真,如平移、缩放、剪切、水平翻转和垂直翻转,以及(iii)多图像增强技术,如马赛克和CutMix。请注意,推理时不使用增强。超参数采用YOLOv5的设置,未重新调整。
结果
表4报告了val2017上的结果,表5报告了test-dev2017上的结果。表中的APS、APM、APL分别表示小/中/大物体的AP,这不应与模型规模(nano、small、medium、large)混淆。图1所示的图像分辨率为640 × 640,在目标检测中不被视为高分辨率(与图像分类相比),因为实际物体的分辨率更低,特别是当物体较小时。
表4:MS-COCO验证数据集(val2017)上的比较。
模型 | Backbone | 图像尺寸 | AP | APS (小物体) | Params (M) | Latency (ms) (batch_size=1) |
---|---|---|---|---|---|---|
YOLOv5-SPD-n | - | 640 × 640 | 31.0 | 16.0 (+13.15%) | 2.2 | 7.3 |
YOLOv5n | - | 640 × 640 | 28.0 | 14.14 | 1.9 | 6.3 |
YOLOX-Nano | - | 640 × 640 | 25.3 | - | 0.9 | - |
YOLOv5-SPD-s | - | 640 × 640 | 40.0 | 23.5 (+11.4%) | 8.7 | 7.3 |
YOLOv5s | - | 640 × 640 | 37.4 | 21.09 | 7.2 | 6.4 |
YOLOX-S | - | 640 × 640 | 39.6 | - | 9.0 | 9.8 |
YOLOv5-SPD-m | - | 640 × 640 | 46.5 | 30.3 (+8.6%) | 24.6 | 8.4 |
YOLOv5m | - | 640 × 640 | 45.4 | 27.9 | 21.2 | 8.2 |
YOLOX-M | - | 640 × 640 | 46.4 | - | 25.3 | 12.3 |
YOLOv5-SPD-l | - | 640 × 640 | 48.5 | 32.4 (+1.8%) | 52.7 | 10.3 |
YOLOv5l | - | 640 × 640 | 49.0 | 31.8 | 46.5 | 10.1 |
YOLOX-L | - | 640 × 640 | 50.0 | - | 54.2 | 14.5 |
Faster R-CNN R50-FPN | - | - | 40.2 | 24.2 | 42.0 | - |
Faster R-CNN+ R50-FPN | - | - | 42.0 | 26.6 | 42.0 | - |
DETR R50 | - | - | 42.0 | 20.5 | 41.0 | - |
DETR-DC5 ResNet-101 | ResNet-101 | 800 × 1333 | 44.9 | 23.7 | 60.0 | - |
RetinaNet ViL-Small-RPB | - | 800 × 1333 | 44.2 | 28.8 | 35.7 | - |
val2017上的结果。 表4按模型规模组织,通过横线分隔(最后一组是大规模模型)。在第一类nano模型中,我们的YOLOv5-SPD-n在AP和APS方面是表现最好的:其APS比亚军YOLOv5n高13.15%,整体AP比亚军YOLOv5n高10.7%。在第二类small模型中,我们的YOLOv5-SPD-s在AP和APS上再次成为最佳表现者,尽管这次YOLOX-S在AP上是第二好。第三类medium模型中,AP性能相当接近,尽管我们的YOLOv5-SPD-m仍然优于其他模型。另一方面,我们的APS有更大的领先优势(比亚军高8.6%),这是一个好迹象,因为SPD-Conv在处理较小物体和较低分辨率时尤其有优势。最后,对于large模型,YOLOX-L在AP上表现最好,而我们的YOLOv5-SPD-l仅稍低(约3%),但比底部组的其他基线要好得多。另一方面,我们的APS保持最高,这再次体现了SPD-Conv的优势。
表5:MS-COCO测试数据集(test-dev2017)上的比较。
模型 | 图像尺寸 | Params (M) | AP | AP50 | AP75 | APS | APM | APL |
---|---|---|---|---|---|---|---|---|
YOLOv5-SPD-n | 640 × 640 | 2.2 | 30.4 | 48.7 | 32.4 | 15.1 (+19%) | 33.9 | 37.4 |
YOLOv5n | 640 × 640 | 1.9 | 28.1 | 45.7 | 29.8 | 12.7 | 31.3 | 35.4 |
EfficientDet-D0 | 512 × 512 | 3.9 | 33.8 (Trf) | 52.2 | 35.8 | 12.0 | 38.3 | 51.2 |
YOLOv5-SPD-s | 640 × 640 | 8.7 | 39.7 | 59.1 | 43.1 | 21.9 (+9.5%) | 43.9 | 49.1 |
YOLOv5s | 640 × 640 | 7.2 | 37.1 | 55.7 | 40.2 | 20.0 | 41.5 | 45.2 |
EfficientDet-D1 | 640 × 640 | 6.6 | 39.6 | 58.6 | 42.3 | 17.9 | 44.3 | 56.0 |
EfficientDet-D2 | 768 × 768 | 8.1 | 43.0 (Trf) | 62.3 | 46.2 | 22.5 (Trf) | 47.0 | 58.4 |
YOLOv5-SPD-m | 640 × 640 | 24.6 | 46.6 | 65.2 | 50.8 | 28.2 (+6%) | 50.9 | 57.1 |
YOLOv5m | 640 × 640 | 21.2 | 45.5 | 64.0 | 49.7 | 26.6 | 50.0 | 56.6 |
YOLOX-M | 640 × 640 | 25.3 | 46.4 | 65.4 | 50.6 | 26.3 | 51.0 | 59.9 |
EfficientDet-D3 | 896 × 896 | 12.0 | 45.8 | 65.0 | 49.3 | 26.6 | 49.4 | 59.8 |
SSD512 | 512 × 512 | 36.1 | 28.8 | 48.5 | 30.3 | - | - | - |
YOLOv5-SPD-l | 640 × 640 | 52.7 | 48.8 | 67.1 | 53.0 | 30.0 | 52.9 | 60.5 |
YOLOv5l | 640 × 640 | 46.5 | 49.0 | 67.3 | 53.3 | 29.9 | 53.4 | 61.3 |
YOLOX-L | 640 × 640 | 54.2 | 50.0 | 68.5 | 54.5 | 29.8 | 54.5 | 64.4 |
YOLOv4-CSP | 640 × 640 | 52.9 | 47.5 | 66.2 | 51.7 | 28.2 | 51.2 | 59.8 |
PP-YOLO | 608 × 608 | 52.9 | 45.2 | 65.2 | 49.9 | 26.3 | 47.8 | 57.2 |
YOLOX-X | 640 × 640 | 99.1 | 51.2 | 69.6 | 55.7 | 31.2 | 56.1 | 66.1 |
YOLOv4-P5 | 896 × 896 | 70.8 | 51.8 | 70.3 | 56.6 | 33.4 | 55.7 | 63.4 |
YOLOv4-P6 | 1280 × 1280 | 127.6 | 54.5 | 72.6 | 59.8 | 36.8 | 58.3 | 65.9 |
RetinaNet (w/ SpineNet-143) | 1280 × 1280 | 66.9 | 50.7 | 70.4 | 54.9 | 33.6 | 53.9 | 62.1 |
val2017上的结果。 表4按模型规模组织,通过横线分隔(最后一组是大规模模型)。在第一类nano模型中,我们的YOLOv5-SPD-n在AP和APS方面表现最佳:其APS比亚军YOLOv5n高13.15%,整体AP比亚军YOLOv5n高10.7%。在第二类small模型中,我们的YOLOv5-SPD-s在AP和APS上再次表现最佳,尽管这次YOLOX-S在AP上是第二好。第三类medium模型中,AP性能相当接近,尽管我们的YOLOv5-SPD-m仍然优于其他模型。另一方面,我们的APS有更大的领先优势(比亚军高8.6%),这是一个好迹象,因为SPD-Conv在处理较小物体和较低分辨率时尤其有优势。最后,对于large模型,YOLOX-L在AP上表现最好,而我们的YOLOv5-SPD-l仅稍低(约3%),但比底部组的其他基线要好得多。另一方面,我们的APS保持最高,这再次体现了SPD-Conv的优势。
test-dev2017上的结果。 如表5所示,我们的YOLOv5-SPD-n在nano模型类别的APS上再次是明显的赢家,比亚军YOLOv5n有19%的良好领先。对于平均AP,虽然EfficientDet-D0似乎表现优于我们的方法,但这是因为EfficientDet的参数几乎是我们的两倍,并且使用高分辨率图像(通过迁移学习,如单元格中的“Trf”所示)进行训练,AP与分辨率高度相关。这种训练优势在小模型类别中也有类似的体现。
尽管其他基线模型获得了这种优势,但我们的方法在接下来的medium模型类别中,在AP和APS上重新夺回了第一的位置。最后,在large模型类别中,我们的YOLOv5-SPD-l在APS上也是表现最好的,并且在AP上与YOLOX-L接近。
总结: 显然,通过简单地将跨步卷积和池化层替换为我们提出的SPD-Conv构建模块,神经网络可以显著提高其准确性,同时保持相同的参数规模。改进在处理小物体时更为显著,这很好地实现了我们的目标。尽管我们并非在所有情况下都持续位居第一,但SPD-Conv是唯一始终表现良好的方法;它偶尔是(非常接近的)亚军,并且始终在APS上获得第一,这是我们主要关注的指标。
最后,回想一下,我们采用了YOLOv5的超参数设置,未进行重新调整,这意味着在专门进行超参数调整后,我们的模型可能会表现得更好。此外,所有非YOLO基线(和PP-YOLO)都使用了迁移学习,因此受益于高质量图像,而我们的模型则没有。
图5:来自val2017的目标检测示例。 蓝色框表示地面真实值。红色箭头突出显示差异。
视觉比较。 为了直观地理解,我们提供了两个使用随机选择的图像的真实示例,如图5所示。我们比较了YOLOv5-SPD-m和YOLOv5m,因为后者是对应(medium)类别中所有基线模型中的最佳表现者。图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像素。CIFAR-10包含60,000张32 × 32 × 3的图像,包括50,000张训练图像和10,000张测试图像。共有10个类别,每个类别有6,000张图像。我们使用top-1准确率作为分类性能的指标。
训练: 我们在Tiny ImageNet上训练ResNet18-SPD模型。我们进行了随机网格搜索以调整超参数,包括学习率、批大小、动量、优化器和权重衰减。图6显示了使用wandb MLOps生成的一个超参数搜索示例图。结果为:SGD优化器,学习率为0.01793,动量为0.9447,mini批大小为256,权重衰减为0.002113,训练200个epochs。接下来,我们在CIFAR-10上训练ResNet50-SPD模型。超参数采用了ResNet50论文中的设置,使用SGD优化器,初始学习率为0.1,动量为0.9,批大小为128,权重衰减为0.0001,训练200个epochs。对于ResNet18-SPD和ResNet50-SPD,我们使用与ResNet相同的衰减函数,随着训练epoch的增加逐渐降低学习率。
图6:图像分类中的超参数调整:使用wandb的搜索图。
测试: Tiny ImageNet的准确率在验证数据集上评估,因为测试数据集的地面真实值不可用。CIFAR-10的准确率在测试数据集上计算。
结果: 表6总结了top-1准确率的结果。它显示我们的模型ResNet18-SPD和ResNet50-SPD明显优于所有其他基线模型。
最后,我们在Tiny ImageNet上提供了一个视觉示例。图7显示了ResNet18误分类但ResNet18-SPD正确分类的8个示例。这些图像的共同特征是分辨率较低,因此标准ResNet在其跨步卷积和池化操作中丢失了细粒度信息,导致误分类。
表6:图像分类性能比较。
模型 | 数据集 | Top-1准确率 (%) |
---|---|---|
ResNet18-SPD | Tiny ImageNet | 64.52 |
ResNet18 | Tiny ImageNet | 61.68 |
Convolutional Nystromformer for Vision | Tiny ImageNet | 49.56 |
WaveMix-128/7 | Tiny ImageNet | 52.03 |
ResNet50-SPD | CIFAR-10 | 95.03 |
ResNet50 | CIFAR-10 | 93.94 |
Stochastic Depth | CIFAR-10 | 94.77 |
Prodpoly | CIFAR-10 | 94.90 |
图7:绿色标签:地面真实值。蓝色标签:ResNet18-SPD预测。红色标签:ResNet-18预测。
6 结论
本文识别出现有CNN架构中的一种常见但有缺陷的设计,即使用跨步卷积和/或池化层。这将导致在低分辨率图像和小物体上细粒度特征信息的丢失,尤其在这些情况下效果尤为明显。然后,我们提出了一种新的CNN构建模块,称为SPD-Conv,通过用一个空间到深度卷积层和一个非跨步卷积层替换它们,从而完全消除跨步和池化操作。这一新设计具有在下采样特征图的同时保留判别性特征信息的巨大优势。它还代表了一种通用和统一的方法,可以轻松应用于几乎任何CNN架构,并以相同的方式替代跨步卷积和池化。
我们提供了两个最具代表性的用例,目标检测和图像分类,并通过广泛的评估证明SPD-Conv在检测和分类准确性方面带来了显著的性能提升。我们预计它将广泛惠及研究社区,因为它可以轻松集成到现有的深度学习框架如PyTorch和TensorFlow中。
详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!
写在最后
学术因方向、个人实验和写作能力以及具体创新内容的不同而无法做到一通百通,所以本文作者即B站Up主:Ai学术叫叫兽
在所有B站资料中留下联系方式以便在科研之余为家人们答疑解惑,本up主获得过国奖,发表多篇SCI,擅长目标检测领域,拥有多项竞赛经历,拥有软件著作权,核心期刊等经历。因为经历过所以更懂小白的痛苦!因为经历过所以更具有指向性的指导!
祝所有科研工作者都能够在自己的领域上更上一层楼!!!
详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!