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聚合来自不同层的信息,轻量且高效。
方法
Hierarchical Transformer Encoder
Hierarchical Feature Representation。首先对于输入图像,将其打为的patch(小的patch有利于密集预测)。通过设计的Mix Transformer encoder得到一系列不同尺度的特征图,尺度不断变小的同时增大通道数。
Overlapped Patch Merging。 Non-overlapped Patch Merging可以将大小的Patch变为一个大小的vector,也可以将大小的特征变为。但这样会丢失Patch的局部连续性。因此作者设计了一种Overlapping Patch Merging方法,可以得到与non-overlapping方法相同大小的输出。
Efficient Self-Attention。 传统的计算self-attention的复杂度与sequence的长度的平方成正比。作者这里采用了Pyramid vision transformer提出的方法,通过比率因子R缩减序列长度:
,
其中K是要缩减的序列。处理后得到的K的大小为,整个操作的复杂度变为。
Mix-FFN。传统的ViT的位置编码的输入图像分辨率都是固定的。如果测试时分辨率改变,需要对位置编码进行插值,可能会导致掉点。作者认为PE对于语义分割任务是非必要的,选择用Mix-FFN替换PE:
实验证明的卷积能提供足够的位置信息。
Lightweight All-MLP Decoder
作者仅仅使用了MLP来构建Decoder,这样做的基础是本文提出的层级式Transformer的有效感受野比CNN encoder的有效感受野更大。这种纯MLP的decoder一共分为四步:首先通过encoder得到的多尺度的特征经过一个MLP层对通道维度进行统一;之后将特征上采样到原图大小并在通道维度进行concat;再使用一个MLP层融合拼接得到的特征;最后使用一个MLP层处理融合的特征得到大小为的mask:
Effective Receptive Field Analysis。 作者这里分析了一下MLP decoder的有效性,与DeepLabV3+进行了对比:
Relationship to SETR
这部分作者对比了一下SETR,突出了SegFormer的优势~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!