0.前言

    • 发表时间:NeurlPS2022(2022.10.13)

1.摘要

  最近,基于Transformer的网络在语义分割方面取得了令人印象深刻的结果。然而在实时语义分割方面,由于Transformer的计算机制耗时,纯基于cnn的方法仍然在这一领域占主导地位。我们提出了一种高效的实时语义分割双分辨率TransformerRTprorr,它比基于CNN的模型在性能和效率之间实现更好的权衡。为了在GPU这类设备上实现高推理效率,我们的RTformer利用了线性复杂度的GPU友好注意力,并抛弃了多头机制。此外,我们发现交叉分辨率注意通过传播从低分辨率分支获得的高级知识,可以更有效地收集高分辨率分支的全局上下文信息。在主流基准上的大量实验证明了我们提出的RTformer的有效性,它在Cityscapes,CamVid和COCOStuff上取得了最先进的水平,并在ADE20K上显示出了良好的结果。

2.主要贡献

  •提出了一种新的RTFormer块,它在GPU类设备上实现了语义分割任务的性能和效率之间更好的权衡。

  •提出了一种新的网络架构RTFormer,该架构能够在不降低效率的前提下,深度利用注意力,充分利用全局上下文来改进语义分割。

  •RTFormer在Cityscapes、CamVid和COCOStuff上达到了最先进的水平,并在ADE20K上显示出有前景的性能。此外,它为实时语义分割任务的实践提供了一个新的视角。

3.方法

  RTFrormerer块包括两个分支,一个分支使用GPU友好型注意力,另一个使用跨分辨率注意力。

  GPU友好型注意力是由External Attention(EA)衍生而来的。

  EA基于两个外部的,小的,可学习的和共享的存储器,只用两个级联的线性层和归一化层就取代了现有流行的学习架构中的Self-attention,具体来说,通过两个由线性层实现的包含整个数据集特征的记忆单元,维度为Mxd,替换K和V,从而既使得每个样本能与其他样本交互,又减少了计算量。公式表示如下:

  图中H表示头数,EA使用了多头机制,虽然通过共享K'和V'加快了计算速度,但是矩阵乘法操作依旧存在。DN表示double-normalization,分别对行和列进行归一化。

  为了减少多头机制带来的计算量,作者提出了GPU-Friendly Attention,公式为:

  其中Kg,Vg ∈RMg×d,Mg = M × H, GDN表示分组双归一化,将原双归一化的第二次归一化分成H组,EA和GFA对比如下图:

  GFA有两个主要的改进。一方面,它能集成矩阵乘法,这对于gpu类设备来说是相当友好的。得益于此,可以将外部参数的大小从(M, d')扩大到(Mg, d),因此可以调优更多的参数来提高性能。另一方面,利用分组双归一化,在一定程度上保持了多头机制的优越性。为了直观理解,可以认为GFA也生成了H个不同的注意力图来捕捉不同的token之间的关系,但相似度计算涉及了更多的特征元素,且所有的注意力图都对最终的输出有贡献。

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

  其中Xh, Xl分别表示高分辨率分支和低分辨率分支上的特征映射,φ是一组包括splitting,permutation和reshaping的矩阵操作,dh表示高分辨率分支的特征维数。Xc为交叉特征,θ函数由池化层和卷积层组成,Xc的空间大小表示从xl生成的token数。在实验上,只在注意力图的最后一个轴上使用softmax进行归一化,因为当keyvalue不是外部参数时,单个softmax比双归一化性能更好。此外,为了计算性能,这里没有使用多头机制。

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

  RTFrormerer块如下。对于低分辨率,采用GPU友好型注意来捕获高层次的全局上下文。对于高分辨率,使用跨分辨率注意力,将从低分辨率分支学习到的高层全局上下文传播到每个高分辨率像素,并通过stage布局将更有代表性的特征从低分辨率分支提供给交叉分辨率注意力。它从低分辨率分支中提取K和V。此外,用两个3×3卷积层组成FFN。

  RTFrormer体系结构说明。将RTFrormer块放置在最后两个阶段,用粉色块表示,在早期阶段使用卷积块,用蓝色块表示。此外,利用DDRNet的成功经验,添加了一个针对分割头的DAPPM(Deep Aggregation Pyramid Pooling Module)模块。

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

4.结论

  在本文中,我们提出了可以有效地捕获全局上下文,以提高实时语义分割性能的RTFormer。大量的实验表明,我们的方法不仅在通用的实时分割数据集上取得了最新的结果,而且在具有挑战性的一般语义分割数据集上表现出了优越的性能。由于前者的效率,我们希望我们的方法可以鼓励新的实时语义分割设计。一个限制是,虽然我们的RTFormer Slim只有4.8M参数,但边缘设备芯片可能需要更高的参数效率。我们把它留给以后的工作吧。

5.补充

  DAPPM(Deep Aggregation Pyramid Pooling Module)模块结构如下:

  用于进一步从低分辨率的特征图中提取上下文信息。以层次-残差的方式融合不同尺度的上下文信息。

RTFormer: Efficient Design for Real-Time Semantic Segmentation with Transformer概述的更多相关文章

  1. Review of Semantic Segmentation with Deep Learning

    In this post, I review the literature on semantic segmentation. Most research on semantic segmentati ...

  2. Fully Convolutional Networks for semantic Segmentation(深度学习经典论文翻译)

    摘要 卷积网络在特征分层领域是非常强大的视觉模型.我们证明了经过端到端.像素到像素训练的卷积网络超过语义分割中最先进的技术.我们的核心观点是建立"全卷积"网络,输入任意尺寸,经过有 ...

  3. Fully Convolutional Networks for Semantic Segmentation 译文

    Fully Convolutional Networks for Semantic Segmentation 译文 Abstract   Convolutional networks are powe ...

  4. 论文笔记之:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation

    Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation xx

  5. 论文笔记之:Instance-aware Semantic Segmentation via Multi-task Network Cascades

    Instance-aware Semantic Segmentation via Multi-task Network Cascades Jifeng Dai Kaiming He Jian Sun ...

  6. 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)

    Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...

  7. 论文学习:Fully Convolutional Networks for Semantic Segmentation

    发表于2015年这篇<Fully Convolutional Networks for Semantic Segmentation>在图像语义分割领域举足轻重. 1 CNN 与 FCN 通 ...

  8. 论文笔记(3):STC: A Simple to Complex Framework for Weakly-supervised Semantic Segmentation

    论文题目是STC,即Simple to Complex的一个框架,使用弱标签(image label)来解决密集估计(语义分割)问题. 2014年末以来,半监督的语义分割层出不穷,究其原因还是因为pi ...

  9. 论文阅读 | A Curriculum Domain Adaptation Approach to the Semantic Segmentation of Urban Scenes

    paper链接:https://arxiv.org/pdf/1812.09953.pdf code链接:https://github.com/YangZhang4065/AdaptationSeg 摘 ...

  10. 2018年发表论文阅读:Convolutional Simplex Projection Network for Weakly Supervised Semantic Segmentation

    记笔记目的:刻意地.有意地整理其思路,综合对比,以求借鉴.他山之石,可以攻玉. <Convolutional Simplex Projection Network for Weakly Supe ...

随机推荐

  1. JavaScript:严格模式"use strict"

    因为历史遗留问题,JS其实存在很多feature,以及兼容性问题: 所以JS在ES5之后,新增了一个严格模式,以区别于普通模式,用来激活新的特性,使得某些代码的执行准确无误: 如何开启严格模式? 在J ...

  2. texlive安装与vscode环境配置

    环境 系统:windows10 texlive下载 下载地址: 官网:http://tug.org/texlive/ 清华镜像源: https://mirrors.tuna.tsinghua.edu. ...

  3. Ng-Matero v15 正式发布

    前言 Angular 按照既定的发版计划在 11 月中旬发布了 v15 版本.推迟了一个月(几乎每个版本都是这个节奏),ng-matero 也终于更新到了 v15.其实 ng-matero 本身的更新 ...

  4. (三)elasticsearch 源码之启动流程分析

    1.前面我们在<(一)elasticsearch 编译和启动>和 <(二)elasticsearch 源码目录 >简单了解下es(elasticsearch,下同),现在我们来 ...

  5. ★k倍区间【第八届蓝桥杯省赛C++B组,第八届蓝桥杯省赛JAVAB组】

    k倍区间 给定一个长度为 \(N\) 的数列,\(A1,A2,-AN\),如果其中一段连续的子序列 \(Ai,Ai+1,-Aj\) 之和是 \(K\) 的倍数,我们就称这个区间 \([i,j]\)是 ...

  6. Java学习笔记:2022年1月7日

    Java学习笔记:2022年1月7日 摘要:今天的这篇笔记主要是通过讲解基本的JVM结构来理解Java中一些行为的运行机制,进而更加的深入理解Java的运行原理. 目录 Java学习笔记:2022年1 ...

  7. Python 内置界面开发框架 Tkinter入门篇 乙

    本文大概 1685 个字,阅读需花 6 分钟内容不多, 但也花了一些精力如要交流, 欢迎关注我然后评论区留言 谢谢你的点赞收藏分享 这篇文章属于系列文章<Python 内置界面开发框架 Tkin ...

  8. odoo中的字段创建后,不可以编辑

  9. 一幅图像为f=[1 4 7;2 5 8;3 6 9],设kx=1.8,ky=1.3,试采用最邻近插值对其进行放大,写出新图像矩阵。

    一幅图像为f=[1 4 7;2 5 8;3 6 9],设kx=1.8,ky=1.3,试采用最邻近插值对其进行放大,写出新图像矩阵.(请写出解题步骤,并编写程序进行结果验证) 参考 matlab代码如下 ...

  10. DataX二次开发——新增HiveReader插件

    一.研发背景 DataX官方开源的版本支持HDFS文件的读写,并没有支持基于JDBC的Hive数据读写,很多时候一些数据同步不太方便,比如在读取Hive之前先执行一些sql.读取一些Hive的视图数据 ...