MambaVision:一种混合Mamba-Transformer视觉主干网络
Ali Hatamizadeh, Jan Kautz
NVIDIA
{ahatamizadeh, jkautz}@nvidia.com
摘要
我们提出了一种新型的混合Mamba-Transformer主干网络,命名为MambaVision,它专门为视觉应用而设计。我们的核心贡献包括重新设计Mamba公式,以提高其有效建模视觉特征的能力。此外,我们对集成视觉变换器(ViT)与Mamba的可行性进行了全面的消融研究。我们的结果表明,在Mamba架构的最后一层加入多个自注意力模块大大提高了捕获长程空间依赖性的建模能力。基于我们的发现,我们引入了一系列具有分层架构的MambaVision模型,以满足各种设计标准。在ImageNet-1K数据集上进行图像分类,MambaVision模型变种实现了新的最佳性能(SOTA),在Top-1准确性和图像吞吐量方面表现出色。在下游任务如对象检测、实例分割和语义分割方面,MambaVision在MS COCO和ADE20K数据集上超过了同等规模的基干网络,并显示出更优越的性能。代码:https://github.com/NVlabs/MambaVision。
1 引言
近年来,Transformer [1] 已经成为不同领域(包括计算机视觉、自然语言处理、语音处理和机器人技术)的实际标准架构。此外,Transformer 架构的多功能性,主要归功于其注意力机制,以及其灵活性,使其非常适合多模态学习任务,在这些任务中,整合和处理来自不同模态的信息是至关重要的。尽管具有这些优势,但注意力机制相对于序列长度的二次复杂度使得训练和部署 Transformer 计算成本高昂。最近,Mamba [2] 提出了一种新的状态空间模型(SSM),实现了线性时间复杂度,并在不同的语言建模任务中超越或匹配 Transformer [2] 的性能。Mamba 的核心贡献是一种新颖的选择机制,它能够针对长序列进行高效的输入依赖处理,并考虑硬件感知因素。
图 1 – ImageNet-1K 上的 Top-1 准确率 v s {vs} vs 和图像吞吐量。所有测量均在配备 128 批处理大小的 A100 GPU 上进行。MambaVision 实现了新的 SOTA Pareto 前沿。
最近,还提出了一些基于 Mamba 的主干网络 [3, 4],以利用其 SSM 公式在视觉任务(如图像分类和语义分割)中的优势。
然而,Mamba 的自回归公式虽然对于需要顺序数据处理的任务有效,但在从全感受野中受益的计算机视觉任务中面临局限性:(1)与顺序重要的序列不同,图像像素并没有以同样的方式具有序列依赖性。相反,空间关系通常是局部的,需要以更并行和综合的方式考虑。因此,这在处理空间数据时效率低下;(2)像 Mamba 这样的自回归模型逐步处理数据,限制了它在一次前向传递中捕捉和利用全局上下文的能力。相比之下,视觉任务通常需要理解全局上下文,以便对局部区域做出准确的预测。
Vision Mamba (Vim) [3] 和其他研究提出了诸如双向 SSM 等修改,以解决全局上下文和空间理解的缺失问题。虽然双向 SSM 有潜力捕获更全面的上下文,但由于需要处理整个序列才能进行预测,它们引入了显著的延迟。此外,复杂性的增加可能导致训练困难,过拟合的风险,且不一定总能带来更好的准确性。由于这些陷阱,基于 Vision Transformer (ViT) 和卷积神经网络 (CNN) 架构的主干网络仍然在不同的视觉任务上优于最佳的基于 Mamba 的视觉模型。
在这项工作中,我们系统地重新设计了 Mamba 块,使其更适合视觉任务。我们提出了一种混合架构,包括我们提出的公式(即 MambaVision 混合器和 MLP)以及 Transformer 块。具体来说,我们研究了不同的集成模式,例如以等参数方式将 Transformer 块添加到早期、中期和最后几层以及每个 l l l 层。我们的分析表明,在最后阶段利用多个自注意力块可以显著增强捕获全局上下文和长距离空间依赖性的能力。如第 5 节所示,使用混合架构还比纯 Mamba 或基于 ViT 的模型具有更高的图像吞吐量。
我们介绍了MambaVision模型,该模型包含一个多分辨率架构,并利用基于CNN的残差块对较大分辨率特征进行快速特征提取。如图1所示,MambaVision在ImageNet-1K Top-1准确性和图像吞吐量方面达到了新的SOTA帕累托前沿,超过了Mamba、CNN和基于ViT的模型,有时甚至有显著的领先。在下游任务如目标检测、实例分割以及语义分割中,具有MambaVision主干网络的模型分别在MS COCO和ADE20数据集上超过了同样大小的对比模型。因此,这验证了MambaVision作为一种高效主干网络的有效性和通用性。
据我们所知,MambaVision是第一个研究并开发包含Mamba和Transformer的混合架构以应用于计算机视觉任务的尝试。我们在这项工作中的主要贡献可以概括如下:
-
我们引入了一个重新设计的视觉友好型Mamba块,提高了原始Mamba架构的准确性和图像吞吐量。
-
我们对Mamba和Transformer块的集成模式进行了系统研究,并证明在最后阶段加入自注意力块显著提高了模型捕捉全局上下文和长距离空间依赖性的能力。
-
我们介绍了MambaVision,这是一个新颖的混合Mamba Transformer模型。分层的MambaVision在ImageNet-1K数据集上达到了新的SOTA帕累托前沿,在Top-1准确性和图像吞吐量权衡方面。
2 相关工作
ViT. 视觉变换器(ViT)[5] 作为一种有前景的卷积神经网络(CNNs)替代方案出现,利用自注意力层提供扩大的感受野。然而,ViT最初缺乏卷积神经网络的一些内在优势,例如归纳偏置和平移不变性,并且它们需要大规模训练数据集才能达到有竞争力的性能。为了解决这些局限性,数据高效图像变换器(DeiT)[6] 引入了一种基于蒸馏的训练策略,即使在较小的数据集上也能显著提高分类精度。在此基础上,LeViT [7] 模型提出了一种混合方法,集成了重新设计的MLP和自注意力模块,这些模块针对快速推理进行了优化,提高了效率和性能。此外,交叉协方差图像变换器(XCiT)[8] 引入了一种转置自注意力机制,有效地建模特征通道之间的交互,提高了模型捕捉数据中复杂模式的能力。金字塔视觉变换器(PVT)[9] 采用了一种分层结构,在每个阶段的开始进行补丁嵌入和空间维度减少,从而提高了计算效率。同样,Swin 变换器 [10] 提出了一种分层架构,其中自注意力在局部窗口内计算,这些窗口移动以实现区域间的交互,平衡了局部和全局上下文。Twins 变换器 [11] 以空间可分离的自注意力为特色,显著提高了效率。此外,焦点变换器 [12] 利用焦点自注意力来捕捉长程空间交互的细粒度细节。
Mamba。自从Mamba的引入以来,已经提出了许多努力来利用其用于视觉应用的能力。特别是,Vim [3] 提出了使用双向SSM公式,与相同的Mamba公式,其中令牌在正向和反向进行处理,以捕捉更全局的上下文并提高空间理解。然而,双向编码增加了计算负担,可能会减慢训练和推理时间。此外,有效地从多个方向结合信息以形成连贯的全局理解是具有挑战性的,因为在过程中可能会丢失一些全局上下文。与Vim不同,我们提出的MambaVision使用单一的前向传递和一个重新设计的Mamba块,能够捕捉到短距离和长距离信息,并且在ImageNet Top-1准确性和吞吐量方面都显著优于它。
EfficientVMamba [4] 提出了一个基于孔洞的选择性扫描,结合跳采样方法来有效地提取全局空间依赖。EfficientVMamba还使用了一种分层架构,由SSM和基于CNN的块组成,其中SSM用于更大的输入分辨率以更好地捕捉全局上下文,而CNN用于较低的分辨率。与EfficientV-Mamba相比,MambaVision在更高分辨率使用CNN来快速提取特征,同时在较低分辨率使用SSM和自注意力来捕捉短距离和长距离空间依赖的细微细节。我们提出的MambaVision在Top-1准确性和图像吞吐量方面也以显著优势超过了EfficientVMamba。
此外,VMamba [13] 引入了一个基于 Mamba 的通用视觉主干网络,其中包含一个交叉扫描模块(CSM),该模块能够实现具有扩大全局感受野的 1D 选择性扫描。具体来说,CSM 模块采用四向选择性扫描方法(即从左上到右下相反方向)来整合来自所有周围标记的信息并捕获更全局的上下文。另外,VMamba 进行了架构上的改变,例如使用深度卷积和分层多分辨率结构。尽管 CSM 模块的设计更适合视觉任务,但其感受野仍然受到交叉扫描路径的限制。与 VMamba 相比,我们提出的 MambaVision 混合器设计更简单,并且能够捕获短距离和长距离依赖。MambaVision 还使用基于 CNN 的层进行快速特征提取,而 VMamba 在所有阶段使用相同的块结构。此外,MambaVision 模型在具有显著更高图像吞吐量的同时,性能超过了 VMamba 对应模型。
3 方法论
3.1 宏观架构
在本节中,我们介绍了MambaVision,这是我们提出的在ImageNet-1K数据集上具有最先进性能的新型架构。如图2所示,MambaVision具有分层的架构,包括4个不同的阶段。前两个阶段由基于CNN的层组成,用于在较高的输入分辨率下快速提取特征,而第3和第4阶段包括我们提出的MambaVision和Transformer块。具体来说,给定一个大小为 H × W × 3 H \times W \times 3 H×W×3的图像,输入首先被转换为大小为 H 4 × W 4 × C \frac{H}{4} \times \frac{W}{4} \times C 4H×4W×C的重叠补丁,并通过由两个连续的 3 × 3 3 \times 3 3×3 CNN层(步长为2)组成的茎部,投影到 C C C维的嵌入空间。阶段之间的降采样器由一个步长为2的批量归一化 3 × 3 3 \times 3 3×3 CNN层组成,它将图像分辨率减半。此外,第1和第2阶段的CNN块遵循以下通用残差块公式:
z ^ = GELU ( BN ( Conv 3 × 3 ( z ) ) ) (1) \widehat{\mathbf{z}} = \operatorname{GELU}\left( {\operatorname{BN}\left( {{\operatorname{Conv}}_{3 \times 3}\left( \mathbf{z}\right) }\right) }\right) \tag{1} z =GELU(BN(Conv3×3(z)))(1)
z = BN ( Conv 3 × 3 ( z ^ ) ) + z \mathbf{z} = \operatorname{BN}\left( {{\operatorname{Conv}}_{3 \times 3}\left( \widehat{\mathbf{z}}\right) }\right) + \mathbf{z} z=BN(Conv3×3(z ))+z
GELU and BN denote Gaussian Error Linear Unit activa- tion function [14] and batch normalization [15], respectively. \begin{matrix} \text{ GELU } & \text{ and } & \text{ BN } & \text{ denote } & \text{ Gaussian } & \text{ Error } & \text{ Linear } & \text{ Unit } & \text{ activa- } \\ \text{ tion } & \text{ function } & \text{ [14] } & \text{ and } & \text{ batch } & \text{ normalization } & \text{ [15],} & \text{ respectively. } & \end{matrix} GELU tion and function BN [14] denote and Gaussian batch Error normalization Linear [15], Unit respectively. activa-
图2 - 分层MambaVision模型的架构。前两个阶段使用残差卷积块进行快速特征提取。第3和第4阶段同时使用MambaVision和Transformer块。具体来说,给定 N N N层,我们使用 N 2 \frac{N}{2} 2N个MambaVision和MLP块,之后是额外的 N 2 \frac{N}{2} 2N个Transformer和MLP块。最终层的Transformer块允许恢复丢失的全局上下文并捕获长距离的空间依赖关系。
3.2 微架构
图3 - MambaVision块的架构。除了将因果卷积层替换为其常规对等物外,我们还创建了一个没有SSM的对称路径作为标记混合器,以增强对全局上下文的建模。
在本节中,我们首先回顾了Mamba和SSM的预备知识。然后,我们介绍了第3和第4阶段的架构微设计,并详细讨论了MambaVision的公式。
3.2.1 Mamba预备知识
Mamba是结构化状态空间序列模型(S4)的扩展,它能够通过可学习的隐藏状态 x ( t ) ∈ R x\left( t\right) \in \mathbb{R} x(t)∈R 将一维连续输入 y ( t ) ∈ R y\left( t\right) \in \mathbb{R} y(t)∈R 转换为 h ( t ) ∈ R M h\left( t\right) \in {\mathbb{R}}^{M} h(t)∈RM,其参数为 A ∈ R M × M , B ∈ R 1 × M \mathbf{A} \in {\mathbb{R}}^{M \times M},\mathbf{B} \in {\mathbb{R}}^{1 \times M} A∈RM×M,B∈R1×M 和 C ∈ R 1 × M \mathbf{C} \in {\mathbb{R}}^{1 \times M} C∈R1×M 依据
h ′ ( t ) = A h ( t ) + B x ( t ) (2) {h}^{\prime }\left( t\right) = \mathbf{A}h\left( t\right) + \mathbf{B}x\left( t\right) \tag{2} h′(t)=Ah(t)+Bx(t)(2)
y ( t ) = C h ( t ) y\left( t\right) = \mathbf{C}h\left( t\right) y(t)=Ch(t)
离散化 在上述公式中的连续参数 A \mathbf{A} A 、 B \mathbf{B} B 和 C \mathbf{C} C 进一步转换为离散参数以提高计算效率 [16]。具体来说,假设一个时间尺度 Δ \Delta Δ ,可以应用零阶保持规则来获得离散参数 A ‾ ∈ R M × M \overline{\mathbf{A}} \in {\mathbb{R}}^{M \times M} A∈RM×M 、 B ‾ ∈ R 1 × M \overline{\mathbf{B}} \in {\mathbb{R}}^{1 \times M} B∈R1×M 和 C ‾ ∈ R 1 × M \overline{\mathbf{C}} \in {\mathbb{R}}^{1 \times M} C∈R1×M 依据
A ‾ = exp ( Δ A ) \overline{\mathbf{A}} = \exp \left( {\Delta \mathbf{A}}\right) A=exp(ΔA)
B ‾ = ( Δ A ) − 1 ( exp ( Δ A ) − I ) ⋅ ( Δ B ) , (3) \overline{\mathbf{B}} = {\left( \Delta \mathbf{A}\right) }^{-1}\left( {\exp \left( {\Delta \mathbf{A}}\right) - \mathbf{I}}\right) \cdot \left( {\Delta \mathbf{B}}\right) , \tag{3} B=(ΔA)−1(exp(ΔA)−I)⋅(ΔB),(3)
C ‾ = C \overline{\mathbf{C}} = \mathbf{C} C=C
方程 2 可以用离散参数表示为
h ( t ) = A ‾ h ( t − 1 ) + B ‾ x ( t ) (4) h\left( t\right) = \overline{\mathbf{A}}h\left( {t - 1}\right) + \overline{\mathbf{B}}x\left( t\right) \tag{4} h(t)=Ah(t−1)+Bx(t)(4)
y ( t ) = C ‾ h ( t ) , y\left( t\right) = \overline{\mathbf{C}}h\left( t\right) , y(t)=Ch(t),
此外,对于大小为 T T T 的输入序列,可以应用全局卷积,核为 K ‾ \overline{\mathbf{K}} K ,来计算方程 4 的输出,如下所示
K ‾ = ( C B ‾ , C A ‾ B ‾ , … , C A ‾ T − 1 B ‾ ) (5) \overline{\mathbf{K}} = \left( {\mathbf{C}\overline{\mathbf{B}},\mathbf{C}\overline{\mathbf{A}}\overline{\mathbf{B}},\ldots ,\mathbf{C}{\overline{\mathbf{A}}}^{T - 1}\overline{\mathbf{B}}}\right) \tag{5} K=(CB,CAB,…,CAT−1B)(5)
y = x ∗ K ‾ \mathbf{y} = \mathbf{x} * \overline{\mathbf{K}} y=x∗K
Algorithm 1 PyTorch-like pseudo-code for MambaVision mixer
import torch
import math
import torch.nn as nn
import torch.nn.functional as F F F
from einops import rearrange, repeat
class MambaVisionMixer(nn.Module):
def init(self, dim, d_state=16, kernel_size=3):
super().init()
self.d_state = = = d_state
self.dt_rank = = = math.ceil(dim / 16)
self.x_proj = = = nn.Linear(dim//2,self.dt_rank + self.d_state *2)
self.conv1d_x = nn.Conv1d(dim//2, dim//2, kernel_size=kernel_size, padding=‘same’, groups=dim//2)
self.conv1d_z = nn.Conv1d(dim//2, dim//2, kernel_size=kernel_size, padding=‘same’, groups=dim//2)
self.dt_proj = = = nn.Linear(self.dt_rank,dim//2)
KaTeX parse error: Expected 'EOF', got '_' at position 132: …eft( \texttt{dt_̲max}\right) \;\…
A_log KaTeX parse error: Expected 'EOF', got '_' at position 114: …1,\text{ self.d_̲state } + 1}\ri…
self.A_log = = = nn.Parameter ( A _ log ) \left( {A\_ \log }\right) (A_log)
self.D = = = nn.Parameter (torch.ones (dim//2))
self.out_proj = = = nn.Linear(dim,dim)
def forward(self, hidden_states):
x z = \mathrm{{xz}} = xz= rearrange(self.in_proj(hidden_states), b 1 d → b d 1 \mathrm{b}1\mathrm{\;d} \rightarrow \mathrm{b}\mathrm{d}1 b1d→bd1 )
x , z = x z . chunk ( 2 , dim = 1 ) x,z = {xz}.\operatorname{chunk}\left( {2,\dim = 1}\right) x,z=xz.chunk(2,dim=1)
A = − torch.exp ( self. A _ log ) A = - \operatorname{torch.exp}\left( {\text{self.}A\_ \log }\right) A=−torch.exp(self.A_log)
x = \mathrm{x} = x= F. silu(self.conv1d_x(x))
z = z = z= F.silu(self.conv1d_z(z))
x _ d b 1 = \mathrm{x}\_ \mathrm{{db}}1 = x_db1= self.x_proj(rearrange(x, b d 1 → \mathrm{b}\mathrm{d}1 \rightarrow bd1→ (b 1 1 1 ) d \mathrm{d} d ))
d t , B , C = torch.split ( x _ d b 1 , [ s e l f . d t _ r a n k , s e l f . d _ s t a t e , s e l f . d _ s t a t e ] , d i m = − 1 ) \mathrm{{dt}},\mathrm{B},\mathrm{C} = \operatorname{torch.split}\left( {\mathrm{x}\_ \mathrm{{db}}1,\left\lbrack {\mathrm{{self}}.\mathrm{{dt}}\_ \mathrm{{rank}},\mathrm{{self}}.\mathrm{d}\_ \mathrm{{state}},\mathrm{{self}}.\mathrm{d}\_ \mathrm{{state}}}\right\rbrack ,\mathrm{{dim}} = - 1}\right) dt,B,C=torch.split(x_db1,[self.dt_rank,self.d_state,self.d_state],dim=−1)
d t = \mathrm{{dt}} = dt= rearrange(self.dt_proj(dt),(b 1) d → b d 1 , 1 = \mathrm{d} \rightarrow \mathrm{{bd}}1,1 = d→bd1,1= seqlen)
B = B = B= rearrange ( B , ( b 1 ) dstate → b dstate 1 , 1 = seqlen ) \left( {B,\left( {b1}\right) \text{dstate} \rightarrow b\text{dstate}1,1 = \text{seqlen}}\right) (B,(b1)dstate→bdstate1,1=seqlen)
C = C = C= rearrange ( C , ( b 1 ) dstate → b dstate 1 , 1 = seqlen ) \left( {C,\left( {b1}\right) \text{dstate} \rightarrow b\text{dstate}1,1 = \text{seqlen}}\right) (C,(b1)dstate→bdstate1,1=seqlen)
x _ s s m = x\_ {ssm} = x_ssm= selective_scan_fn ( x , d t , A , B , C , D ) \left( {x,{dt},A,B,C,D}\right) (x,dt,A,B,C,D)
hidden_states = rearrange ( torch . cat ( [ x _ s s m , z ] , d i m = 1 ) , b d 1 → b d 1 ) = \operatorname{rearrange}\left( {\operatorname{torch}.\operatorname{cat}\left( {\left\lbrack {x\_ {ssm},z}\right\rbrack ,{dim} = 1}\right) ,{bd1} \rightarrow {bd1}}\right) =rearrange(torch.cat([x_ssm,z],dim=1),bd1→bd1)
return self.out_proj(hidden_states)
选择性 Mamba通过引入选择机制进一步扩展了S4公式,该机制允许输入依赖的序列处理。这使得模型的参数 B , C \mathbf{B},\mathbf{C} B,C 和 Δ \Delta Δ 可以根据输入动态调整,并过滤掉不相关信息。进一步的离散化细节在 [2] 中提供。
3.2.2 层架构
假设输入 X ∈ R T × C X \in {\mathbb{R}}^{T \times C} X∈RT×C 的序列长度为 T T T ,嵌入维度为 C C C ,则在阶段 3 和 4 中的层 n n n 的输出可以计算为
X ^ n = Mixer ( Norm ( X n − 1 ) ) + X n − 1 (6) {\widehat{X}}^{n} = \operatorname{Mixer}\left( {\operatorname{Norm}\left( {X}^{n - 1}\right) }\right) + {X}^{n - 1} \tag{6} X n=Mixer(Norm(Xn−1))+Xn−1(6)
X n = MLP ( Norm ( X ^ n ) ) + X ^ n , {X}^{n} = \operatorname{MLP}\left( {\operatorname{Norm}\left( {\widehat{X}}^{n}\right) }\right) + {\widehat{X}}^{n}, Xn=MLP(Norm(X n))+X n,
Norm 和 Mixer 分别表示层归一化和标记混合块的选择。不失一般性,对于 Norm 使用层归一化。给定 N N N 层,前 N 2 \frac{N}{2} 2N 层使用 MambaVision 混合块,而剩余的 N 2 \frac{N}{2} 2N 层使用自注意力。我们将在下面描述每个混合块的细节。
MambaVision混合器如图3所示,我们对原始的Mamba混合器进行了重新设计,使其更适合视觉任务。首先,我们提议用普通卷积替换因果卷积,因为它限制了影响到一个方向,这对于视觉任务来说是不必要且限制性的。此外,我们添加了一个没有SSM的对称分支,包括一个额外的卷积和SiLU激活函数,以补偿由于SSM的顺序约束而丢失的任何内容。然后我们将两个分支的输出连接起来,并通过最终的线性层进行投影。这种组合确保了最终的特性表示同时包含顺序和空间信息,利用了两个分支的优势。我们注意到,每个分支的输出都被投影到一个大小为 C 2 \frac{C}{2} 2C(即原始嵌入维度的一半)的嵌入空间,以保持与原始块设计相似的参数数量。给定一个输入 X ˉ i n {\bar{X}}_{in} Xˉin,MambaVision混合器的输出 X out {X}_{\text{out }} Xout 根据以下计算
X 1 = Scan ( σ ( Conv ( Linear ( C , C 2 ) ( X i n ) ) ) ) {X}_{1} = \operatorname{Scan}\left( {\sigma \left( {\operatorname{Conv}\left( {\operatorname{Linear}\left( {C,\frac{C}{2}}\right) \left( {X}_{in}\right) }\right) }\right) }\right) X1=Scan(σ(Conv(Linear(C,2C)(Xin))))
X 2 = σ ( Conv ( Linear ( C , C 2 ) ( X i n ) ) ) (7) {X}_{2} = \sigma \left( {\operatorname{Conv}\left( {\operatorname{Linear}\left( {C,\frac{C}{2}}\right) \left( {X}_{in}\right) }\right) }\right) \tag{7} X2=σ(Conv(Linear(C,2C)(Xin)))(7)
X out = Linear ( C 2 , C ) ( Concat ( X 1 , X 2 ) ) , {X}_{\text{out }} = \operatorname{Linear}\left( {\frac{C}{2},C}\right) \left( {\operatorname{Concat}\left( {{X}_{1},{X}_{2}}\right) }\right) , Xout =Linear(2C,C)(Concat(X1,X2)),
Linear ( C i n , C out ) ( ⋅ ) \operatorname{Linear}\left( {{C}_{in},{C}_{\text{out }}}\right) \left( \cdot \right) Linear(Cin,Cout )(⋅)表示一个线性层, C in {C}_{\text{in }} Cin 和 C out {C}_{\text{out }} Cout 为输入和输出嵌入维度,Scan是如[2]中的选择扫描操作, σ \sigma σ是激活函数,其中使用了Sigmoid线性单元(SiLU)[17]。此外,Conv和Concat分别表示一维卷积和连接操作。在算法1中,我们为MambaVision混合器提供了一个类似PyTorch的伪代码。总的来说,我们提出的修改导致了更丰富的特性表示,更好的泛化能力,以及计算机视觉任务上的性能提升。我们还在第Sec节中实验验证了我们的每个设计选择的有效性。
自注意力机制 我们遵循通用的多头自注意力机制
Attention ( Q , K , V ) = Softmax ( Q K ⊤ d h ) V . (8) \operatorname{Attention}\left( {Q,K,V}\right) = \operatorname{Softmax}\left( \frac{Q{K}^{\top }}{\sqrt{{d}_{h}}}\right) V. \tag{8} Attention(Q,K,V)=Softmax(dhQK⊤)V.(8)
Q , K , V Q,K,V Q,K,V 分别表示查询、键和值,而 d h {d}_{h} dh 是注意力头的数量。不失一般性,该注意力公式可以像之前的努力 [ 10 , 18 ] \left\lbrack {{10},{18}}\right\rbrack [10,18] 一样以窗口方式计算。
4 实验
在 ImageNet-1K 数据集 [19] 上进行图像分类实验。我们遵循了之前工作的标准训练配方 [ 10 , 12 , 29 ] \left\lbrack {{10},{12},{29}}\right\rbrack [10,12,29],以便对不同模型的性能进行可比分析。具体来说,所有模型都已训练了 300 个时期,使用余弦衰减调度器,另外使用 20 个时期进行预热和冷却阶段。此外,我们使用 LAMB 优化器 [30],全局批量大小为 4096,初始学习率为 0.005,权重衰减为 0.05。我们注意到,与传统的 AdamW [31] 相比,使用 LAMB 优化器得到了更好的结果,这尤其归功于其对更高学习率的鲁棒性。我们使用了 32 个 A100 GPU 来执行分类任务。
为了评估下游任务的表现,我们将预训练模型作为对象检测和实例分割以及语义分割任务的主干网络,并分别使用了 MS COCO 数据集 [32] 和 ADE20K 数据集 [33]。具体来说,对于对象检测和实例分割,我们使用了带有超参数(如 × 3 \times 3 ×3 LR 调度,初始学习率为 0.0001,批量大小为 16,权重衰减为 0.05)的 Mask-RCNN [34] 头。对于语义分割,我们使用了带有 Adam-W [31] 优化器的 UperNet 网络 [35] 头,初始学习率为 6 e − 5 {6e} - 5 6e−5,全局批量大小为 16。我们为所有下游任务使用了 8 个 A100 GPU。
5 结果
5.1 图像分类
在表1中,我们展示了ImageNet-1K分类结果。具体来说,我们对比了诸如基于卷积、基于Transformer、卷积-Transformer以及Mamba-based等不同模型家族,并证明我们的模型在考虑ImageNet Top-1准确度和图像吞吐量方面大幅超越了之前的努力。例如,与ConvNeXt和Swin Transformers等流行模型相比,MambaVision-B(84.2%)分别优于ConvNeXt-B(83.8%)和Swin-B(83.5%),同时具有显著更好的图像吞吐量。我们在与基于Mamba的模型比较时也观察到了类似的趋势。具体来说,尽管MambaVision-B(84.2%)的图像吞吐量明显更高,但它仍优于VMamba-B(83.9%)。我们还注意到,尽管我们的主要设计目标是准确度和吞吐量的权衡,但与同等规模的对比模型相比,MambaVision模型变体的FLOPs要低得多。例如,MambaVision-B的GFLOPs比MaxViT-B少了56%。
表1 - 在ImageNet-1K [19]数据集上的分类基准。图像吞吐量是在配备128批次大小的A100 GPU上计算的。
Mamba-Based | |||||
---|---|---|---|---|---|
Vim-T [3] | 224 | 7.0 | - | 3957 | 76.1 |
Vim-S [3] | 224 | 26.0 | - | 1974 | 80.5 |
EfficientVMamba-T [4] | 224 | 6.0 | 0.8 | 2904 | 76.5 |
EfficientVMamba-S [4] | 224 | 11.0 | 1.3 | 1610 | 78.7 |
EfficientVMamba-B [4] | 224 | 33.0 | 4.0 | 1482 | 81.8 |
VMamba-T [13] | 224 | 30.0 | 4.9 | 1282 | 82.6 |
VMamba-S [13] | 224 | 50.0 | 8.7 | 843 | 83.6 |
VMamba-B [13] | 224 | 89.0 | 15.4 | 645 | 83.9 |
MambaVision | |||||
---|---|---|---|---|---|
MambaVision-T | 224 | 31.8 | 4.4 | 6298 | 82.3 |
MambaVision-T2 | 224 | 35.1 | 5.1 | 5990 | 82.7 |
MambaVision-S | 224 | 50.1 | 7.5 | 4700 | 83.3 |
MambaVision-B | 224 | 97.7 | 15.0 | 3670 | 84.2 |
MambaVision-L | 224 | 227.9 | 34.9 | 2190 | 85.0 |
MambaVision-L2 | 224 | 241.5 | 37.5 | 1021 | 85.3 |
5.2 目标检测与分割
我们在表2中展示了在MS COCO数据集 [32] 上的目标检测和实例分割结果。具体来说,我们训练了不同检测尺寸的模型,以进一步验证MambaVision在不同场景下的有效性。我们还注意到,我们的目标不是在这些任务上达到最先进水平(SOTA),而是比较我们的主干网络与同等尺寸的流行视觉主干网络的表现,并验证其有效性。使用简单的Mask-RCNN检测头,我们的预训练MambaVision-T主干网络在框AP和掩码AP方面分别达到了46.4和41.8,超过了ConvNeXt-T [20] 和Swin-T [10] 模型。使用级联Mask-RCNN网络,MambaVision-T、MambaVision-S和MambaVision-B超过了竞争对手。具体来说,MambaVision模型在框AP和掩码AP方面分别超过了ConvNeXt-T 0.6和0.6,ConvNeXt-S 0.2和0.2,ConvNeXt-B 0.1和0.1。同样,MambaVision在框AP和掩码AP方面分别超过了Swin-T 0.6和0.6,Swin-S 0.1和0.2,Swin-B 0.9和0.7。
Backbone | Param (M) | FLOPs (G) | APbox | ${\mathrm{{AP}}}_{50}^{\text{box }}$ | ${\mathrm{{AP}}}_{75}^{\text{box }}$ | Apmask | ${\mathrm{{AP}}}_{50}^{\text{mask }}$ | ${\mathrm{{AP}}}_{75}^{\text{mask }}$ |
---|---|---|---|---|---|---|---|---|
Mask-RCNN 3 $\times$ schedule | ||||||||
Swin-T [10] | 48 | 267 | 46.0 | 68.1 | 50.3 | 41.6 | 65.1 | 44.9 |
ConvNeXt-T [20] | 48 | 262 | 46.2 | 67.9 | 50.8 | 41.7 | 65.0 | 44.9 |
MambaVision-T | 48 | 255 | 46.4 | 68.3 | 51.0 | 41.8 | 65.4 | 45.0 |
Cascade Mask-RCNN 3× schedule | ||||||||
DeiT-Small/16 [6] | 80 | 889 | 48.0 | 67.2 | 51.7 | 41.4 | 64.2 | 44.3 |
ResNet-50 [36] | 82 | 739 | 46.3 | 64.3 | 50.5 | 40.1 | 61.7 | 43.4 |
Swin-T [10] | 86 | 745 | 50.4 | 69.2 | 54.7 | 43.7 | 66.6 | 47.3 |
ConvNeXt-T [20] | 86 | 741 | 50.4 | 69.1 | 54.8 | 43.7 | 66.5 | 47.3 |
MambaVision-T | 86 | 740 | 51.0 | 69.9 | 55.6 | 44.3 | 67.2 | 48.1 |
X101-32 [37] | 101 | 819 | 48.1 | 66.5 | 52.4 | 41.6 | 63.9 | 45.2 |
Swin-S [10] | 107 | 838 | 51.9 | 70.7 | 56.3 | 45.0 | 68.2 | 48.8 |
ConvNeXt-S [20] | 108 | 827 | 51.9 | 70.8 | 56.5 | 45.0 | 68.4 | 49.1 |
MambaVision-S | 108 | 828 | 52.1 | 70.9 | 56.7 | 45.2 | 68.4 | 49.1 |
X101-64 [37] | 140 | 972 | 48.3 | 66.4 | 52.3 | 41.7 | 64.0 | 45.1 |
Swin-B [10] | 145 | 982 | 51.9 | 70.5 | 56.4 | 45.0 | 68.1 | 48.9 |
ConvNeXt-B [20] | 146 | 964 | 52.7 | 71.3 | 57.2 | 45.6 | 68.9 | 49.5 |
MambaVision-B | 145 | 964 | 52.8 | 71.6 | 57.2 | 45.7 | 69.0 | 49.5 |
表2 - 使用Mask R-CNN和级联Mask R-CNN网络在MS COCO数据集 [32] 上的目标检测和实例分割结果。
Backbone | Param (M) | FLOPs (G) | mIoU |
---|---|---|---|
DeiT-Small/16 [6] | 52 | 1099 | 44.0 |
Swin-T [10] | 60 | 945 | 44.5 |
ResNet-101 [36] | 86 | 1029 | 44.9 |
Focal-T [12] | 62 | 998 | 45.8 |
Twins-SVT-S [11] | 55 | $-$ | 46.2 |
MambaVision-T | 55 | 945 | 46.6 |
Swin-S [10] | 81 | 1038 | 47.6 |
Twins-SVT-B [11] | 89 | $-$ | 47.7 |
Focal-S [12] | 85 | 1130 | 48.0 |
MambaVision-S | 84 | 1135 | 48.2 |
Swin-B [10] | 121 | 1188 | 48.1 |
Twins-SVT-L [11] | 133 | $-$ | 48.8 |
Focal-B [12] | 126 | 1354 | 49.0 |
MambaVision-B | 126 | 1342 | 49.1 |
表3 - 使用UperNet [35] 网络在ADE20K数据集上的语义分割结果。对于所有模型,都使用了 512 × 512 {512} \times {512} 512×512的裁剪尺寸。
我们在表3中展示了基于ADE20K数据集[33]的语义分割基准测试。在这些实验中,我们使用了UPerNet[35]以与其他模型进行比较。我们观察到MambaVision模型在多个变种上超过了同样大小的竞争模型。例如,MambaVision-T、MambaVision-S和MambaVision-B在mIoU指标上超过了Swin-T、Swin-S和Swin-B,分别提高了 + 0.6 , + 0.6 + {0.6}, + {0.6} +0.6,+0.6和+1.0。尽管我们没有对下游任务的超参数调整进行广泛优化,但这些结果证明了MambaVision作为不同视觉任务,特别是在高分辨率设置中的有前途的基础网络的可行性。
5.3 删除实验
Token Mixer的设计 本节中,我们对MambaVision的Token Mixer进行了全面的删除实验,以系统地设计其结构。我们的目标是修改现有的Mamba块以适应计算机视觉任务,并评估了它在分类、目标检测和实例分割以及语义分割等不同任务上的性能。所有实验均遵循与MambaVision-T模型架构布局相似的模型作为基础。
如表4所示,我们首先使用原始的Mamba公式,在SSM分支(即conv1)中使用因果卷积层,并在我们提出的对称分支(即conv2)中没有额外的卷积层。如预期的那样,这种公式实现了次优性能,Top-1准确度为 80.9 % {80.9}\% 80.9% ( − 1.8 % ) \left( {-{1.8}\% }\right) (−1.8%),box AP和mask AP分别为44.8 ( − 1.6 ) \left( {-{1.6}}\right) (−1.6)和 40.2 ( − 1.6 ) {40.2}\left( {-{1.6}}\right) 40.2(−1.6),mIoU为 44.2 % {44.2}\% 44.2%(-1.4)。然后,我们将SSM分支的因果卷积(即conv1)替换为普通卷积层,并观察到所有指标都因这一变化而有所改善。此外,我们添加了conv2层,但使用Mamba的相同门控机制,而不是连接。这一改变提高了性能,并使Top-1准确度达到 81.3 % {81.3}\% 81.3%,box AP和mask AP分别为45.3和41.0,mIoU为45.7%。最后,添加连接显著提高了所有指标的性能,ImageNet Top-1提高了 + 1.0 % , + 1.1 , + 0.8 + {1.0}\% , + {1.1}, + {0.8} +1.0%,+1.1,+0.8,MS COCO的box AP和mask AP以及ADE20K数据集的mIoU分别提高了+0.9。因此,这验证了我们的假设,即连接两个分支(即SSM和非SSM)的输出可以学习到更丰富的特征表示,并增强全局上下文理解。
ImageNet | COCO | ADE20k mIoU | ||
---|---|---|---|---|
top-1 | ${\mathrm{{AP}}}^{\mathrm{{box}}}$ | ${\mathrm{{AP}}}^{\text{mask }}$ | ||
causal conv1 - w/o conv2 | 80.5 | 44.8 | 40.4 | 44.2 |
conv1 - w/o conv2 | 80.9 | 45.0 | 40.8 | 44.7 |
conv1 - conv2 - w/o concat | 81.3 | 45.3 | 41.0 | 45.7 |
$\mathrm{{conv1}}$ - $\mathrm{{conv2}}$ - $\mathrm{{concat}}$ | 82.3 | 46.4 | 41.8 | 46.6 |
表4 - MambaVision令牌混合器的系统设计。w/o和concat分别指“无”和连接。conv1和conv2表示图3所示的SSM分支和额外对称分支中的卷积操作。性能在ImageNet-1K、MS COCO和ADE20K数据集上分别针对分类、目标检测和实例分割以及语义分割进行评估。
混合模式 在这一节中,我们…
Model | Top-1 |
---|---|
Random | 81.3 |
First $N/2$ layers (SSSSMMMM) | 81.5 |
Mixed layers-1 (SMSMSMSM) | 81.4 |
Mixed layers-2 (MSMSMSMS) | 81.6 |
Last $N/4$ layers (MMMMMSS | 81.9 |
Last $N/2$ layers (MMMMSSSS) | 82.3 |
表5 - 使用ImageNet-1K数据集对不同混合集成模式的有效性进行消融研究。我们在第3和第4阶段使用指定的模式。然而,表中仅展示了第 3 ( N = 8 ) 3\left( {\mathrm{\;N} = 8}\right) 3(N=8) 阶段的模式,以作说明之用。 S \mathrm{S} S 和 M \mathrm{M} M 分别表示自注意力机制和MambaVision标记混合块。全面研究不同混合集成模式对自注意力和MambaVision标记混合器的影响。对于所有实验,架构遵循MambaVision-T布局,并且我们保持模型等参数以进行公平比较。这些模式在第3和第4阶段中与混合功能一起使用。我们通过使用随机模式开始研究,并达到了次优的Top-1准确度 81.3 % {81.3}\% 81.3% 。这证实了我们之前的直觉,即仅使用自注意力而没有特定模式可能不会有效。然后我们在每个阶段的前 N / 2 N/2 N/2 层使用自注意力块, N N N 表示阶段层的总数,并观察到Top-1准确度提高了 + 0.2 % ( 81.5 % ) + {0.2}\% \left( {{81.5}\% }\right) +0.2%(81.5%) 。然而,使用自注意力/MambaVision混合器块的混合层模式略微降低了准确度 $- {0.1}% \left( {$ {1.4}% }\right)$ 。相反,通过使用MambaVision/self-attention逆序混合层,可以提高性能并达到Top-1准确度 ( 81.6 % ) \left( {{81.6}\% }\right) (81.6%) 。然后我们在每个阶段的最后 N / 4 N/4 N/4 层仅使用自注意力块,并观察到准确度立即提高了 + 0.3 % ( 81.9 % ) + {0.3}\% \left( {{81.9}\% }\right) +0.3%(81.9%) 。这验证了我们的假设,即在每个阶段的最后几层使用自注意力块是一种有效的设计方案。然而,其表征学习能力需要根据MambaVision层进行调整。将每个阶段最后 N / 2 N/2 N/2 层的自注意力块数量增加,实现了最佳性能 82.3 % {82.3}\% 82.3% 。
6 结论
在这项工作中,我们介绍了MambaVision,它是第一种专门针对视觉应用定制的Mamba-Transformer混合主干网络。我们提出了重新设计Mamba公式以增强全局上下文表示学习的能力,并展示了混合设计集成模式的全面研究。MambaVision在Top-1准确性和图像吞吐量方面达到了新的SOTA帕累托前沿,以显著的优势超越了Transformer和基于Mamba的模型。我们希望这些发现能成为一类新的混合视觉模型的基础。
参考文献
[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. In Advances in neural information processing systems, pages 5998-6008, 2017.
[2] Albert Gu and Tri Dao. Mamba: Linear-time sequence modeling with selective state spaces. arXiv preprint arXiv:2312.00752, 2023.
[3] Lianghui Zhu, Bencheng Liao, Qian Zhang, Xinlong Wang, Wenyu Liu, and Xinggang Wang. Vision mamba: Efficient visual representation learning with bidirectional state space model. arXiv preprint arXiv:2401.09417, 2024.
[4] Xiaohuan Pei, Tao Huang, and Chang Xu. Efficientvmamba: Atrous selective scan for light weight visual mamba. arXiv preprint arXiv:2403.09977, 2024.
[5] Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, et al. An image is worth 16x16 words: Transformers for image recognition at scale. In International Conference on Learning Representations, 2020.
[6] Hugo Touvron, Matthieu Cord, Matthijs Douze, Francisco Massa, Alexandre Sablayrolles, and Hervé Jégou. Training data-efficient image transformers & distillation through attention. In International Conference on Machine Learning, pages 10347-10357. PMLR, 2021.
[7] Benjamin Graham, Alaaeldin El-Nouby, Hugo Touvron, Pierre Stock, Armand Joulin, Hervé Jégou, and Matthijs Douze. Levit: a vision transformer in convnet’s clothing for faster inference. In Proceedings of the IEEE/CVF International Conference on Computer Vision, pages 12259- 12269, 2021.
[8] Alaaeldin Ali, Hugo Touvron, Mathilde Caron, Piotr Bojanowski, Matthijs Douze, Armand Joulin, Ivan Laptev, Natalia Neverova, Gabriel Synnaeve, Jakob Verbeek, et al. Xcit: Cross-covariance image transformers. Advances in neural information processing systems, 34, 2021.
[9] Wenhai Wang, Enze Xie, Xiang Li, Deng-Ping Fan, Kaitao Song, Ding Liang, Tong Lu, Ping Luo, and Ling Shao. Pyramid vision transformer: A versatile backbone for dense prediction without convolutions. In Proceedings of the IEEE/CVF International Conference on Computer Vision, pages 568-578, 2021.
[10] Ze Liu, Yutong Lin, Yue Cao, Han Hu, Yixuan Wei, Zheng Zhang, Stephen Lin, and Baining Guo. Swin transformer: Hierarchical vision transformer using shifted windows. In Proceedings of the IEEE/CVF International Conference on Computer Vision, pages 10012-10022, 2021.
[11] Xiangxiang Chu, Zhi Tian, Yuqing Wang, Bo Zhang, Haibing Ren, Xiaolin Wei, Huaxia Xia, and Chunhua Shen. Twins: Revisiting the design of spatial attention in vision transformers. Advances in Neural Information Processing Systems, 34, 2021.
[12] Jianwei Yang, Chunyuan Li, Pengchuan Zhang, Xiyang Dai, Bin Xiao, Lu Yuan, and Jianfeng Gao. Focal attention for long-range interactions in vision transformers. Advances in Neural Information Processing Systems, 34, 2021.
[13] Yue Liu, Yunjie Tian, Yuzhong Zhao, Hongtian Yu, Lingxi Xie, Yaowei Wang, Qixiang Ye, and Yunfan Liu. Vmamba: Visual state space model. arXiv preprint arXiv:2401.10166, 2024.
[14] Dan Hendrycks and Kevin Gimpel. Gaussian error linear units (gelus). arXiv preprint arXiv:1606.08415, 2016.
[15] Sergey Ioffe and Christian Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In International conference on machine learning, pages 448-456. PMLR, 2015.
[16] Albert Gu, Isys Johnson, Karan Goel, Khaled Saab, Tri Dao, Atri Rudra, and Christopher Ré. Combining recurrent, convolutional, and continuous-time models with linear state space layers. Advances in neural information processing systems, 34:572-585, 2021.
[17] Stefan Elfwing, Eiji Uchibe, and Kenji Doya. Sigmoid-weighted linear units for neural network function approximation in reinforcement learning. Neural networks, 107:3-11, 2018.
[18] Ze Liu, Han Hu, Yutong Lin, Zhuliang Yao, Zhenda Xie, Yixuan Wei, Jia Ning, Yue Cao, Zheng Zhang, Li Dong, et al. Swin transformer v2: Scaling up capacity and resolution. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 12009-12019, 2022.
[19] Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. Imagenet: A large-scale hierarchical image database. In 2009 IEEE conference on computer vision and pattern recognition, pages 248-255. Ieee, 2009.
[20] Zhuang Liu, Hanzi Mao, Chao-Yuan Wu, Christoph Feichtenhofer, Trevor Darrell, and Saining Xie. A convnet for the 2020s. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 11976-11986, 2022.
[21] Ilija Radosavovic, Raj Prateek Kosaraju, Ross Girshick, Kaiming He, and Piotr Dollár. Designing network design spaces. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 10428-10436, 2020.
[22] Mingxing Tan and Quoc Le. Efficientnetv2: Smaller models and faster training. In International Conference on Machine Learning, pages 10096-10106. PMLR, 2021.
[23] Kai Han, An Xiao, Enhua Wu, Jianyuan Guo, Chunjing Xu, and Yunhe Wang. Transformer in transformer. Advances in Neural Information Processing Systems, 34:15908-15919, 2021.
[24] Weihao Yu, Mi Luo, Pan Zhou, Chenyang Si, Yichen Zhou, Xinchao Wang, Jiashi Feng, and Shuicheng Yan. Metaformer is actually what you need for vision. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 10819-10829, 2022.
[25] Weijian Xu, Yifan Xu, Tyler Chang, and Zhuowen Tu. Co-scale conv-attentional image transformers. In Proceedings of the IEEE/CVF International Conference on Computer Vision, pages 9981-9990, 2021.
[26] Chun-Fu Richard Chen, Quanfu Fan, and Rameswar Panda. Crossvit: Cross-attention multi-scale vision transformer for image classification. In Proceedings of the IEEE/CVF international conference on computer vision, pages 357-366, 2021.
[27] Zhengzhong Tu, Hossein Talebi, Han Zhang, Feng Yang, Peyman Milanfar, Alan Bovik, and Yinxiao Li. Maxvit: Multi-axis vision transformer. In Computer Vision-ECCV 2022: 17th European Conference, Tel Aviv, Israel, October 23-27, 2022, Proceedings, Part XXIV, pages 459-479. Springer, 2022.
[28] Ali Hatamizadeh, Greg Heinrich, Hongxu Yin, Andrew Tao, Jose M Alvarez, Jan Kautz, and Pavlo Molchanov. Fastervit: Fast vision transformers with hierarchical attention. arXiv preprint arXiv:2306.06189, 2023.
[29] Ali Hatamizadeh, Hongxu Yin, Greg Heinrich, Jan Kautz, and Pavlo Molchanov. Global context vision transformers. In International Conference on Machine Learning, pages 12633-12646. PMLR, 2023.
[30] Yang You, Jing Li, Sashank Reddi, Jonathan Hseu, Sanjiv Kumar, Srinadh Bhojanapalli, Xiaodan Song, James Demmel, Kurt Keutzer, and Cho-Jui Hsieh. Large batch optimization for deep learning: Training bert in 76 minutes. arXiv preprint arXiv:1904.00962, 2019.
[31] Ilya Loshchilov and Frank Hutter. Decoupled weight decay regularization. arXiv preprint arXiv:1711.05101, 2017.
[32] Tsung-Yi Lin, Michael Maire, Serge Belongie, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollár, and C Lawrence Zitnick. Microsoft COCO: Common objects in context. In ECCV, 2014.
[33] Bolei Zhou, Hang Zhao, Xavier Puig, Sanja Fidler, Adela Barriuso, and Antonio Torralba. Scene parsing through ade20k dataset. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 633-641, 2017.
[34] Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross Girshick. Mask r-cnn. In Proceedings of the IEEE international conference on computer vision, pages 2961-2969, 2017.
[35] Tete Xiao, Yingcheng Liu, Bolei Zhou, Yuning Jiang, and Jian Sun. Unified perceptual parsing for scene understanding. In Proceedings of the European Conference on Computer Vision (ECCV), pages 418-434, 2018.
[36] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 770-778, 2016.
[37] Saining Xie, Ross Girshick, Piotr Dollár, Zhuowen Tu, and Kaiming He. Aggregated residual transformations for deep neural networks. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 1492-1500, 2017.