首页 > 其他分享 >SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers论文阅读笔记

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

时间:2023-01-04 15:01:10浏览次数:70  
标签:Segmentation frac Simple SegFormer Transformer times MLP Semantic Patch

作者自己的解读比较精辟(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\times 4\)的patch(小的patch有利于密集预测)。通过设计的Mix Transformer encoder得到一系列不同尺度的特征图\(\frac{H}{2^{i + 1}}\times \frac{W}{2^{i+1}}\times C_i\),尺度不断变小的同时增大通道数。

Overlapped Patch Merging。 Non-overlapped Patch Merging可以将\(N\times N\times 3\)大小的Patch变为一个\(1\times 1\times C\)大小的vector,也可以将\(\frac{H}{4}\times \frac{W}{4}\times C_1\)大小的特征变为\(\frac{H}{8}\times \frac{W}{8}\times C_2\)。但这样会丢失Patch的局部连续性。因此作者设计了一种Overlapping Patch Merging方法,可以得到与non-overlapping方法相同大小的输出。

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

\(\hat{K}=Reshape(\frac{N}{R}, C·R)(K)\),\(K=Linear(C·R, C)(\hat{K})\)

其中K是要缩减的序列。处理后得到的K的大小为\(\frac{N}{R}\times C\),整个操作的复杂度变为\(O(\frac{N^2}{R})\)。

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

\(x_{out}=MLP(GELU(Conv_{3\times 3}(MLP(x_{in}))))+x_{in}\)

实验证明\(3\times 3\)的卷积能提供足够的位置信息。

Lightweight All-MLP Decoder

作者仅仅使用了MLP来构建Decoder,这样做的基础是本文提出的层级式Transformer的有效感受野比CNN encoder的有效感受野更大。这种纯MLP的decoder一共分为四步:首先通过encoder得到的多尺度的特征经过一个MLP层对通道维度进行统一;之后将特征上采样到原图\(\frac{1}{4}\)大小并在通道维度进行concat;再使用一个MLP层融合拼接得到的特征;最后使用一个MLP层处理融合的特征得到大小为\(\frac{H}{4}\times \frac{W}{4}\times N_{cls}\)的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

标签:Segmentation,frac,Simple,SegFormer,Transformer,times,MLP,Semantic,Patch
From: https://www.cnblogs.com/lipoicyclic/p/17024828.html

相关文章

  • [java] a simple Applet program
    //javacodefileimportjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.net.*;publicclassWelcomeAppletextendsJApplet{publicvoidinit()......
  • SimpleDateFormat的线程安全问题和ThreadLocal的使用
     在项目中遇到了用的同一个静态sdf 两个接口同时触发 用的同一个sdf 会出现线程安全的问题。   文章资料转载SimpleDateFormat的线程安全问题和ThreadLocal......
  • SimpleAdmin:一个基于.NET6/7+Vue3+Fruion+Sqlsugar的通用后台管理系统
    SimpleAdmin⚡️麻雀虽小,五脏俱全!⚡️......
  • 日期类 Date/SimpleDateFormat
    日期类publicclassDateTest{publicstaticvoidmain(String[]args)throwsParseException{//TODO常见类和对象//Date:日期类//......
  • SimpleDateFormat
    SimpleDateFormatSimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。进行格式化(日期→>文本)、解析(文本-〉日期)。常用的时间模式字母impo......
  • 博客园SimpleMemory美化搬运工教程
    我的博客园主页我的博客园首页这不是我写的代码,但是,我是负责把写代码的大佬的代码分享出来。接下来,就开始吧。1.开通博客权限。点击左上角头像,然后点击左上角我......
  • [CTF] 攻防世界-simple_js
    题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为Cyberpeace{xxxxxxxxx})直接看源码,只有个js脚本,flag就是破解它functiondechiffre(pass_enc){var......
  • OpenCV自带dnn的Example研究(5)— segmentation
    ​​https://docs.opencv.org/master/examples.html​​下的6个文件,看看在最新的OpenCV中,它们是如何发挥作用的。在配置使用的过程中,需要注意使用较高......
  • [CTF] 攻防世界-simple_php
    题目<?phpshow_source(__FILE__);include("config.php");$a=@$_GET['a'];$b=@$_GET['b'];if($a==0 and $a){    echo $flag1;}if(is_numeric($b)){   ......
  • .NET Redis客户端SimpleRedis的使用
    一、项目说明SimpleRedis基于新生命团队NewLife.Redis的封装,支持.NETCore3/.NET6/7。NewLife.Redis是一个Redis客户端组件,以高性能处理大数据实时计算为目标。源码: h......