DCNv3论文解析:纯Pytorch实现,无需编译!CVPR顶会|利用可变形卷积探索大规模视觉基础模型
该论文利用可变形卷积探索大规模视觉基础模型。
论文信息:InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions
论文链接:https://arxiv.org/pdf/2211.05778
文章末尾部分 包含 YOLO11、YOLOv8、YOLOv12、RT-DETR、YOLOv7、YOLOv10、YOLOv5 等模型 结合+ DCNv3卷积 利用可变形卷积探索大规模视觉基础模型 原创改进核心内容
一、研究背景
近年来,大规模视觉Transformer(ViTs)在计算机视觉领域取得显著进展,成为大规模视觉基础模型研究和实践的首选。然而,基于卷积神经网络(CNNs)的大规模模型发展相对滞后。尽管CNNs在视觉识别任务中曾占据主流,但在大规模参数和数据的时代,与ViTs相比,其性能和模型规模仍存在差距。
从算子层面看,ViTs的多头自注意力(MHSA)具有长程依赖和自适应空间聚合能力,能从海量数据中学习更强大、更鲁棒的表示;而CNNs中由3×3常规卷积堆叠而成的模型,有效感受野相对较小,且常规卷积是具有静态权重和强归纳偏差的算子,限制了其学习更通用和鲁棒模式的能力。从架构角度,ViTs包含如层归一化(LN)、前馈网络(FFN)、GELU等先进组件,这些是标准CNNs所没有的。
本文旨在设计一种基于CNN的基础模型,使其能高效扩展到大规模参数和数据,通过引入可变形卷积(DCN),并结合类似Transformer的设计,探索出一种全新的卷积骨干网络——InternImage,以缩小CNNs与ViTs之间的差距。
二、相关工作
2.1 视觉基础模型
CNNs在大规模数据集和计算资源支持下成为视觉识别主流,出现了众多神经网络架构,如AlexNet、VGG、GoogleNet、ResNet、ResNeXt、EfficientNet等,同时也发展了深度可分离卷积、可变形卷积等更复杂的卷积操作。现代CNNs通过引入具有长程依赖或动态权重的改进卷积,在视觉任务中表现出有前景的性能。
基于Transformer架构的视觉基础模型近年来发展迅速,ViT是其中最具代表性的模型,凭借全局感受野和动态空间聚合在视觉任务中取得巨大成功。但ViT的全局注意力机制计算和内存复杂度高,限制了其在下游任务中的应用。为此,出现了多种改进方法,如PVT和Linformer在降采样的键值图上执行全局注意力,DAT采用可变形注意力稀疏采样信息,HaloNet和Swin Transformer开发局部注意力机制并通过光晕和移位操作传递信息。
2.2 大规模模型
在自然语言处理(NLP)领域,扩大模型规模是提高特征表示质量的重要策略。受NLP领域成功启发,研究人员将ViT扩展到20亿参数,扩大Swin Transformer模型规模至30亿参数,还开发了结合ViTs和CNNs优势的大规模混合ViTs。BEiT-3通过多模态预训练进一步探索基于大规模参数ViT的更强表示。然而,基于CNN的大规模模型在参数总数和性能方面落后于基于Transformer的架构,尽管新提出的CNNs通过使用大内核卷积或递归门控内核引入长程依赖,但与最先进的ViTs仍存在较大差距。
三、核心工作
3.1 可变形卷积v3(DCNv3)
3.1.1 卷积与MHSA的比较
在确定InternImage的核心算子之前,先总结常规卷积与MHSA的主要区别:
- 长程依赖:虽然具有大有效感受野(长程依赖)的模型通常在下游视觉任务中表现更好,但由3×3常规卷积堆叠的CNNs实际有效感受野相对较小,即使是深度模型也难以像ViTs那样获取长程依赖,这限制了其性能。
- 自适应空间聚合:MHSA的权重由输入动态调整,而常规卷积是具有静态权重和强归纳偏差的算子,如二维局部性、邻域结构、平移不变性等。这些高度归纳的属性使由常规卷积组成的模型可能收敛更快、所需训练数据更少,但也限制了其从网络规模数据中学习更通用和鲁棒模式的能力。
3.1.2 回顾DCNv2
为缩小卷积与MHSA之间的差距,可在常规卷积中引入长程依赖和自适应空间聚合。DCNv2是常规卷积的一种变体,给定输入
x
∈
R
C
×
H
×
W
x \in \mathbb{R}^{C ×H ×W}
x∈RC×H×W和当前像素
p
0
p_{0}
p0,其公式为:
y
(
p
0
)
=
∑
k
=
1
K
w
k
m
k
x
(
p
0
+
p
k
+
Δ
p
k
)
y\left(p_{0}\right)=\sum_{k = 1}^{K} w_{k} m_{k} x\left(p_{0}+p_{k}+\Delta p_{k}\right)
y(p0)=k=1∑Kwkmkx(p0+pk+Δpk)
其中,
K
K
K表示采样点总数,
k
k
k枚举采样点;
w
k
∈
R
C
×
C
w_{k} \in \mathbb{R}^{C ×C}
wk∈RC×C表示第
k
k
k个采样点的投影权重,
m
k
∈
R
m_{k} \in \mathbb{R}
mk∈R表示第
k
k
k个采样点的调制标量,通过sigmoid函数归一化;
p
k
p_{k}
pk表示预定义网格采样位置,如常规卷积中的
(
−
1
,
−
1
)
,
(
−
1
,
0
)
,
⋯
,
(
0
,
+
1
)
,
⋯
,
(
+
1
,
+
1
)
(-1,-1),(-1,0), \cdots,(0,+1), \cdots,(+1,+1)
(−1,−1),(−1,0),⋯,(0,+1),⋯,(+1,+1),
Δ
p
k
\Delta p_{k}
Δpk是对应第
k
k
k个网格采样位置的偏移量。从公式可看出,DCNv2的采样偏移
Δ
p
k
\Delta p_{k}
Δpk灵活,能与短程或长程特征交互,实现长程依赖;采样偏移
Δ
p
k
\Delta p_{k}
Δpk和调制标量
m
k
m_{k}
mk均可学习且由输入
x
x
x决定,可实现自适应空间聚合,这与MHSA具有相似的优良特性,为基于该算子开发大规模CNN基础模型提供了动机。
3.1.3 扩展DCNv2用于视觉基础模型
在实际应用中,DCNv2通常作为常规卷积的扩展,加载常规卷积的预训练权重并微调以提高性能,但这并不完全适用于需要从头开始训练的大规模视觉基础模型。为此,从以下方面对DCNv2进行扩展:
- 卷积神经元间共享权重:原始DCNv2中不同卷积神经元有独立的线性投影权重,其参数和内存复杂度与采样点总数呈线性关系,这显著限制了模型效率,尤其是在大规模模型中。借鉴可分离卷积思想,将原始卷积权重 w k w_{k} wk分离为深度可分离部分和逐点部分,深度可分离部分由原始位置感知调制标量 m k m_{k} mk负责,逐点部分是采样点间共享的投影权重 w w w。
- 引入多组机制:多组(头)设计最早出现在分组卷积中,在Transformer的MHSA中广泛应用,能通过自适应空间聚合从不同位置的不同表示子空间有效学习更丰富信息。受此启发,将空间聚合过程划分为 G G G组,每组有独立的采样偏移 Δ p g k \Delta p_{gk} Δpgk和调制标量 m g k m_{gk} mgk,使单个卷积层上的不同组具有不同的空间聚合模式,为下游任务生成更强的特征。
- 沿采样点归一化调制标量:原始DCNv2中的调制标量通过sigmoid函数进行逐元素归一化,每个调制标量在[0, 1]范围内,所有采样点调制标量之和不稳定,在0到 K K K之间变化,这导致在大规模参数和数据训练时DCNv2层梯度不稳定。将逐元素sigmoid归一化改为沿采样点的softmax归一化,使调制标量之和约束为1,使不同规模模型的训练过程更稳定。
结合上述修改,扩展后的DCNv2(标记为DCNv3)公式为:
y
(
p
0
)
=
∑
g
=
1
G
∑
k
=
1
K
w
g
m
g
k
x
g
(
p
0
+
p
k
+
Δ
p
g
k
)
y\left(p_{0}\right)=\sum_{g = 1}^{G} \sum_{k = 1}^{K} w_{g} m_{gk} x_{g}\left(p_{0}+p_{k}+\Delta p_{gk}\right)
y(p0)=g=1∑Gk=1∑Kwgmgkxg(p0+pk+Δpgk)
其中,
G
G
G表示聚合组总数;对于第
g
g
g组,
w
g
∈
R
C
×
C
′
w_{g} \in \mathbb{R}^{C ×C'}
wg∈RC×C′表示组的位置无关投影权重,
C
′
=
C
/
G
C' = C / G
C′=C/G表示组维度;
m
g
k
∈
R
m_{gk} \in \mathbb{R}
mgk∈R表示第
g
g
g组中第
k
k
k个采样点的调制标量,通过沿
K
K
K维度的softmax函数归一化;
x
g
∈
R
C
′
×
H
×
W
x_{g} \in \mathbb{R}^{C' ×H ×W}
xg∈RC′×H×W表示切片后的输入特征图;
Δ
p
g
k
\Delta p_{gk}
Δpgk是第
g
g
g组中对应网格采样位置
p
k
p_{k}
pk的偏移量 。
总体而言,DCNv3作为DCN系列的扩展,具有以下优点:弥补了常规卷积在长程依赖和自适应空间聚合方面的不足;与基于注意力的算子(如常见的MHSA和密切相关的可变形注意力)相比,继承了卷积的归纳偏差,使模型在更少训练数据和更短训练时间下更高效;基于稀疏采样,比MHSA和重新参数化大内核等先前方法计算和内存效率更高,且仅需3×3内核即可学习长程依赖,更易于优化,避免了大内核中使用的额外辅助技术(如重新参数化)。
3.2 InternImage模型
3.2.1 基本块
使用DCNv3作为核心算子带来新问题:如何构建能有效利用该核心算子的模型?本文的基本块设计不同于传统CNNs中广泛使用的瓶颈结构,更接近ViTs,配备了LN、FFN、GELU等更先进的组件,这种设计在各种视觉任务中被证明是高效的。基本块的核心算子是DCNv3,采样偏移和调制标量通过将输入特征 x x x经过一个可分离卷积(一个3×3深度可分离卷积后接一个线性投影)来预测。对于其他组件,默认使用后归一化设置,并遵循普通Transformer的设计。
3.2.2 茎层和下采样层
为获取层次化特征图,使用卷积茎层和下采样层将特征图调整为不同尺度。茎层位于第一阶段之前,将输入分辨率降低4倍,由两个卷积层、两个LN层和一个GELU层组成,两个卷积层的内核大小为3,步长为2,填充为1,第一个卷积层的输出通道数是第二个的一半。下采样层由一个步长为2、填充为1的3×3卷积层和一个LN层组成,位于两个阶段之间,用于将输入特征图下采样2倍。
3.2.3 堆叠规则
为明确块堆叠过程,列出InternImage的整体超参数: C i C_{i} Ci表示第 i i i阶段的通道数; G i G_{i} Gi表示第 i i i阶段DCNv3的组数; L i L_{i} Li表示第 i i i阶段的基本块数。由于模型有4个阶段,一个变体由12个超参数决定,搜索空间过大难以穷举找到最佳变体。为减少搜索空间,总结先前经验为4条规则:
- 使最后三个阶段的通道数由第一阶段的通道数 C 1 C_{1} C1决定。
- 使组数与阶段的通道数对应。
- 将不同阶段的堆叠块数简化为“AABA”模式,即第1、2和4阶段的块数相同,且不大于第3阶段。
通过这些规则,一个InternImage变体仅需4个超参数 ( C 1 , C ′ , L 1 , L 3 ) (C_{1}, C', L_{1}, L_{3}) (C1,C′,L1,L3)即可定义。选择一个3000万参数的模型作为原始模型,对 C 1 C_{1} C1离散化为48、64、80, L 1 L_{1} L1离散化为1、2、3、4、5, C ′ C' C′离散化为16、32,这样原始巨大的搜索空间缩小到30个。通过在ImageNet上训练和评估这30个变体,找到最佳模型,并使用最佳超参数设置(64, 16, 4, 18)定义原始模型,再将其扩展为不同规模。
3.2.4 缩放规则
基于上述约束下的最优原始模型,受相关研究启发进一步探索参数缩放规则。考虑两个缩放维度:深度
D
D
D(即
3
L
1
+
L
3
3L1+L3
3L1+L3)和宽度
C
1
C_{1}
C1,使用
α
\alpha
α、
β
\beta
β和复合因子
ϕ
\phi
ϕ对这两个维度进行缩放,缩放规则为:
D
′
=
α
ϕ
D
D'=\alpha^{\phi} D
D′=αϕD
C
1
′
=
β
ϕ
C
1
C_{1}'=\beta^{\phi} C_{1}
C1′=βϕC1
其中,
α
≥
1
\alpha ≥1
α≥1,
β
≥
1
\beta ≥1
β≥1,且
α
β
1.99
≈
2
\alpha \beta^{1.99} ≈2
αβ1.99≈2 。1.99是针对InternImage通过双倍模型宽度并保持深度不变计算得出的。实验发现最佳缩放设置为
α
=
1.09
\alpha = 1.09
α=1.09和
β
=
1.36
\beta = 1.36
β=1.36,基于此构建不同参数规模的InternImage变体,如InternImage-T/S/B/L/XL,其复杂度与ConvNeXt相似。为进一步测试能力,构建了10亿参数的更大模型InternImage-H,并将组维度
C
′
C'
C′改为32以适应更大的模型宽度,具体配置总结在表1中。
四、实验
4.1 图像分类
4.1.1 设置
在ImageNet上评估InternImage的分类性能。为进行公平比较,遵循常见做法,InternImage-T/S/B在ImageNet-1K(约130万张图像)上训练300个epoch,InternImage-L/XL先在ImageNet-22K(约1420万张图像)上训练90个epoch,然后在ImageNet-1K上微调20个epoch。为进一步探索模型能力并匹配先前方法中使用的大规模私有数据,采用M3I预训练方法,在由公共Laion-400M、YFCC-15M和CC12M组成的4.27亿联合数据集上对InternImage-H进行30个epoch的预训练,然后在ImageNet-1K上微调20个epoch。
4.1.2 结果
不同规模模型的分类结果表明,在相似参数和计算成本下,InternImage与基于Transformer和CNN的最先进模型相当甚至更优。例如,InternImage-T达到83.5%的top-1准确率,比ConvNext-T高出1.4个百分点。InternImage-S/B保持领先地位,InternImage-B比混合ViT CoAtNet-2高出0.8个百分点。当在ImageNet-22K和大规模联合数据集上预训练时,InternImage-XL和-H的top-1准确率分别提升至88.0%和89.6%,优于同样使用大规模数据训练的先前CNNs,与最先进的大规模ViTs的差距缩小到约1个百分点,这一差距可能由大规模不可访问的私有数据与上述联合公共数据之间的差异导致。这些结果表明InternImage不仅在常见参数规模和公共训练数据上性能良好,还能有效扩展到大规模参数和数据。
4.2 目标检测
4.2.1 设置
在COCO基准上,基于Mask R-CNN和Cascade Mask R-CNN两个代表性目标检测框架验证InternImage的检测性能。遵循常见做法,用预训练的分类权重初始化骨干网络,默认使用1×(12个epoch)或3×(36个epoch)的训练计划。
4.2.2 结果
使用Mask R-CNN进行目标检测时,在可比参数数量下,InternImage模型显著优于对应模型。例如,在1×训练计划下,InternImage-T的盒AP( A P b AP^{b} APb)比Swin-T高4.5个百分点,比ConvNeXt-T高3.0个百分点。在3×多尺度训练计划、更多参数和更先进的Cascade Mask R-CNN下,InternImage-XL的 A P b AP^{b} APb达到56.2,比ConvNeXt-XL高出1.0个百分点。在实例分割实验中也有类似结果,1×训练计划下,InternImage-T的掩模AP( A P m AP^{m} APm)比Swin-T和ConvNeXt-T分别高出3.2和2.4个百分点,InternImage-XL使用Cascade Mask R-CNN时获得的最佳 A P m AP^{m} APm为48.8,比对应模型至少高1.1个百分点。
为进一步提升目标检测性能,采用领先方法中的先进设置,用在ImageNet-22K或大规模联合数据集上预训练的权重初始化InternImage-XL/H骨干网络,并通过复合技术使其参数翻倍。然后,在Objects365和COCO数据集上依次对其与DINO检测器进行预训练和微调。结果显示,该方法在COCO val2017和test-dev上分别取得65.0 A P b AP^{b} APb和65.4 A P b AP^{b} APb的最佳结果,比之前的最先进模型FD-SwinV2-G高出1.2个百分点,且参数减少27%,无需复杂的蒸馏过程,证明了InternImage在检测任务上的有效性。
4.3 语义分割
4.3.1 设置
为评估InternImage的语义分割性能,用预训练的分类权重初始化骨干网络,在ADE20K上使用UperNet训练模型160k次迭代,并与先前基于CNN和Transformer的骨干网络进行公平比较。为达到顶级性能,为InternImage-H配备更先进的Mask2Former,并采用与相关研究相同的训练设置。
4.3.2 结果
使用UperNet进行语义分割时,InternImage始终优于先前方法。例如,在参数数量和FLOPs几乎相同的情况下,InternImage-B在ADE20K val上的mIoU达到50.8,优于ConvNeXt-B和RepLKNet-31B等强大对手。此外,InternImage-H的MS mIoU达到60.3,优于SwinV2-G,且参数数量少得多。值得注意的是,使用Mask2Former和多尺度测试时,InternImage-H在ADE20K基准上达到62.9的最佳mIoU,高于当前最好的BEiT-3,证明了基于CNN的基础模型也能享受海量数据的红利,并挑战基于Transformer模型的领先地位。
4.4 消融研究
4.4.1 卷积神经元间共享权重的重要性
由于硬件限制,大规模模型对核心算子的参数和内存成本较为敏感。为解决该问题,在DCNv3的卷积神经元间共享权重。对比基于DCNv3且权重共享与不共享的模型的参数和内存成本,结果显示不共享权重的模型参数和内存成本远高于共享权重的模型,尤其是在-H规模下,节省的参数和GPU内存比例分别达到42.0%和84.2%。同时,对-T规模的两个模型进行检测,发现它们在ImageNet上的top-1准确率(83.5 vs.83.6)和COCO上的 A P b AP^{b} APb(47.2 vs. 47.4)相近,即便未共享权重的模型参数多了66.1%。这表明共享权重在大幅降低模型参数和内存成本的同时,对模型性能影响较小。
4.4.2 多组空间聚合带来更强特征
引入聚合组使模型能像Transformer一样从不同表示子空间学习信息。通过可视化不同组在不同阶段的采样位置,发现对于同一查询像素,不同组的偏移集中在不同区域,从而产生层次化语义特征。对比有无多组的模型性能,结果显示无多组的模型在ImageNet上的准确率显著下降1.2个百分点,在COCO val2017上的准确率下降3.4个百分点。此外,研究还发现模型前两个阶段学习到的有效感受野(ERF)相对较小,随着模型深度增加(即第3和第4阶段),ERF扩大至全局,这与ViTs通常具有全局ERF的情况不同。这表明多组空间聚合对提升模型性能起着关键作用,有助于模型学习更丰富、更具层次的特征表示。
五、结论与局限
本文提出了InternImage,这是一种新型大规模基于CNN的基础模型,能够为多种视觉任务,如图像分类、目标检测和语义分割,提供强大的特征表示。通过对灵活的DCNv2算子进行调整,使其满足基础模型的需求,并围绕核心算子开发了一系列模块、堆叠和缩放规则。在目标检测和语义分割基准测试上的大量实验验证了InternImage可以获得与精心设计、使用海量数据训练的大规模视觉Transformer相当甚至更优的性能,这表明CNN也是大规模视觉基础模型研究中一个值得考虑的方向。
尽管取得了上述成果,但基于DCN的算子在适应对速度有较高要求的下游任务时,延迟仍然是一个问题。此外,大规模CNNs仍处于发展的早期阶段。希望InternImage能够作为一个良好的起点,为后续研究提供参考和借鉴,推动大规模CNNs在视觉领域的进一步发展。
六、附录
6.1 详细训练设置
6.1.1 骨干网络级比较设置
- ImageNet图像分类:在ImageNet上进行图像分类的训练细节与常见做法类似,但有一些调整。为探索模型能力并匹配先前方法使用的大规模私有数据,采用M3I预训练方法在4.27亿联合数据集上对InternImage-H进行30个epoch的预训练,然后在ImageNet-1K上微调20个epoch。
- COCO目标检测:在COCO基准上,基于Mask R-CNN和Cascade Mask R-CNN验证InternImage的检测性能。用预训练的分类权重初始化骨干网络,默认使用1×(12个epoch)或3×(36个epoch)的训练计划,不同训练计划下对图像的尺寸调整策略不同,所有检测模型均以批量大小16进行训练,并使用AdamW优化器,初始学习率为 1 × 1 0 − 4 1×10^{-4} 1×10−4。
- ADE20K语义分割:在ADE20K数据集上评估InternImage模型,用预训练的分类权重初始化模型。不同规模的InternImage模型使用不同的初始学习率,学习率按照多项式衰减策略进行衰减。根据模型规模设置不同的裁剪尺寸,所有分割模型均使用UperNet以批量大小16训练160k次迭代,并与先前的骨干网络进行公平比较。
6.1.2 系统级比较设置
- COCO目标检测:为与最先进的大规模检测模型进行系统级比较,先使用在ImageNet-22K或4.27M大规模联合数据集上预训练的权重初始化InternImage-XL/H骨干网络,并通过复合技术使其参数翻倍。然后,在Objects365上与DINO检测器一起预训练模型,预训练过程中对输入图像的尺寸进行调整,学习率在特定epoch下降。最后,在COCO数据集上对检测器进行12个epoch的微调,调整批量大小和初始学习率,且学习率在最后一个epoch下降。
- ADE20K语义分割:为达到领先的分割性能,先用在4.27M大规模联合数据集上预训练的权重初始化InternImage-H骨干网络,并配备最先进的Mask2Former分割方法。按照相关研究的设置,在COCO-Stuff和ADE20K数据集上分别进行80k次迭代的预训练和微调,设置裁剪尺寸和初始学习率。
6.2 超参数探索
6.2.1 模型堆叠
根据论文第3.2节所述,模型构建遵循四条堆叠规则,将原始模型参数限制为30M,并对堆叠超参数 C 1 C_{1} C1、 L 1 L_{1} L1和 C ′ C' C′进行离散化处理。通过组合这三个超参数得到30个模型,采用特定的训练方法对-T模型进行训练,然后在相同训练设置下测试这些模型在ImageNet-1K上的top-1准确率。实验结果表明,当 C ′ C' C′等于16时,模型准确率普遍高于 C ′ C' C′为32的情况; L 1 L_{1} L1在4时效果最佳,较大的通道数能带来更多收益。最终确定基本堆叠超参数 ( C 1 , C ′ , L 1 , L 3 ) (C_{1}, C', L_{1}, L_{3}) (C1,C′,L1,L3)为(64, 16, 4, 18) 。
6.2.2 模型缩放
在第3.2节中展示了对深度缩放因子 α \alpha α和宽度缩放因子 β \beta β的约束。基于此条件和-T模型(30M),探索将-T模型扩展为-B模型(100M)的合理缩放可能性。通过设置不同的 α \alpha α和 β \beta β值,计算模型参数并在ImageNet-1K上训练300个epoch后测试其top-1准确率。结果表明,当 ( α , β ) (\alpha, \beta) (α,β)设置为(1.09, 1.36)时模型性能最佳,其他尺寸的模型-S/L/XL/H也证实了该缩放规则的有效性。同时,由于模型宽度 C 1 C_{1} C1需能被 C ′ C' C′整除,在确定具体缩放参数时需要进行一些调整,这会导致参数数量有小幅度波动,但在可接受范围内。
6.2.3 内核大小
论文第3.1节提到3×3动态稀疏卷积足以实现大感受野。在此探索DCNv3算子中卷积神经元数量的作用,具体做法是将DCNv3算子中的3×3内核替换为5×5或7×7内核,并按照-T模型的训练方法进行训练,在ImageNet-1K验证集上进行验证。结果显示,增大卷积内核会使参数和FLOPs大幅增加,但准确率没有显著提升(83.5 vs 83.6)甚至下降(83.5 vs 82.8)。这表明当单层卷积神经元数量增加时,模型优化难度增大。在RepLKNet中也有类似现象,该研究通过重新参数化技术解决此问题,但会在训练阶段带来额外的时间和内存成本。而本文采用简单有效的3×3 DCNv3作为InternImage的核心算子,避免了这一问题。同时,通过可视化ResNet-101和InternImage-S的有效感受野(ERF)发现,ResNet-101未经训练时ERF局限于局部区域,训练后ERF仍集中在激活点附近且梯度幅度较低、分布更稀疏;InternImage-S未经训练时ERF集中在激活点,训练后在第3和第4阶段能有效感知整个图像的信息 。
6.3 额外下游任务
6.3.1 分类
- iNaturalist 2018:该数据集是长尾数据集,包含8142个细粒度物种,有437.5K训练图像,不平衡因子为500。用在4.27M大规模联合数据集上预训练的权重初始化InternImage-H模型,在iNaturalist 2018训练集上微调100个epoch,采用特定分辨率并利用元信息,其他训练设置与在ImageNet-1K上微调InternImage-H的方法相同。最终,该方法在iNaturalist 2018验证集上达到92.6的准确率,比之前的最佳模型MetaFormer高出3.9个百分点。
- Places205:此数据集包含250万张205个场景类别的图像,用于场景识别任务。用大规模联合数据集上预训练的权重初始化模型,在Places205训练集上微调,其他训练设置与在ImageNet-1K上微调InternImage-H相同。该方法在Places205验证集上达到71.7的准确率,比之前的最佳模型MixMIM-L高出2.4个百分点。
- Places365:该数据集包含180万张365个场景类别的图像,用于场景识别任务。预训练和微调策略与Places205相同。该方法在Places365验证集上达到61.2的准确率,比之前的最佳模型SWAG高出0.5个百分点。与Places205相比,Places365提供了更细粒度的分类任务,使模型能够学习相似场景之间更细微的差异。
6.3.2 目标检测
- LVIS v1.0:这是一个大规模词汇数据集,用于目标检测和实例分割任务,包含1203个类别和164k张图像。用在Objects365上预训练的权重初始化InternImage-H,在LVIS v1.0训练集上微调,分别报告在minival集和val集上多尺度测试的盒AP( A P b AP^{b} APb)。结果显示,InternImage-H在LVIS minival上创造了65.8 A P b AP^{b} APb的新记录,在LVIS val上达到63.2 A P b AP^{b} APb,大幅超越先前的最先进方法。
- Pascal VOC:该数据集包含20个物体类别,广泛用于目标检测任务的基准测试。用在Objects365上预训练的权重初始化InternImage-H,按照先前方法在Pascal VOC 2007和2012的trainval集上微调。在Pascal VOC 2007测试集上,InternImage-H在单尺度测试下的 A P 50 AP^{50} AP50达到94.0,比之前的最佳模型Cascade Eff-B7 NAS-FPN高出4.7个百分点;在Pascal VOC 2012测试集上,该方法的mAP达到97.2,比官方排行榜上的最佳记录高出4.3个百分点。
- OpenImages v6:该数据集包含约900万张图像,其中190万张图像有1600万个边界框,用于600个物体类别的目标检测任务,场景复杂多样。采用与前两个数据集相同的设置,并在微调时使用类感知采样。结果显示,InternImage-H的mAP达到74.1,比之前的最佳结果提高了1.9个百分点。
- CrowdHuman:这是一个用于评估人群场景中检测器性能的基准数据集,数据丰富且标注多样。采用与之前数据集相同的训练设置,预训练模型在3750次迭代时达到最佳性能,比之前的最佳模型Iter-Deformable-DETR高出3.1个AP。
- BDD100K:该数据集包含约100K张高分辨率图像,具有多样的天气和光照条件,用于10个物体类别的目标检测任务,图像模拟真实驾驶场景。用在4.27M联合数据集上预训练的权重初始化InternImage-H模型,在BDD100K训练集上微调12个epoch。结果显示,该模型在验证集上的mAP达到38.8,是当前的最佳性能,比之前的最佳模型高出3.2个mAP,表明该方法在检测真实驾驶场景中的物体方面表现优异,可用于自动驾驶和智能交通系统。
6.3.3 语义分割
- COCO-Stuff:该数据集包含用于语义分割的COCO数据集图像,涵盖171个类别。COCO-Stuff-164K是完整集,COCO-Stuff-10K是其子集。为InternImage-H配备先进的Mask2Former,在COCO-Stuff-164K上预训练80k次迭代,然后在COCO-Stuff-10K上微调40k次迭代并报告多尺度mIoU。实验设置裁剪尺寸为512×512,结果显示模型在测试集上的MS mIoU达到59.6,比之前的最佳模型ViT-Adapter高出5.4个mIoU。
- Pascal Context:该数据集包含59个语义类别,分为4996张训练图像和5104张测试图像。使用Mask2Former与InternImage-H,并按照相关研究的训练设置,先加载分类预训练权重初始化模型,然后在Pascal Context训练集上微调40k次迭代,设置裁剪尺寸为480×480。结果显示,该方法在测试集上的MS mIoU达到70.3,比ViT-Adapter高出2.1个百分点。
- Cityscapes:这是一个高分辨率街景数据集,包含19个类别。使用Mask2Former作为分割框架,按照常见做法先在Mapillary Vistas上预训练,然后在Cityscapes上微调80k次迭代,设置裁剪尺寸为1024×1024。结果显示,InternImage-H在验证集上的MS mIoU达到87.0,在测试集上达到86.1。
- NYU Depth V2:该数据集包含1449张RGB-D图像,尺寸为640×480,分为795张训练图像和654张测试图像,每张图像有40个语义类别的标注。采用与在Pascal Context上微调相同的训练设置,结果显示该方法在验证集上的MS mIoU大幅提升至68.1,比CMX-B5高出11.2个百分点。
6.4 吞吐量分析
对InternImage及其对比模型(包括配备DCNv2的变体、ConvNext、RepLKNet和具有可变形注意力的视觉Transformer(DAT))的吞吐量进行基准测试。结果显示,与配备DCNv2的变体相比,InternImage在224×224和800×800输入分辨率下都具有更好的参数效率和更快的推理速度。与RepLKNet-B和DAT-B相比,InternImage在高输入分辨率(即800×800)下具有吞吐量优势,该分辨率广泛用于密集预测任务,如目标检测。与ConvNext相比,尽管由于基于DCN的算子导致吞吐量存在差距,但InternImage仍具有精度优势(84.9 vs. 83.8),并且研究团队正在寻找更高效的DCN以使模型更适合对效率要求较高的下游任务。
6.5 在ImageNet上的鲁棒性评估
评估不同模型在不同变换(平移、旋转和缩放)下的鲁棒性,选择的对比模型包括卷积模型(ConvNeXt-T)、基于局部注意力的模型(Swin-T)、基于全局注意力的模型(PVTv2-B2)和InternImage-T。
- 平移不变性:通过在分类任务中对图像进行0到64像素的抖动来评估平移不变性,以模型在平移相同输入图像时预测相同标签的概率来衡量。结果表明,InternImage在平移不变性方面表现最佳,其次是基于卷积的ConvNeXt,然后是基于全局注意力的PVTv2,基于局部注意力的Swin Transformer表现最差。
- 旋转不变性:为评估分类任务中的旋转不变性,将图像从0°到45°以5°为步长进行旋转,通过不同旋转角度下预测的一致性来评估旋转不变性。结果显示,在小角度阶段所有模型的一致性表现相当,但在大角度旋转(即>10°)时,InternImage明显优于其他模型。
- 缩放不变性:在目标检测任务中评估缩放不变性,将输入图像的缩放因子从0.25到3.0以0.25为步长变化,以检测一致性作为检测任务的不变性度量。先将缩放图像上的预测框转换回原始分辨率,然后以原始分辨率的预测框为真实框计算盒mAP。结果显示,所有实验方法对下采样都很敏感,在小分辨率下表现出与输入相当的不变性,而InternImage在放大图像时表现更好,盒一致性和边界框mAP都优于其他方法。
- 模型对数据规模的需求程度:为验证模型对数据规模的鲁棒性,从ImageNet-1K数据中均匀采样得到1%、10%和100%的数据,选择ResNet-50、ConvNeXt-T、Swin-T、InternImage-T-dattn和InternImage-T在这些数据上进行300轮训练实验,实验设置与表7一致。结果显示,ResNet得益于其归纳偏差,在1%和10%数据上表现最佳(12.2% & 57.5%),但在数据充足时上限较低(80.4%) 。Swin-T在1%数据集上完全失败,仅在100%数据集上表现良好。而本文提出的InternImage-T不仅在1%和10%数据上(5.9%和56.0%)具有较强的鲁棒性,在完整数据(83.5%)上也表现出色,始终优于配备可变形注意力的InternImage-T变体(dattn)和ConvNeXt,这表明了该模型对数据规模的鲁棒性。
七、研究总结
InternImage作为一种新型大规模基于CNN的基础模型,在视觉任务领域展现出了卓越的性能和潜力。通过创新性地改进可变形卷积(DCNv3),结合精心设计的模块、堆叠和缩放规则,InternImage成功地缩小了CNN与ViT之间的差距,证明了CNN在大规模视觉基础模型研究中的可行性和优势。
在核心创新点上,DCNv3算子弥补了常规卷积在长程依赖和自适应空间聚合方面的不足,同时继承了卷积的归纳偏差,在计算和内存效率上表现优异。基于DCNv3构建的InternImage模型,在不同规模参数下均展现出良好的性能,在图像分类、目标检测、语义分割等多个视觉任务上超越了许多基于CNN和ViT的先进模型。其灵活的设计使得模型不仅在常见参数规模和公共训练数据上表现出色,还能有效扩展到大规模参数和数据场景中。
消融研究进一步验证了模型设计中关键组件的有效性。卷积神经元间共享权重显著降低了模型的参数和内存成本,同时保持了性能;多组空间聚合机制为模型带来了更强的特征表示能力,有助于学习更丰富的语义信息。这些设计细节的优化使得InternImage在复杂视觉任务中具有更强的竞争力。
在实验评估方面,InternImage在多个标准数据集上进行了全面的测试。在ImageNet图像分类任务中,不同规模的InternImage模型在相似参数和计算成本下,与当前先进模型相比具有相当甚至更优的准确率。在COCO目标检测和ADE20K语义分割任务中,InternImage同样表现出色,尤其是在使用更先进的训练设置和模型扩展策略后,能够达到领先的性能指标,超越了许多强大的竞争对手。
此外,对模型在不同下游任务和复杂场景下的适应性研究表明,InternImage具有良好的通用性和鲁棒性。无论是在长尾数据集分类、复杂场景目标检测还是不同分辨率图像的语义分割任务中,InternImage都能取得优异的成绩,展现出对不同任务和数据特点的良好适应性。
然而,InternImage也存在一些局限性。基于DCN的算子在适应对速度有较高要求的下游任务时,延迟问题仍然较为突出,这在一定程度上限制了模型在实时性要求较高场景中的应用。同时,大规模CNNs的发展仍处于早期阶段,虽然InternImage为该领域提供了一个良好的开端,但仍有许多方面有待进一步探索和改进。
未来的研究可以围绕如何优化DCN算子以降低延迟展开,例如探索更高效的稀疏采样策略或硬件加速方法,使InternImage能够更好地应用于实时视觉任务。此外,进一步探索大规模CNNs的架构设计、训练方法以及如何更好地利用海量数据,有望进一步提升模型的性能和效率,推动基于CNN的大规模视觉基础模型的发展,使其在更多领域发挥重要作用,如自动驾驶、智能监控、医疗影像分析等。
五、芒果YOLO系列改进:基于 原创改进内容🚀🚀🚀
5.1 将 DCNv3 改进到 YOLO11 中 - 基于 DCNv3 原创改进核心内容
详情改进内容点击:🚀🚀🚀芒果YOLO11改进:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块
5.2 将 DCNv3 改进到 YOLOv8 中 - 基于 DCNv3 原创改进核心内容
详情改进内容点击:🚀🚀🚀芒果YOLOv8改进:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLOv8专门优化模块
5.3 将 DCNv3 改进到 YOLOv10 中 - 基于 DCNv3 原创改进核心内容
详情改进内容点击:🚀🚀🚀芒果YOLOv10改进:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLOv10专门优化模块
5.4 将 DCNv3 改进到 RT-DETR 中 - 基于 DCNv3 原创改进核心内容
详情改进内容点击:🚀🚀🚀芒果RT-DETR改进:主干Backbone篇之DCNv3结构:即插即用 框架为ultralytics,和YOLOv8一致
5.5 将 DCNv3 改进到 YOLOv7 中 - 基于 DCNv3 原创改进核心内容
详情改进内容点击:🚀🚀🚀芒果YOLOv7改进61:主干篇:改进DCNv3结构:即插即用|使用纯pytorch代码实现,不需要CUDA编译,并针对YOLOv7专门优化模块,基于可变形卷积的超强变种
5.6 将 DCNv3 改进到 YOLOv5 中 - 基于 DCNv3 原创改进核心内容
详情改进内容点击:🚀🚀🚀芒果YOLOv5改进76:主干Backbone篇之DCNv3:即插即用|使用pytorch代码实现,并针对YOLOv5专门优化模块,基于可变形卷积的超强变种