多尺度学习是语义分割的核心。作者可视化了典型多尺度表示的有效感受野(ERF),并指出了在学习它们时存在的两个风险:尺度不足和场失效。作者提出了一种新颖的多尺度学习器,变窗关注(VWA),以解决这些问题。 VWA利用局部窗关注(LWA)并将LWA解耦为 Query 窗和上下文窗,允许 Query 在不同尺度下学习表示时上下文窗的尺度变化。然而,将上下文变化到大规模窗口(扩大比率)会显著增加内存占用和计算成本(比LWA大倍)。 作者提出了一种简单但专业的重新缩放策略,在不影响性能的情况下消除额外的诱导成本。因此,VWA使用与LWA相同的成本来克服局部窗口的感受限制。 此外,依赖于VWA并采用各种MLP,作者引入了一种多尺度解码器(MSD),VWFormer,以改善用于语义分割的多尺度表示。VWFormer在效率上与最计算友好的MSD(如FPN和MLP解码器)竞争,但性能远胜于任何MSD。 在ADE20K性能方面,使用UPerNet一半的计算量,VWFormer的mIoU比UPerNet高出1.0%-2.5%。 在额外的开销很小,约10G FLOPs的情况下,装备了VWFormer的Mask2Former提高了1.0%-1.3%。
在语义分割中,有两种典型的学习多尺度表示的方法。第一种涉及应用具有可变感受野的滤波器,经典技术如孔洞卷积(Chen等人,2018)或自适应池化(Zhao等人,2017)。通过调整超参数,如膨胀率和池化输出大小,网络可以改变感受野以在多个尺度上学习表示。
第二种方法利用分层 Backbone 网(Xie等人,2021;Liu等人,2021,2022)来学习多尺度表示。典型的分层 Backbone 网通常分为四个不同 Level ,每个 Level 在具有不同大小的特征图上学习表示。对于语义分割,多尺度解码器(MSD)(Xiao等人,2018;Kirillov等人,2019;Xie等人,2021)融合来自每个 Level (即多个尺度)的特征图,并输出多尺度表示的聚合。
本质上,第二种范式与第一种相似,可以从滤波器感受野变化的角度来理解。随着网络的加深和特征图大小的逐渐缩小,分层 Backbone 网的不同阶段具有不同的感受野。因此,当MSD用于语义分割时,它们自然会聚合由具有多个感受野的滤波器学习的表示,这体现了分层 Backbone 网的多级输出。
为了深入了解这些范式的感受野,它们的等效感受野(ERF)(Luo等人,2016)被可视化,如图1a-e所示。对于第一种范式,分析了像ASPP(应用孔洞卷积)Chen等人(2018)和PSP Zhao等人(2017)(应用自适应池化)等方法。对于第二种范式,对ConvNeXt(Liu等人,2022)、Swin Transformer Liu等人(2021)和SegFormer(MiT)Xie等人(2021)的多级特征图进行了ERF可视化。
基于这些可视化,可以观察到学习多尺度表示面临两个问题。一方面,存在尺度不足的风险,例如缺少全局信息(Swin Transformer、ConvNeXt、ASPP),缺少局部信息(PSP),或只有局部和全局信息而缺少其他尺度(SegFormer)。另一方面,在感受野的空间范围内存在未激活的区域,如在ASPP、Swin Transformer和SegFormer的低 Level 层中观察到的。作者将这称为“场失活”。
为了解决这些问题,探索了一种新的学习多尺度表示的方法。本研究重点探讨局部窗口注意力(LWA)机制是否可以扩展为一种关系滤波器,其感受野可变,以满足在语义分割中学习多尺度表示的规模规定,同时保留LWA的效率优势。提出的方法是可变窗口注意力(VWA),它学习多尺度表示,不会出现尺度不足和领域失效(见图1f)。具体来说,VWA将LWA解耦为 Query 窗口和上下文窗口。 Query 窗口仍然位于局部窗口上,而上下文窗口扩大以覆盖更多周围区域,从而改变 Query 的感受野。由于这种扩大导致了相当大的开销,损害了LWA的高效率(是LWA的倍),作者分析了额外成本产生的原因,并特别设计了预缩放原则、密集重叠的 Patch 嵌入(DOPE)和复制移位填充模式(CSP)以消除它,而不牺牲性能。
更值得注意的是,针对语义分割,作者提出了一种多尺度解码器(MSD),VWFormer,采用VWA并融合了MLP,功能包括多层聚合和低级增强。为了证明VWFormer的优越性,作者将其与各种 Backbone 网络(如ConvNeXt、Swin Transformer、SegFormer)配对,并在包括ADE20K(Zhou等人,2017年)、Cityscapes(Cordts等人,2016年)和COCOSQtuff-164k(Caesar等人,2018年)等数据集上,与传统MSD如FPN(Lin等人,2017年)、UperNet(Xiao等人,2018年)、MLP解码器(Xie等人,2021年)和形变注意力(Zhu等人,2020年)进行比较。实验表明,VWFormer一致地带来了性能和效率的提升。最大的改进可以达到mIoU增加和FLOPs减少,这归功于VWA在LWA的成本下纠正了多级特征图的多尺度表示。
多尺度学习器被认为是利用可变过滤器来学习多尺度表示的范例。第1节介绍了ASPP和PSP。此前还提出了更多用于语义分割的多尺度学习器。这些工作可以分为三类。第一类涉及使用扩张卷积,例如ASPP,并改进其特征融合方式和扩张卷积的效率(Yang等人,2018;Chen等人,2018)。第二类涉及扩展自适应池化,将PSP融入其他类型的表示学习器中(He等人,2019a)(He等人,2019b)。然而,正如第1节分析的那样,这些方法的核心机制,即扩张卷积和自适应池化,存在尺度不足和场失效的问题。
第三类使用了与作者的类似的想法,通过计算 Query 与不同尺度上下文之间的注意力矩阵,以关系的方式学习用于语义分割甚至图像识别的多尺度表示。在Yuan等人(2018)和Yu等人(2021)的情况下,他们的核心机制几乎相同。至于Zhu等人(2019)、Yang等人(2021)和Ren等人(2022),这三者之间的差异也是微不足道的。作者简要介绍Yuan等人(2018)和Zhu等人(2019),可视化它们的ERFs并分析它们的问题(更多详细信息请参见图7和附录B)。总之,所有现有的以关系方式(也称为多尺度注意力)的多尺度学习器都没有解决作者发现的问题,即尺度不足和场失效。
多尺度解码器(MSD)融合了由分层 Backbone 网络学习到的多尺度表示(多级特征图)。最具代表性的MSD之一是特征金字塔网络(FPN)(Lin et al., 2017),最初设计用于目标检测。它也被应用于图像分割,通过使用其最低 Level 的输出,甚至在SOTA语义分割方法如MaskFormer (Cheng et al., 2021)中也是如此。Lin et al. (2017)还催生了一些方法,如(Kirillov et al., 2019)和(Huang et al., 2021)。在Mask2Former (Cheng et al., 2022)中,FPN与可变形注意力(Zhu et al., 2020)相结合,允许不同 Level 特征图之间的关系交互,取得了更高的结果。除了FPN及其衍生物外,其他广泛使用的方法还包括UperNet (Xiao et al., 2018)和SegFormer提出的轻量级MLP解码器。
总的来说,所有这些方法都聚焦于如何从分层 Backbone 网络融合多尺度表示,或者使它们能够相互交互。然而,作者的分析指出,将分层 Backbone 网络的多级特征图称为多尺度表示存在“尺度不足”和“场失活”问题。VWFormer进一步学习了具有不同尺度变化和规则ERFs的多尺度表示,在性能上超越了现有的MSD,同时消耗与FPN和MLP解码器这样的轻量级结构相同的计算预算。
局部窗口注意力(LWA)是多头自注意力(MHSA)的一种高效变体,如图1(a)所示。假设输入是一个2D特征图,表示为 ,第一步是将它 Reshape 为局部窗口,可以表示为:
其中 是一个Pytorch(Paszke等人,2019)函数(更多信息见Pytorch官方网站)。然后MHSA仅在局部窗口内操作,而不是在整个特征上。
为了展示局部窗口注意力的效率,作者列出了其计算成本,与全局特征上的MHSA(Global Attention)的计算成本进行比较:
注意,第一项是关于线性映射的,即 Query 、键、值和输出,第二项是关于注意力计算的,即注意力矩阵的计算和值的加权求和。在高维特征空间中, 小于 并且远小于 。因此,LWA中注意力计算的成本远低于线性映射的成本,而线性映射的成本又远低于GA中注意力计算的成本。
此外,下面列出了GA和LWA的内存占用,显示了LWA对硬件的友好性。注意力机制的中间输出包括 Query 、键、值和输出,这些都是线性映射的输出,以及来自注意力计算的注意力矩阵。
计算比较的结果仍然有效。在GA中,第二项远大于第一项,但在LWA中,第二项小于第一项。
在LWA中,方程1输出的会关注自身。在VWA中, Query 仍然是,但上下文由表示,生成可以表述为:
从窗口滑动的角度来看, Query 生成是一个大小为的窗口,以的步长在上滑动,而上下文生成是一个更大的窗口,仍然以的步长在上滑动。是变化比例,在一种VWA中是一个常数。如图2所示,当为1时,VWA变为LWA, Query 和上下文在局部窗口中纠缠在一起。但当时,随着上下文的扩大, Query 可以看到比局部窗口场更宽的范围。因此,VWA是LWA的一个变体,而LWA是VWA的一个特例,其中VWA中的。
从图1(b)的说明中,VWA的计算成本可以通过以下方式计算:
从方程2减去方程5,可以量化由扩大上下文 Patch 引起的额外计算成本:
对于VWA的内存占用,可以根据图1(b)计算:
从方程3减去方程7,额外的内存占用为:
显然,窗口越大,问题越具挑战性。首先,LWA中注意力计算效率优势(第二项)不再成立。其次,线性映射,即第一项,产生了更多的计算预算,更具挑战性,因为据作者所知,现有关于使注意力机制高效的工作很少努力减少线性映射及其映射输出的计算成本和内存占用。接下来,作者将介绍如何解决由变化上下文窗口引起的困境。
通过分析等式6和等式8,消除额外成本和内存占用的最直接方法是将大上下文 重新缩放至与局部 Query 相同的大小,这意味着将 设置为 ,从而使等式6和等式8都变为 。
总之,有必要澄清使用这一想法处理额外计算成本与额外内存占用的区别。如图1(b)所示,由扩大窗口产生的中间结果(即等式4的输出)已经占据了 的内存。因此,生成大上下文后重新缩放是不起作用的,正确的步骤应该是在运行等式4之前重新缩放特征 。作者将这一原则称为预缩放原则。
从预缩放原则开始解决问题。提出了一种新的特征缩放范式,即密集重叠 Patch 嵌入(DOPE)。这种方法与在ViT和HVT中广泛应用的 Patch 嵌入(PE)不同,因为它不改变空间维度,只改变维度。具体来说,对于 ,在它上面应用等式4之后,输出的形状为:
这产生了 的内存占用。相反,DOPE首先将 的维度从 降低到 ,然后应用等式4,得到形状为:
这产生了与 相同的 的内存占用,消除了额外的内存占用。
由于PE通常使用卷积层实现,因此DOPE如何重新缩放特征可以表示为:
因此,DOPE中的“密集重叠”一词描述了卷积核的密集排列模式,特别是当 较大时,过滤每一个位置。DOPE引入的计算成本可以通过以下方式计算:
这等同于进行一次线性映射所需的计算预算。
然而,由DOPE处理的上下文窗口 不能被 Query 窗口 注意到。作者选择PE来下采样上下文并增加其维度至新的上下文窗口 。PE函数可以表述为:
位置编码(PE)是一个卷积操作:
对一个上下文窗口应用PE的计算成本是:
对于来自DOPE的所有上下文窗口,总共有个,计算成本变为:
这仍然与只有一个线性映射相同。
在应用了如图2c所示的重新缩放策略后,可以清楚看到VWA的内存占用与方程3中的相同,不受上下文扩大的影响。注意力计算成本也与方程2中的相同。对于DOPE,VWA使用一次,因此将一个线性映射计算添加到中。对于PE,VWA在将键和值从DOPE的输出映射时使用两次,替换原来的键和值映射。所以VWA的计算成本仅比LWA增加——一个的线性映射:
方程4中的填充模式是零填充。然而,在可视化VWA的注意力图时,作者发现角落和边缘的上下文窗口的注意力权重倾向于有相同的值,这使得注意力坍塌。原因是太多的相同零导致在Softmax激活期间平滑概率分布。如图3所示,为了解决这个问题,作者提出了复制移位填充(CSP),相当于使大窗口的覆盖向特征移动。具体来说,对于左右边缘,经过CSP后的是:
其中表示Pytorch函数,沿着维度连接特征元组。基于通过方程17获得的,CSP填充顶部和底部边缘可以表述为:
二维坐标 由以下内容通过维度为3的拼接操作得到: 中 [...,(R+1)P/2:RP,] 的部分, 自身,以及 中 [...,- RP:-(R+1)P/2,:] 的部分。
多层聚合如图4所示,VWFormer首先为了效率考虑,不是将所有四个 Level 的特征图连接起来,而是将最后三个阶段的特征图连接起来,通过对最后两个阶段(和)进行上采样,使它们的大小与第二阶段的特征图()相同,然后用一个线性层()转换拼接后的特征以减少通道数,结果用表示。
多尺度表示为了学习多尺度表示,三个具有不同比例的VWA机制并行作用于多层聚合的输出上。每个VWA的局部窗口大小设置为,取决于的空间大小。此外,短路径(确切地说是一个线性映射层)完善了非常局部的尺度。VWFormer的MLP由两层组成。第一层()是多尺度表示的线性减少。
低层次增强MLP的第二层()为第一层的输出赋予了低层次增强(LLE)。LLE首先使用输出通道数较少的线性层()将最低 Level 的维度降低到48。然后被上采样到与的输出相同的大小并通过与之融合,输出。
主要结果部分开始。
SegFormer采用MixFormer(MiT)作为基础网络,并设计了一个轻量级的MLP解码器作为MSD,用以解码MixFormer的多尺度表示。为了证明VWFormer通过VWA改进多尺度表示的有效性,作者将SegFormer中的MLP解码器替换为VWFormer。表1展示了参数数量、FLOPs、内存占用和mIoU的数据。在所有基础网络MiT变体(B0B5)中,VWFormer在每项指标上都优于MLP解码器。
在最近的研究中,UperNet通常被用作多尺度检测(MSD)来评估所提出的视觉 Backbone 网络在语义分割中的性能。在多尺度融合之前,UperNet仅在最顶层特征图上利用PSPNet(存在尺度不足问题)来学习多尺度表示。相比之下,VWFormer可以预先修正每个融合的多 Level 特征图的增强响应场(ERFs)。表2显示,VWFormer一致地使用更少的预算来达到更高的性能。
MaskFormer和Mask2Former引入了 Mask 分类机制进行图像分割,但也依赖于MSDs。MaskFormer使用FPN作为MSD,而Mask2Former通过将可变形注意力(Zhu等人,2020)整合到FPN中,使多级特征图具备特征交互。表3显示,VWFormer与FPN一样高效,并在mIoU上实现了从到的提升。结果还表明,VWFormer在计算成本较低的情况下,性能优于可变形注意力。VWFormer与可变形注意力的结合进一步将mIoU提升了-。这表明VWFormer仍然可以通过可变形注意力提升经过交互的多 Level 特征图的性能,突显了其通用性。
消融研究的开始部分。
表4展示了移除VWFormer中任何VWA时的性能下降。这些结果表明,每个尺度都是至关重要的,这表明多尺度学习中_尺度不足_是致命的。同时,作者添加了一个上下文窗口的VWA分支,这实际上就是LWA,然后用它替换了的VWA。结果表明,在VWFormer中LWA是不必要的,因为VWFormer中的短路径(卷积)可以提供非常局部的感受野,如图1f中可视化所示。
表5比较了以下情况:不进行重缩放的VWA,如图2b所示的使用简单重缩放方法,以及作者提出的专业策略。VWA原本消耗的计算量和不占用的内存是不可承受的。应用简单的缩放策略节省了一些计算量和内存占用,但同时引入了贴片嵌入(PE),增加了参数的数量。作者提出的策略不仅消除了由变化上下文窗口引入的计算和内存,而且只增加了少量的参数。此外,它也没有为了效率而牺牲性能。
表6的左表显示,使用零填充来获取上下文窗口会导致mIoU比应用CSP来获取上下文窗口低0.8%。这种性能损失与移除VWA的一个尺度一样严重,表明了注意力坍缩的危害以及在作者提出的可变窗口方案中应用CSP的必要性。
表6的右侧分析了低 Level 增强(LLE)。首先,移除LLE会使mIoU降低。从图1中可以看出,最低 Level 的特征图具有独特的感受性,非常局部或全局,为VWFormer的多尺度学习添加了新的尺度。也评估了FPN作为替代方案,结果显示FPN既不比LLE更强,也不比LLE更经济。
图1的ERF可视化是在许多ADE20k验证图像上平均得到的。为了进一步证实所提出的问题,图5对比分析了segformer和VWFormer在特定ADE20K验证图像上的ERFs。这种新的可视化可以帮助理解现有多尺度表示的感受性问题,并展示了VWFormer多尺度学习的优势。
图4(a)展示了一处带有岩石的瀑布。作者的VWFormer的结果标记了大多数岩石,但SegFormer的结果在区分“岩石”和“山脉”方面存在困难。从它们的ERFs对比来看,VWFormer有助于 Query 理解复杂场景,甚至在整张图像中比SegFormer更清晰地描绘出瀑布和岩石。
图4(b)展示了一个被转椅包围的会议室。作者的VWFormer的结果标记了所有转椅,但SegFormer的结果将两把转椅误标为普通椅子。从它们的ERFs对比来看,当VWFormer推理位置时,它结合了桌子对面红框内转椅的上下文。但由于尺度问题,SegFormer忽视了学习这一上下文信息。
图4(c)展示了一座白色的摩天大楼。作者的VWFormer的结果正确地标记了它,但SegFormer的结果将建筑物的一部分误标为“房屋”类别。从它们的ERFs对比来看,VWFormer在红框内的感受性比SegFormer更清晰,表明这个物体是一座教堂风格的建筑。
以下是针对图1中可视化方法的问题进行的详细分析。为了更好的可读性,将图1复制并粘贴在这里作为图6。
ASPP 采用了一系列合理的固定扩张率的扩张卷积来学习多尺度表示。然而,如图6a所示,最大的感受野并没有捕捉到期望的表示尺度。这是因为参数设置是手动的,并不适应图像大小。当训练和测试样本具有不同大小,如在应用测试时间增强(TTA)等策略时,这种适应性的缺乏会更加严重。此外,当感受野较大时,来自扩张部分贡献为零,导致较大感受野内的子区域被激活。
PSP 通过调整超参数——自适应池化的输出大小,应用不同尺度的池化滤波器来学习多尺度表示。然而,如图6b所示,输出大小为1和2的感受野大小完全相同,输出大小为3和6的也是如此。这是因为超级小的输出需要插值到原始特征大小。在插值过程中,如果一个位置不需要插值来获取其值,其感受野保持不变。但是,如果需要插值,感受野可能会受到其他位置的影响。
ConvNeXt 随着网络的加深,各阶段的感受野大小从小到大变化。这是因为多个7x7卷积的堆叠可以模拟更大的卷积核。然而,如图6c所示,与ASPP和PSP相比,ConvNeXt中四个尺度的最大感受野仅覆盖了原始图像的一半,并且没有捕捉到全局表示,因为7x7卷积仍然具有局部性。此外,很难区分第三阶段和第四阶段的感受野尺度。
Swin Transformer 的基本层由局部窗口注意力机制和移位窗口注意力机制组成。其四个阶段的特征图显示出感受野大小从小到大的增加。Swin Transformer也面临着有效学习全局表示的挑战。此外,由于局部窗口的移位操作,其感受野形状是不规则的,如图6d所示,导致感受野范围内的子区域被激活。
SegFormer的基本层结构复杂,融入了局部窗口注意力、全局池化注意力和3x3卷积。因此,很难想象其四级特征图的感受野形状和大小。图6e表明,SegFormer在低层(即第一和第二层)学习全局表示,但仍然受到感受野范围内未激活子区域的困扰。在更高层(即第三和第四层),它们学习更局部的表示,但它们的领域范围非常相似。因此,SegFormer也遇到了_尺度不足_的问题,因为它只能学习全局和局部表示。
图6(a)可视化了ISANet(Yuan等人,2018年)的ERF图,仅学习局部和全局表示,而忽略了其他尺度。因此,ISANet的_尺度不足_问题非常明显。局部表示是通过局部窗口注意力机制学习的,而全局表示是通过将来自所有窗口的像素交错排列以创建包含每个原始局部窗口像素的新窗口来获得的。然后,在新窗口上应用窗口注意力机制。ERF图显示,由于交错,它们的感受野并不连续,这表明ISANet也遇到了场失活。
Zhu等人(2019年)使用自适应池化以PSP方式捕捉多尺度特征。然后它们被原始特征作为 Query 一起关注。感受野的尺度是单一的全球尺度,因为由自适应池化过滤的每个上下文都来自整个特征图。因此,对于ANN来说,尺度不足的问题也非常明显。图6(b)显示激活并没有均匀地扩散到全球范围,底部区域的激活不足。因此,尺度不足和场失活都是ANN及其相关方法的问题。
表7的底三行从实证上比较了作者的方法与ISANet和ANN。VWFormer在不同 Backbone 网络和基准测试中一致地大幅超越它们。
从表7中,作者可以发现VWFormer为两个数据集上的ResNet50和ResNet101带来了最佳结果。具体来说,在Cityscapes上,VWFormer使用ResNet50达到的mIoU。
表8简要分析了作者的方法与其他在其它赛道上创建的最先进的语义分割方法的对比。"表8的左部"显示了与HRViT Gu等人(2022年)的比较,HRViT是一个具有复杂多尺度学习的分层视觉 Transformer (HVT),最初与来自SegFormer的MLP解码器配对作为MSD。此外,用作者的VWFormer替换了MLP解码器。性能的提升是显著的,支持VWFormer改进多尺度表示的能力。
中部比较了VWFormer与SegViT-V2 Zhang等人(2023年)。SegViT-V2是专门为ViT(或归类为普通视觉 Transformer )设计的解码器。这里VWFormer首次与普通视觉 Transformer 配合使用。改进表明VWFormer不仅在HVT中有效,而且在普通 Backbone 架构中也很强大。
右部显示了与ViT-Adapter Chen等人(2022年)的比较,这是一种用于提高ViT在密集预测任务上性能的预训练技术。与许多在视觉 Transformer 上使用UperNet作为语义分割的MSD的工作一样,ViT-Adapter最初也是与UperNet配对的。此外,用VWFormer替换了UperNet,实现了相当大的性能提升。
[1].Multi-Scale Representations by.