【论文阅读】Maskformer:Per-Pixel Classification is Not All You Need for Semantic Segmentation


一、引言:像素级分类v.s.掩膜分类:

分割领域有两个大框架,一方面是像素级分类(per-pixel classification)统治语义分割领域,另一方面是以Mask-FCN为首的掩膜分类(mask classification)统治实例分割、全景分割领域。

像素级分类(per-pixel classification):分类损失应用于每个输出像素,将预测图像划分为不同类别的区域;
掩膜分类(mask classification):基于mask的方法不对每个像素进行分类,而是预测一组二进制掩码,每个掩预测一个单一的类别。
在这里插入图片描述

二、论文概述

参考资料:作者知乎亲自写的简介《MaskFormer:使用Mask分类实现语义分割》
在这里插入图片描述
MaskFormer的结构如上图所示,主要可以分为三个部分:

  1. pixel-level module:用来提取每个像素embedding(灰色背景部分)
  2. transformer module:用来计算N个segment的embedding(绿色背景部分)
  3. segmentation module:根据上面的per-pixel embedding和per-segment embedding,生成预测结果。(蓝色背景部分)

三、代码实现

pixel-level module

基于pytorch的Swim Transformer代码实现与讲解
Swin Transformer中的mask机制

transformer module

这一部分从torch.nn.Transformer复制粘贴,具体实现在此, 位置编码实现在此,并进行以下修改:

  • 在MultiheadAttention中使用位置编码
  • 删除了编码器末尾的额外LN
  • 解码器返回所有解码层的激活后的特征

即实现了下图所示部分:
在这里插入图片描述
参数细节:
在这里插入图片描述

segmentation module

本小节涉及代码位置

  • 分类
    即实现下图所示部分:
    在这里插入图片描述

在看了源代码之后,怀疑这里图画错了,分类这里直接用的transformer module产出特征图,并没有过MLP。
鉴于自己水平不高,另有高见的朋友麻烦告诉我一下。

 # hs是transformer module出来的特征,维度大小是[batche_size, queries, embed]
if self.mask_classification
<think>嗯,用户现在想要我推荐一些基于Transformer编码器的语义分割模型,而且要求是近四年内的。首先,我得确认用户的背景和需求。可能用户是从事计算机视觉相关的研究或者工程,特别是语义分割任务。他们可能已经了解了一些传统的CNN模型,比如U-Net,但现在想探索结合Transformer的方法,因为Transformer在NLP中的成功也影响到了CV领域。 接下来,我需要回忆近几年(2020-2023)的相关模型。首先,SegFormer应该是一个不错的选择,2021年的,它使用了混合Transformer编码器和轻量级解码器。然后是SETR,2021年CVPR的,用ViT作为编码器,处理图像为序列。还有MaskFormer,2021年的,将分割视为掩膜预测问题,结合了Transformer。Swin-Unet是2022年的,基于Swin Transformer,可能也是候选之一。Segmenter,ICCV 2021,直接使用ViT并引入类别嵌入。DPT,2021年,用于密集预测任务,可能也适用于分割。另外,还有HRFormer,2022年的,结合高分辨率特征和Transformer。可能还有最新的模型,比如2023年的SAM(Segment Anything Model),不过这个主要是分割一切,可能更偏向于通用分割,但也可以考虑。 需要检查每个模型的时间,确保都在近四年内。比如,现在2023年的话,2020年及之后的模型都符合。但用户可能希望更近的,比如2021到2023。然后,每个模型的亮点需要简要说明,比如结构创新、性能提升、应用领域等。 用户可能还需要了解这些模型的特点、适用的场景以及开源实现的情况,方便他们进一步研究和应用。比如,SegFormer的轻量级解码器适合实时应用,SETR适合处理长距离依赖,Swin-Unet的层次化结构适合医学图像等。 另外,用户可能对模型的输入类型也有要求,比如是否支持2D或3D数据,但之前的对话中用户问过TransBTS处理2D数据的问题,所以可能现在关注的还是2D的语义分割模型。不过需要确认推荐的模型是否都是处理2D的,如果是3D的可能需要特别说明,但根据问题,用户应该需要2D的。 还要注意推荐的模型是否有开源代码,比如在GitHub上是否有官方实现,这对用户来说很重要,方便复现和使用。比如SegFormer和Swin-Unet都有开源代码,DPT由Intel开源,SAM由Meta开源等。 最后,总结时可能需要提到选择模型的考虑因素,比如计算资源、数据规模、任务需求等,帮助用户根据实际情况选择最合适的模型。</think>以下是2020-2023年基于Transformer编码器的语义分割模型推荐,按技术亮点分类: --- ### 一、**纯Transformer架构** #### 1. **SETR** (CVPR 2021) - **核心思想**:将图像切分为16x16块序列,用ViT编码器建模全局上下文 - **亮点**: - 首个用标准Transformer实现语义分割的模型 - 提出多级特征融合解码器 (Naive/Progressive/MLA) - **代码**:[GitHub](https://github.com/fudan-zvg/SETR) - **适用场景**:需要长距离依赖建模的高分辨率图像 #### 2. **Segmenter** (ICCV 2021) - **核心公式**: $$ \text{分割结果} = \text{类别嵌入} \cdot \text{ViT特征图}^T $$ - **创新点**:直接通过点积生成分割掩膜,无需复杂解码器 - **性能**:在ADE20K上mIoU达52.7%(512x512输入) --- ### 二、**CNN-Transformer混合架构** #### 3. **TransUNet** (CVPR 2021) - **结构特点**: ```mermaid graph LR CNN编码器 --> Transformer --> 跳跃连接解码器 ``` - **优势**:保留CNN局部特征提取能力,用Transformer增强全局建模 - **医疗应用**:胰腺CT分割任务DSC达82.5% #### 4. **HRFormer** (NeurIPS 2022) - **关键技术**: - 并行多分辨率Transformer分支 - 跨分辨率特征交互模块 - **速度/精度平衡**:512x512输入下68 FPS,Cityscapes mIoU 83.2% - **开源地址**:[GitHub](https://github.com/HRNet/HRFormer) --- ### 三、**高效轻量型** #### 5. **SegFormer** (NeurIPS 2021) - **设计亮点**: - 混合尺寸窗口注意力(降低计算复杂度) - 轻量级全MLP解码器 - **计算效率**:在Cityscapes上达81.3% mIoU,仅需35G FLOPs - **代码库**:[GitHub](https://github.com/NVlabs/SegFormer) #### 6. **DPT** (ICCV 2021) - **创新点**:利用Vision Transformer多尺度特征 $$ \text{输出} = \sum_{i=1}^N \text{上采样}( \text{线性投影}( \text{ViT第i层特征} )) $$ - **应用**:联合支持深度估计与语义分割 - **官方实现**:[GitHub](https://github.com/isl-org/DPT) --- ### 四、**新兴方向** #### 7. **MaskFormer** (NeurIPS 2021) - **范式突破**:将分割任务转化为掩膜分类问题 $$ \text{预测} = \{ (c_k, M_k) \}_{k=1}^K $$ - **优势**:统一处理语义/实例/全景分割 - **参数量**:Base版约60M参数 #### 8. **SAM** (Segment Anything Model) (2023) - **技术革命**: - 1100万图像、10亿掩膜预训练 - 支持零样本迁移 - **局限**:通用性强但特定领域精度需微调 - **项目地址**:[GitHub](https://github.com/facebookresearch/segment-anything) --- ### 五、模型选择建议 | 需求场景 | 推荐模型 | 硬件要求 | |-----------------------|-------------------|----------------| | 医疗影像分割 | TransUNet | 单卡RTX 3090 | | 实时边缘计算 | SegFormer-B0 | Jetson Xavier | | 多任务联合学习 | DPT | 多卡并行 | | 开放域通用分割 | SAM + 微调 | A100集群 | --- ### 关键论文列表 1. SETR: ["Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective"](https://arxiv.org/abs/2012.15840) 2. MaskFormer: ["Per-Pixel Classification is Not All You Need for Semantic Segmentation"](https://arxiv.org/abs/2107.06278) 3. SAM: ["Segment Anything"](https://arxiv.org/abs/2304.02643) 建议根据具体任务需求选择:**需要实时性优先SegFormer,强调整体一致性选SETR,零样本能力必选SAM**。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值