InternImage:探索具有可变形卷积的大规模视觉基础模型

Posted AI浩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InternImage:探索具有可变形卷积的大规模视觉基础模型相关的知识,希望对你有一定的参考价值。

文章目录


官方源码:https://github.com/OpenGVLab/InternImage
论文:https://arxiv.org/abs/2211.05778
官方博客:https://zhuanlan.zhihu.com/p/610772005

摘要

与近年来大规模视觉变压器(ViTs)的长足发展相比,基于卷积神经网络(cnn)的大规模模型仍处于早期状态。本文提出了一种新的大规模基于cnn的基础模型InternImage,该模型可以通过增加参数和ViTs等训练数据来获得增益。与目前关注大密度核的cnn不同,InternImage采用可变形卷积作为核心算子,使我们的模型不仅具有检测、分割等下游任务所需的大有效接受场,而且具有以输入和任务信息为条件的自适应空间聚集。因此,所提出的InternImage减少了传统cnn的严格归纳偏差,并使从ViTs等海量数据中学习更强、更鲁棒的大规模参数模式成为可能。我们的模型在ImageNet、COCO和ADE20K等具有挑战性的基准测试中得到了验证。值得一提的是,InternImage-H在COCO测试开发上取得了65.4 mAP的新纪录,在ADE20K上取得了62.9 mIoU的新纪录,超过了目前领先的cnn和vit。

1、简介

随着transformer在大型规模语言模型[3-8]中的显著成功,视觉transformer (vit)[2,9 - 15]也席卷了计算机视觉领域,并成为大规模视觉基础模型研究和实践的首选。一些pioneers[16-20]尝试将vit扩展到具有超过10亿参数的非常大的模型,击败了卷积神经网络(cnn),并显著提高了广泛的计算机视觉任务的性能界限,包括基本分类、检测和分割。虽然这些结果表明,在海量参数和数据时代,cnn不如vit,但我们认为,在配备类似的算子/架构级设计、放大参数和海量数据时,基于cnn的基础模型也可以实现与vit相当甚至更好的性能。

为了弥合cnn和vit之间的差距,首先从两个方面总结了它们的差异:(1)从算子层面[9,21,22],vit的多头自注意力(MHSA)具有长程依赖性和自适应空间聚集性(见图1(a))。得益于灵活的MHSA, vit可以从海量数据中学习到比cnn更强大和鲁棒的表示。(2)从架构来看[9,22,23],除了MHSA, vit还包含了一系列标准cnn中没有包含的高级组件,如层归一化(LN)[24]、前馈网络(FFN)[1]、GELU[25]等。尽管最近的工作[21,22]进行了有意义的尝试,通过使用具有非常大内核的密集卷积(如31×31)将长程依赖引入cnn,如图1 ©所示,但在性能和模型规模方面,与最先进的大规模vit[16,18 - 20,26]仍有相当大的差距。

本文致力于设计一个基于cnn的基础模型,可以有效扩展到大规模参数和数据。具体来说,我们从一个灵活的卷积变体-可变形卷积(DCN)开始[27,28]。通过将其与一系列类似于transformer的定制块级和架构级设计相结合,设计了一个全新的卷积骨干网络InternImage。如图1所示,与最近改进的具有非常大的内核(如31×31[22])的cnn不同,InternImage的核心算子是一个动态稀疏卷积,通用窗口大小为3×3,(1)其采样偏移量灵活,可以从给定数据动态学习适当的感受野(可以是长或短范围);(2)根据输入数据自适应调整采样偏移量和调制标量,实现vit等自适应空间聚合,减小正则卷积的过归纳偏差;(3)卷积窗口是一种常见的3×3,避免了大型密集核带来的优化问题和昂贵的成本[22,29]。

通过上述设计,所提出的内部图像可以有效地扩展到大参数尺寸,并从大规模训练数据中学习更强的表示,在广泛的视觉任务上实现与大规模vit[2,11,30]相当甚至更好的性能。总而言之,我们的主要贡献如下:

  • (1) 提出了一种新的基于大规模cnn的基础模型- internimage。据我们所知,这是第一个有效扩展到超过10亿参数和4亿训练图像的CNN,并取得了与最先进的vit相当甚至更好的性能,这表明卷积模型也是一个值得探索的大规模模型研究方向。
  • (2)利用改进的3×3 DCN算子,通过引入长程依赖和自适应空间聚合,成功地将cnn扩展到大规模环境,并探索了围绕该算子量身定制的基本块、堆叠规则和缩放策略。这些设计有效地利用了算子,使模型能够从大规模参数和数据中获得收益。
  • (3)在图像分类、目标检测、实例和语义分割等代表性视觉任务上评估了所提出的模型,并将其与最先进的cnn和大规模vit进行了比较,将模型规模从3000万到10亿,数据量从100万到4亿。具有不同参数大小的模型在ImageNet[31]上可以始终优于现有技术。InternImageB仅在ImageNet-1K数据集上训练取得了84.9%的top-1精度,比基于cnn的对应方法[21,22]至少高出1.1个点。在大规模参数(即10亿)和训练数据(即4.27亿)的情况下,InternImage-H的top-1精度进一步提高到89.6%,接近井工程ViTs[2,30]和hybrid-ViTs[20]。此外,在具有挑战性的下游基准COCO[32]上,最佳模型InternImage-H以21.8亿个参数实现了最先进的65.4%的盒子图,比SwinV2-G [16] (65.4 vs 63.1)高2.3个点,参数减少了27%,如图2所示。

2、相关工作

视觉基础模型。随着大规模数据集和计算资源的出现,卷积神经网络(cnn)成为视觉识别的主流。从AlexNet[33]中提取,许多更深、更有效的神经网络架构被提出,如VGG [34], GoogleNet [35], ResNet [36],ResNeXt [37], EfficientNet[38, 39]等。除了架构设计之外,还制定了更复杂的卷积操作,如深度卷积[40]和可变形卷积[27,28]。通过考虑transformer的先进设计,现代cnn在视觉任务上表现出了有希望的性能,在宏/微观设计中发现了更好的组件,并引入了具有长程依赖关系的改进卷积[21,41 - 43]或动态权重[44]。

近年来,一系列新的视觉基础模型专注于基于transformer的架构。ViT[9]是最具代表性的模型,由于全局感受野和动态空间聚合,在视觉任务中取得了巨大的成功。然而,ViT中的全局注意力受到昂贵的计算/内存复杂性的影响,特别是在大型特征图上,这限制了它在下游任务中的应用。为了解决这个问题,PVT[10,11]和Linformer[45]对下采样的键值图进行全局注意力,DAT[46]采用可变形注意力从值图中稀疏采样信息,而HaloNet[47]和Swin transformer[2]开发了局部注意力机制,使用晕动和移位操作在相邻局部区域之间传递信息。

大规模的模型。模型扩容是提高特征表示质量的重要策略,在自然语言处理领域[48]中得到了广泛研究。受到NLP领域成功的启发,Zhai et al.[19]首次将ViT扩展到20亿参数。[16]将层次化结构的Swin transformer扩大到一个具有30亿个参数的更深更广的模型。一些研究人员通过结合vit和cnn在不同层次上的优势,开发了大规模混合vit[20,49]。最近,BEiT-3[17]使用多模态预训练进一步探索了基于大规模参数的ViT的更强表示。这些方法显著提高了基本视觉任务的上限。然而,在参数总数和性能方面,基于cnn的大规模模型的研究落后于基于transformer的架构。尽管新提出的cnn[21,41 - 43]通过使用具有非常大的核或递归门控核的卷积引入了远程依赖关系,但与最先进的vit仍有相当大的差距。本文旨在开发一个基于cnn的基础模型,可以有效扩展到与ViT相当的大规模。

3、提出的方法

为了设计一个大规模的基于cnn的基础模型,我们从一种灵活的卷积变体开始,即deformable convolution v2 (DCNv2)[28],并基于它进行一些调整,以更好地适应大规模基础模型的要求。然后,通过将调谐卷积算子与现代backbone中使用的先进块设计相结合来构建基本块[16,19]。最后,
本文探索了基于dcn的块的堆叠和缩放原则,以构建一个可以从海量数据中学习强表示的大规模卷积模型。

3.1、可变形卷积v3

卷积与MHSA。之前的工作[21,22,50]广泛讨论了cnn和vit之间的差异。在决定内部图像的核心算子之前,我们首先总结了常规卷积和MHSA之间的主要区别。

(1)长程依赖关系。虽然人们早就认识到,具有较大有效感受野(长程依赖性)的模型通常在下游视觉任务中表现更好[51-53],但由3×3正则卷积堆叠的cnn[34,36]事实上的有效感受野相对较小。即使是非常深的模型,基于cnn的模型仍然不能获得像vit这样的长程依赖关系,这限制了其性能。

(2)自适应空间聚集。相比于权重由输入动态调整的MHSA,正则卷积[54]算子具有静态权重和较强的归纳偏差(如二维局部性、邻域结构、平移等价等)。由于高度归纳的特性,由正则卷积组成的模型可能会更快地收敛,并且比vit需要更少的训练数据,但这也限制了cnn从网络规模的数据中学习更通用和鲁棒的模式。

回顾DCNv2。弥合卷积和MHSA之间差距的一种直接方法是将长程依赖和自适应空间聚合引入常规卷积。让我们从DCNv2[28]开始,这是常规卷积的一般变体。给定输入 x ∈ R C × H × W x \\in R^C×H×W xRC×H×W和当前像素 p 0 p0 p0, DCNv2可以表示为:
y ( p 0 ) = ∑ k = 1 K w k m k x ( p 0 + p k + Δ p k ) (1) \\mathbfy\\left(p_0\\right)=\\sum_k=1^K \\mathbfw_k \\mathbfm_k \\mathbfx\\left(p_0+p_k+\\Delta p_k\\right) \\tag1 y(p0)=k=1Kwkmkx(p0+pk+Δpk)(1)

其中K为采样点的总数,K为采样点的个数。 w k ∈ R C × C \\quad \\mathbfw_k \\in \\mathbbR^C \\times C wkRC×C表示第k个采样点的投影权值, m k ∈ R \\mathbfm_k \\in \\mathbbR mkR表示第k个采样点的调制标量,用sigmoid函数归一化。 p k p_k pk表示预定义网格采样 ( − 1 , − 1 ) , ( − 1 , 0 ) , … , ( 0 , + 1 ) , … , ( + 1 , + 1 ) \\(-1,-1),(-1,0), \\ldots,(0,+1), \\ldots,(+1,+1)\\ (1,1),(1,0),,(0,+1),,(+1,+1)与常规卷积一样, Δ p k \\Delta p_k Δpk为第k个网格采样位置对应的偏移量。从方程中我们看到(1)对于长程依赖性,采样偏移量 Δ p k \\Delta p_k Δpk是灵活的,并能够与短或长程特征交互;(2)对于自适应空间聚合,采样偏移量 Δ p k \\Delta p_k Δpk和调制标量 m k m_k mk都是可学习的,并受输入x的约束。因此可以发现,DCNv2与MHSA具有类似的有利特性,这促使我们在此算子的基础上开发大规模的基于cnn的基础模型。

面向视觉基础模型扩展DCNv2。在通常的实践中,DCNv2通常被用作常规卷积的扩展,加载常规卷积的预训练权重并进行微调以获得更好的性能,这并不完全适用于需要从头开始训练的大规模视觉基础模型。为了解决这个问题,本文从以下几个方面对DCNv2进行了扩展:

(1)在卷积神经元之间共享权重。与常规卷积类似,原始DCNv2中的不同卷积神经元具有独立的线性投影权重,因此其参数和存储复杂度与采样点总数呈线性关系,这显著限制了模型的效率,特别是在大规模模型中。为了解决这个问题,借鉴了可分离卷积[55]的思想,将原始卷积权重wk分离为深度部分和逐点部分,其中深度部分由原始位置感知的调制标量mk负责,逐点部分是采样点之间的共享投影权重w

(2)引入多组机制。多组(head)设计最早出现在组卷积[33]中,被广泛应用于transformer的MHSA[1]中,并结合自适应空间聚合,从不同位置的不同表示子空间中有效学习更丰富的信息。受此启发,将空间聚合过程分为G组,每个组都有单独的采样偏移量 Δ p g k \\Delta p_gk Δpgk和调制尺度 m g k m_gk mgk,因此单个卷积层上的不同组可以具有不同的空间聚合模式,从而为下游任务带来更强的特征。

(3)沿采样点的调制标量归一化。原始DCNv2中的调制标量通过sigmoid函数进行元素归一化。因此,每个调制标量都在[0,1]范围内,所有样本点的调制标量之和不稳定,在0到k之间变化,这导致在使用大规模参数和数据进行训练时,DCNv2层的梯度不稳定。为了缓解不稳定性问题,我们沿着样本点将元素级sigmoid规范化更改为softmax规范化。将调制标量的和约束为1,使得不同尺度模型的训练过程更加稳定。

结合上述修改,扩展后的DCNv2(标记为DCNv3)可表示为Eqn(2):
y ( p 0 ) = ∑ g = 1 G ∑ k = 1 K w g m g k x g ( p 0 + p k + Δ p g k ) (2) \\mathbfy\\left(p_0\\right)=\\sum_g=1^G \\sum_k=1^K \\mathbfw_g \\mathbfm_g k \\mathbfx_g\\left(p_0+p_k+\\Delta p_g k\\right) \\tag2 y(p0)=g=1Gk=1Kwgmgkxg(p0+pk+Δpgk)(2)
其中G为聚合组的总数。对于第G组群体, w g ∈ R C × C ′ \\mathbfw_g \\in \\mathbbR^C \\times C^\\prime wgRC×C, m g k ∈ R \\mathbfm_g k \\in \\mathbbR mgkR表示群体的位置无关投影权重,其中 C ′ = C / G C^\\prime=C / G C=C/G表示群体维度。 m g k ∈ R \\mathbfm_g k \\in \\mathbbR mgkR表示第g组中第k个采样点的调制标量,由softmax函数沿着维度 K . x g ∈ R C ′ × H × W K . \\mathbfx_g \\in \\mathbbR^C^\\prime \\times H \\times W K.xgRC×H×W表示切片的输入特征图。 Δ p g k \\Delta p_g k Δpgk为第g组中网格采样位置 p k p_k pk对应的偏移量。

总的来说,作为DCN系列的扩展,DCNv3具有以下3个优点:(1)该算子弥补了常规卷积在长程依赖和自适应空间聚合方面的不足;(2)与基于注意力的算子如常见的MHSA和密切相关的可变形注意力[46,56]相比,该算子继承了卷积的归纳偏差,使我们的模型在训练数据更少和训练时间更短的情况下更有效;(3)该算子基于稀疏采样,与MHSA[1]和重参数化大核[22]等方法相比,具有更高的计算效率和存储效率。此外,由于稀疏采样,DCNv3只需要3×3内核来学习长程依赖关系,这更容易被优化,并避免了对大型内核中使用的[22]重新参数化等额外的辅助技术。

3.2、InternImage模型

使用DCNv3作为核心算子带来了一个新的问题:如何构建一个能够有效利用核心算子的模型?在本节中,首先介绍了模型的基本块和其他整体层的细节,然后构建了一个新的基于cnn的基础模型InternImage,通过探索这些基本块的定制堆叠策略。最后,研究了模型的尺度上推规则,以获得参数增加带来的增益。

基本块。与传统cnn中广泛使用的瓶颈[36]不同,基本块的设计更接近vit,配备了更先进的组件,包括LN[24]、前馈网络(FFN)[1]和GELU[25]。这种设计在各种视觉任务中被证明是有效的[2,10,11,21,22]。基本块的细节如图3所示,其中核心算子是DCNv3,通过通过可分离卷积(3×3深度卷积后面的线性投影)传递输入特征x来预测采样偏移和调制尺度。对于其他组件,我们默认使用归一化后设置[57],并遵循与普通transformer相同的设计[1,9]。

Stem和下采样层。为了获得分层特征图,我们使用卷积stem和下采样层将特征图调整到不同的尺度。如图3所示,将stem层放置在第一级之前,使输入分辨率降低4倍。它由两个卷积、两个LN层和一个GELU层组成,其中两个卷积的内核大小为3,步长为2,填充为1,第一个卷积的输出通道是第二个卷积的一半。类似地,下采样层由步长为2和填充为1的3×3卷积组成,后面是一个LN层。它位于两个阶段之间,用于对输入的特征图进行2倍的下采样。

叠加规则。为了阐明块堆叠过程,我们首先列出内部图像的积分超参数,如下所示: