SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers论文阅读笔记

作者自己的解读比较精辟(NeurIPS'21) SegFormer: 简单有效的语义分割新思路 - Anonymous的文章 - 知乎 https://zhuanlan.zhihu.com/p/379054782

摘要

作者提出了基于Transformer的语义分割模型SegFormer,其有两个特点:层级式encoder输出多尺度的特征,无需位置编码从而避免对位置编码插值(当测试分辨率与训练不同时,插值会导致性能下降);使用MLP作为decoder聚合来自不同层的信息,轻量且高效。

方法

截屏2023-01-03 17.48.54

Hierarchical Transformer Encoder

Hierarchical Feature Representation。首先对于输入图像,将其打为4×4的patch(小的patch有利于密集预测)。通过设计的Mix Transformer encoder得到一系列不同尺度的特征图H2i+1×W2i+1×Ci,尺度不断变小的同时增大通道数。

Overlapped Patch Merging。 Non-overlapped Patch Merging可以将N×N×3大小的Patch变为一个1×1×C大小的vector,也可以将H4×W4×C1大小的特征变为H8×W8×C2。但这样会丢失Patch的局部连续性。因此作者设计了一种Overlapping Patch Merging方法,可以得到与non-overlapping方法相同大小的输出。

Efficient Self-Attention。 传统的计算self-attention的复杂度与sequence的长度的平方成正比。作者这里采用了Pyramid vision transformer提出的方法,通过比率因子R缩减序列长度:

K^=Reshape(NR,C·R)(K)K=Linear(C·R,C)(K^)

其中K是要缩减的序列。处理后得到的K的大小为NR×C,整个操作的复杂度变为O(N2R)

Mix-FFN。传统的ViT的位置编码的输入图像分辨率都是固定的。如果测试时分辨率改变,需要对位置编码进行插值,可能会导致掉点。作者认为PE对于语义分割任务是非必要的,选择用Mix-FFN替换PE:

xout=MLP(GELU(Conv3×3(MLP(xin))))+xin

实验证明3×3的卷积能提供足够的位置信息。

Lightweight All-MLP Decoder

作者仅仅使用了MLP来构建Decoder,这样做的基础是本文提出的层级式Transformer的有效感受野比CNN encoder的有效感受野更大。这种纯MLP的decoder一共分为四步:首先通过encoder得到的多尺度的特征经过一个MLP层对通道维度进行统一;之后将特征上采样到原图14大小并在通道维度进行concat;再使用一个MLP层融合拼接得到的特征;最后使用一个MLP层处理融合的特征得到大小为H4×W4×Ncls的mask:

截屏2023-01-04 14.00.56

Effective Receptive Field Analysis。 作者这里分析了一下MLP decoder的有效性,与DeepLabV3+进行了对比:截屏2023-01-04 14.11.13

Relationship to SETR

这部分作者对比了一下SETR,突出了SegFormer的优势~

实验

截屏2023-01-04 14.49.31

posted @   脂环  阅读(730)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示
主题色彩