语义分割之RTFormer介绍

语义分割之RTFormer介绍

论文链接:https://arxiv.org/abs/2210.07124
代码地址:https://github.com/PaddlePaddle/PaddleSeg

ViT以来,Transformer作为特征提取器在语义分割领域证明了自己,但是由于Transformer的核心 muti-self-attention 复杂度多高,因此在高实时性要求的场合,一般还是采用基于CNN的方案,百度的RTFormer 则提出了一套基于Transform的高实时性语义分割方案。

在这里插入图片描述
先贴效果,RTformer相比较去年的DDRNet在推理时间相似的条件下有8个点以上的提升,可以说非常惊人.

RTFormer的核心还是希望能够基于Transform高特征提取能力的基础之上,提升实时性,实际上在之前很多文章都提出过类似的尝试,也取得了不错的效果比如SegFormer(self-attention的时候加系数减少矩阵乘法时的计算量,然后解码头直接用FFN),HRFormer等,但是self-attention的复杂度本身还是非常高,为N2C复杂度,同时显存占用过高。效率方面还是不如CNN系列算法。

那么作者主要认为两个原因:

  1. 目前GPU设备对于Transform的支持不友好。
  2. 高分辨率特征图做MSA效果不理想,高分辨率特征的单个特征向量的感受野非常有限(这点感觉有点勉强,如果不考虑实时性直接原图做MSA感受野应该是非常大的。)

解决方案:

RTFormer block

在这里插入图片描述
上图给出了本文所提RTFormer模块示意图,它是一种对偶分辨率模块,它包含两种类型注意力模块。在低分辨率分支,作者采用了GPU友好的注意力模块以捕获高层全局上下文信息,而在高分辨率分支,作者则引入了跨分辨率注意力机制对高层全局上下文信息进行传播扩散,也就是将两个分辨率的特征通过注意力模块进行聚合。

先说第一个:GPU友好的注意力模块(GPU-Friendly Attention)
在这里插入图片描述GPU-Friendly Attention模块结构如上图所示,其中K矩阵和V矩阵为可学习矩阵。
计算公式如下:
在这里插入图片描述

这个点其实很有意思,首先可以看标准MSA的公式:
在这里插入图片描述
输入为FeatureMap,分别通过3个矩阵计算后得到QKV矩阵,然后Q和K的转置矩阵相乘后得到相关性矩阵,除以根号Dk(维度)后softmax计算后归一化到0-1之间得到注意力矩阵,与V矩阵相乘进行加权求和得到最终结果。

也就是说标准的self-attention是有2次矩阵乘法。在输入时通过通道切片得到多个头计算后再cat到一起就是所谓的多头。

而GPU-Friendly Attention(GFA)其实就感觉取巧,因为GPU的矩阵计算很快,GPA不切片然后直接分别与K矩阵计算后求attention。通过这样的方式其实是简化了操作,同时很好地利用了GPU大型矩阵并行速度快的优势(取消多头的结果是精度下降,实际上本文基本上没有和主流的transform算法做比较,只和轻量实时比较)。

Cross-resolution Attention :其实本质上还是借鉴HRnet开始的多分支结构。在不同分支独立执行GAF处理,然后再进行信息交互,高分辨分支由于分辨率太高,矩阵乘法操作耗时过久,为了保证实时性,所以在低分辨率分支进行GFA计算,为更有效的获得全局上下文信息,作者提出了跨分辨率注意力,它可以充分利用从低分辨率分支学到的高层语义信息。该过程可描述如下:
在这里插入图片描述
实验中只在注意图的最后一个轴上采用softmax进行归一化,这里同样也取消了多头

Feed Forward Network: SegFormer与HRFormer中的FFN由两个MLP层与深度卷积构成。GPU计算FFN时速度起不来。为了提升推理速度,作者在FFN中采用了两个卷积且不进行通道维度扩展。

网络结构如下
在这里插入图片描述
可以看出类似DDRNet也是双分支结构,开始通过几个ConvBlock和残差模块聚合特征,然后通过RTFormer block进行特征聚合,最后再通过DAPPM进一步提取多尺度特征,此时输出的是1/8倍size。然后对每个像素点分类。在后三个阶段,高分辨率特征的stride保持为8不变,而低分辨率的stride则分别为16、32、32。

DPPM结构出自DDRNet,DDRNet通过简化HRnet网状结构提出的的双分支结构+DPPM模块在保证分割精度的同时拿到了非常理想的效果,具体的类似Res2Net的Res2级联结构,DPPM通过将FeatureMap进行拆分级联,能够很有效的提取细粒度特征,同时由于做了split所以参数控制的非常好,不会额外增加过多参数。保证了实时性。
在这里插入图片描述

公开数据集的表现:

ADE20K表现:
在这里插入图片描述
虽然Flops比不上Segformer,但是在2080ti上实时性还是比Segformer强很多。

Cityscapes表现
在这里插入图片描述
精度干脆不和Segformer或者TopFormer这类比了。。。。相比去年以前大多数网络效果都好很多。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年3月1日 下午12:26
下一篇 2023年3月1日 下午12:30

相关推荐