AI学习者 · 2022年10月21日

百度提出超快Transformer分割模型RTFormer,180FPS+81mIOU

image.png

最近,基于Transformer的网络在语义分割方面取得了令人印象深刻的成果。然而,对于实时语义分割,由于Transformer的计算机制非常耗时,纯CNN方法仍然是该领域的主流。

本文提出了RTFormer,一种用于实时语义分割的高效双分辨率Transformer,与基于CNN的模型相比,它在性能和效率之间取得了更好的平衡。为了在类似GPU的设备上实现高推理效率,RTFormer利用具有线性复杂性的GPU Friendly Attention,并放弃了多头机制。

此外,作者发现,通过传播从低分辨率分支学到的高层次知识,跨分辨率注意力更有效地为高分辨率分支收集全部上下文信息。

对主流基准测试的大量实验证明了提出的RTFormer的有效性,它在CityscapesCamVidCOCOStuff上达到了最先进的水平,并在ADE20K上显示出良好的结果。

1、简介

语义分割是一项基本的计算机视觉任务,通常作为自主驾驶、移动应用、机器人感知等领域的关键感知模块。随着这些应用的发展,实时语义分割的需求越来越强烈。现有的实时分割方法主要侧重于利用CNN架构,包括通过手工设计高效主干网络和解码器,以及探索神经架构搜索方法,以在准确性和效率之间找到更好的平衡。到目前为止,这些优秀的作品已经取得了显著的进步。

近年来,视觉Transformer因其强大的视觉识别能力而备受关注。在继承它们的基础上,提出了一系列基于Transformer的体系结构,并在一般的语义分割任务中表现出很好的性能。与基于CNN的网络相比,这些基于Transformer的架构的主要区别在于大量使用自注意力,而自注意力擅长捕获远程上下文信息,这在语义分割中是必不可少的。因此,作者认为注意力结构在实时语义分割任务中也应该有效。

但到目前为止,只有少数作品探索了注意力在这一领域的应用,目前的SOTA水平仍然由基于CNN的架构主导。作者认为,在实时环境中应用注意力的主要障碍可能来自以下两个方面。

  • 一是现有的大多数注意力类型的计算特性对于类似GPU的设备来说都不是很容易推理的,例如二次复杂度和多头机制。二次复杂度在处理高分辨率特征时引入了巨大的计算负担,特别是在语义分割等密集预测任务中。尽管有几部作品缩小了keyvalue的大小,但二次复杂性的特性仍然存在。而多头机制将矩阵乘法拆分为多个组,这使得注意力操作在类似GPU的设备上耗费时间,类似于执行组卷积的情况。
  • 另一个原因是,仅关注高分辨率特征图本身可能不是用高级别语义信息捕获远程上下文的最有效方法,因为来自高分辨率特征图的单个特征向量的感受野有限。

本文提出了一种新的Transformer块,名为RTFormer块,如图2所示,其目的是在具有Transformer的类似GPU的设备上实现性能和效率之间的更好平衡。对于低分辨率分支,采用了新提出的GPU Friendly Attention,该注意力源自External Attention。它继承了External Attention的线性复杂性特性,并通过丢弃矩阵乘法操作中的通道分裂,缓解了类GPU设备的多头机制的弱点。相反,它扩大了外部参数的数量,并将External Attention提出的双范数运算中的第二个归一化分解为多个组。这使得GPU Friendly Attention能够在一定程度上保持多头机制的优势。对于高分辨率分支,采用交叉分辨率注意力,而不是仅在高分辨率特征本身内进行注意力。此外,与多分辨率融合的并行公式不同,作者将两个分辨率分支排列成阶梯布局。因此,通过辅助从低分辨率分支中学习到的高级别全局上下文信息,可以更有效地增强高分辨率分支。

image.png
image.png

基于提出的RTFormer块,构建了一个新的实时语义分割网络,称为RTFormer。为了了解足够的局部上下文,RTFormer仍然在早期阶段使用卷积块,并在最后两个阶段放置RTFormer块。通过大量的实验发现RTFormer可以更有效地利用全局上下文,并比以前的工作取得更好的折衷效果。图1显示了RTFormerCamVid上其他方法的比较。最后,我们将RTFormer的贡献总结为以下三个方面:

  1. 提出了一种新的RTFormer块,它在类GPU设备上实现了语义分割任务的性能和效率之间的更好平衡。
  2. 提出了一种新的网络体系结构RTFormer,它可以充分利用全局上下文,通过深度利用注意力而不损失效率来改进语义分割。
  3. RTFormerCityscapesCamVidCOCOStuff上达到了最先进的水平,在ADE20K上表现良好。此外,它为实时语义分割任务的实践提供了一个新的视角。

2、本文方法

2.1、RTFormer block

RTFormer块是继承多分辨率融合范式的双分辨率模块。与之前的工作相比,RTFormer块由两种类型的注意力及其前馈网络组成,并按阶梯式布局排列,如图2所示。在低分辨率分支中使用GPU Friendly Attention来捕获高级全局上下文。在高分辨率分支中,引入了交叉分辨率注意力,将从低分辨率分支中学习到的高级别全局上下文广播到每个高分辨率像素,并使用阶梯式布局将低分辨率分支的更具代表性的特征引入交叉分辨率注意力。

image.png

1、GPU-Friendly Attention

image.png
image.png
image.png

2、Cross-resolution Attention

多分辨率融合已被证明对密集预测任务是有效的。而对于多分辨率架构的设计,可以直观地将GFA独立应用于不同分辨率的分支,并在执行卷积模块或注意力模块后交换特征。但在高分辨率分支中,像素更关注局部信息,而非高级别的全局上下文。因此,作者认为直接关注高分辨率特征图来学习全局背景是不够有效的。为了更有效地获取全局上下文,作者提出了一种交叉分辨率注意力,旨在充分利用从低分辨率分支中学习到的高层语义信息。如图2所示,与GFA不同,高分辨率分支采用交叉分辨率注意力来收集全局背景。交叉分辨率注意力的计算表示为:

image.png

在实验上,只在注意力图的最后一个轴上使用softmax进行归一化,因为当keyvalue不是外部参数时,单个softmax比双重归一化性能更好。特别是,为了在类似GPU的设备上进行快速推理,这里也放弃了多头机制。

3、Feed Forward Network

在以前的基于Transformer的分割方法中,前馈网络(FFN)通常由两个MLP层和一个深度3×3卷积层组成,其中深度3×3卷积用于补充位置编码或增强局部性。此外,两个MLP层将隐藏维度扩展为输入维度的2到4倍。这种类型的FFN可以用相对较少的参数获得更好的性能。但在应该考虑类GPU设备上的延迟的情况下,FFN的典型结构不是很有效。为了平衡性能和效率,在RTFormer块的FFN中采用了两个3×3卷积层,而没有进行维数扩展。与典型的FFN配置相比,它显示了更好的结果。

2.2、RTFormer

image.png

1、Backbone Architecture

为了提取高分辨率特征图所需的足够的局部信息,将卷积层与RTFormer块相结合来构造RTFormer。具体来说,让RTFormer从一个由两个3×3卷积层组成的干块开始,用几个连续的基本残差块组成前两个阶段。然后,从第3阶段开始,使用双分辨率模块,实现高分辨率和低分辨率分支之间的特征交换。对于最后三个阶段的高分辨率分支,特征stride保持为8不变,而对于低分辨率分支,则特征stride分别为16、32、32。特别是,将双分辨率模块安排为阶梯式布局,以借助低分辨率分支的输出增强高分辨率特征的语义表示。最重要的是,用提出的RTFormer块构造了stage4stage5,如图2所示,用于有效的全局上下文建模,而stage3仍然由基本残差块组成。

2、Segmentation Head

对于RTFormer的分割头,在低分辨率输出特征之后添加了一个DAPPM模块。然后将DAPPM的输出与高分辨率特征融合,得到stride为8的输出特征图。最后,将该输出特征传递到像素级分类头,用于预测密集语义标签。分类头由3×3卷积层和1×1卷积层组成,隐藏特征维数与输入特征维数相同。

3、Instantiation

image.png

RTFormer SlimRTFormer Base实例化了RTFormer的架构,详细配置记录在表1中。对于通道数和块数,每个数组包含5个元素,分别对应于5个阶段。特别是,具有两个数字的元素对应于双分辨率级。例如,64/128表示通道数对于高分辨率分支为64,对于低分辨率分支为128。而1/2表示高分辨率分支的基本卷积块数为1,低分辨率分支为2。

值得注意的是,块编号数组中的最后两个元素表示RTFormer块的数量,对于RTFormer SlimRTFormer Base,它们都是1。RTFormer SlimRTFormer Base的交叉特征空间尺寸分别设置为64(8×8)和144(12×12)。

3、实验

3.1、消融实验

1、不同形式注意力的对比

image.png

为了验证提出的注意力的有效性,将RTFormer块中使用的注意力替换为不同类型和组合。如表5a所示,给出了多头自注意力、多头external attentionGPU-Friendly attention交叉分辨注意力的不同组合的结果。

例如,“GFA+CA”意味着在低分辨率分支中使用GFA,在高分辨率分支中则使用CA。此外,通过M=d×r调整了多头外部注意中的超参数M,其中r是一个缩减率。可以发现,GPU-Friendly attention 优于所有多头外部注意设置,并且在M=d时比最佳注意设置更快,同时,GPU-Friendly attention 比多头自注意力更有效,性能相当。

这表明,在类似GPU的设备上,GPU-Friendly attention多头自注意力多头external attention在性能和效率之间取得更好的平衡。当引入交叉分辨率注意力时,性能会进一步提高,而FPS仅下降不到2。

2、不同形式的FFN的对比

image.png

表5b显示了由两个MLP层和一个3×3深度卷积层组成的典型FFN的结果,以及提出的包含两个3×3卷积层的FFN。结果表明,提出的FFN不仅在mIoU上,而且在FPS上都优于典型的FFN。这表明提出的FFN更适合于应该考虑类GPU设备延迟的情况。

3、分组双重标准化中组数的影响

image.png

研究了在使用GPU Friendly Attention对两个分支进行分组双重标准化的情况下,分组数目的影响。表5c显示了不同配置的结果。例如,“8+2”表示在低分辨率分支中使用8个组,在高分辨率分支中则使用2个组。特别是,当组的数目设置为1时,分组的双重归一化会退化为原始的双重归一化。在这里,当组数为8和2时,可以获得最佳mIoU,这说明分组的双重归一化比原始的双重归一化性能更好。值得注意的是,改变分组双重归一化中的组数并不影响推理效率,这使得GPU Friendly Attention能够在组数较大时保持较高的FPS。

4、交叉特征的空间大小对交叉分辨率注意的影响

image.png

作者还研究了交叉分辨率注意力中交叉特征的空间大小,包括应用6×6、8×8和12×12。如表5d所示,根据FPSmIoU之间的权衡,RTFormer Slim的交叉特征的8×8空间大小是最佳的。在一定程度上,这表明与高分辨率特征尺寸相近的交叉特征的空间尺寸是合适的,因为RTFormer Slim的高分辨率特征维数为64,等于8×8。

3.2、泛化性分析

image.png

表3显示了关于ADE20K的结果。RTFormer Base实现了42.1%的卓越mIoU和71.4FPS,优于所有其他方法。例如,与DDRNet-23-Slim相比,RTFormer Slim实现了更好的mIoU 36.7%,并且保持了几乎相同的速度。图6显示了ADE20K验证集的定性结果。与DDRNet-23相比,RTFormer显示了更好的细节和上下文信息。总之,这些结果表明,RTFormer在广义场景中的实时语义分割方面也显示出非常有前景的性能。在COCOStuff上,如表4所示,RTFormer Base以143.3 FPS的速度达到35.3 mIoU,以相当的推理速度超过DDRNet-23约3%,并创下了新的一流水平。

3.3、SOTA对比

image.png

image.png

3.4、分类实验对比

image.png

4、参考

[1].RTFormer: Efficient Design for Real-Time Semantic Segmentation with Transformer.

作者: 小书童
文章来源:集智书童

推荐阅读

更多嵌入式AI干货请关注 嵌入式AI 专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18801
内容数
1347
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息