写点什么

恒源云 (GpuShare)_MaskFormer:语义分割可以不全是像素级分类

作者:恒源云
  • 2022 年 3 月 21 日
  • 本文字数:2104 字

    阅读完需:约 7 分钟

恒源云(GpuShare)_MaskFormer:语义分割可以不全是像素级分类

文章来源 | 恒源云社区


原文地址 | MaskFormer


原文作者 | 咚咚




论文:Per-Pixel Classification is Not All You Need for Semantic Segmentation


论文地址:https://arxiv.org/pdf/2107.06278.pdf


代码地址: https://bowenc0221.github.io/maskformer


摘要

  1. 目前研究多将语义分割算法作为一种像素级的分类算法,而将实例分割作为一种 mask 分类算法

  2. 论文的重要观点是:mask 分类任务能够同时有效解决语义和实例级的分割任务

  3. 基于上述观念,提出了 MaskFormer,一种预测二值 mask(每个 mask 用于预测一个类别)的 mask 分类模型

  4. 实验显示,MaskFormer 在 ADE20K 和 COCO 分割任务上实现 state-of-the-art

从像素级分类到 mask 级分类

  1. 首先介绍像素级分类和 mask 级分类

  2. 随后介绍本文的 mask 级分类算法

  3. 最后提出了两个不同的前向传播算法

像素级分类

大家应该对像素级分类很熟悉了,可以用公式表达为,其中,具体含义就是一张图像上每个像素点的 K 类别概率分布


最后使用 cross entropy 对每个像素进行 loss 计算

MASK 级分类


mask 级分类将分割任务拆分为两个部分:


  1. 将图像分割成 N 个区域(N 不需要等于类别 K),使用二进制表示

  2. 这 N 个区域的每个区域内部是属于同一个类别,所以还需要对其进行类别预测,可以表示为,这里的类别概率分布包含无对象 no object 类别


由于 N 不需要等于类别 K,这就意味着会存在多个区域属于同一个类别,这时 mask 级分类可以适用于语义分割和实例级分割任务


上述就是 mask 级分类的两个组成部分,但这会引出下一个问题,如何构造标签?


  1. 将一般标签改造成,其中可以认为是类别个数

  2. 预测生成的区域块数量 N 一般会大于标签中的区域块,为了后续能够进行对一对匹配,所以两者数量需要一致,因此添加一系列无对象 tokens 使两者数量相同


进一步就是要考虑如何将标签和预测结果中的不同区域进行匹配


  1. 作者发现使用二值匹配算法 bipartite matching 比使用固定匹配算法 trivial fixed matching 算法要好

  2. 借鉴 DETR 的匹配思路,联合类别和 mask 预测对 i 和 j 进行匹配:


基于匹配的结果,最终的损失函数为


MASKFORMER


整个模型分成三个模块(如上图所示):


  1. 像素级模块用于提取像素级特征嵌入

  2. Transformer 模块,用于计算 N 个区域嵌入

  3. 分割模块,基于上述两个嵌入计算预测类别


像素级模块


就是一个编码器-解码器结构,输入大小为 H×W 的图像,输出为的特征图


Transformer 模块将像素级模块中编码器的输出特征图和 N 个可学习的位置嵌入作为 Transformer 解码器的输入, 输出为


分割模块


  1. 对于 Transformer 模块的输出 Q,使用线性分类层和 softmax 进行类别输出,得到类别概率

  2. 使用带有两个隐藏层的 MLP 将 Q 转化为,并与进行点乘和 sigmoid 操作,得到二值 mask 预测,,其中每个预测值为,一共有 N 个


训练过程中,联合使用 cross entropy classification loss 和 binary mask loss ​(与 DETR 一样,联合 focal loss 和 dice loss 权重求和)

前向传播过程

提出了两种前向传播算法


  1. 针对全景和语义分割,提出了 general inference

  2. 专门针对语义分割,提出了 semantic inference 作者并发现,前向传播的策略更大程度上依赖于评价指标而不是任务


General inference 上文所述,我们知道, 通过公式来确定其所属类别,可以通过如下步骤进行理解


  1. 对于 N 个区域,每个区域有 K+1 个类别概率,首先确定每个区域中最大概率的类别

  2. 当前像素点同样具有属于每个区域的概率,也就是

  3. 将上述两者相结合就可以获取当前像素点所属的类别和所属的区域


这样对于语义分割而言,根据所属类别进行分割而对于实例分割而言,根据所属类别和所属区域进行区分不同实例


Semantic inference 同样对于图像上的一点,其类别计算公式为



可以理解为将 N 作为特征维度


  1. p 表示 K+1 个类别,每个类别有 N 长度的类别特征

  2. m 表示每个像素点同样都有 N 长度的维度特征

  3. 将 m 与每个类别的特征进行乘积求和,并比较每个类别的结果,取最大值作为所属类别

实验

通过在四个公开数据集上进行了实验对比,证明了 MaskFormer 无缝统一了语义分割和实例分割,并实现了最优性能并通过消融实验,发现语义分割上性能的提升确实来自于从像素级分类到 mask 级分类的转变

对比实验


语义分割对比实验



全景分割对比实验


消融实验

像素级分类和 mask 级分类比较结果使用两个不同的匹配策略之间的比较结果



使用不同 queries(区域数量 N)之间的比较



用户头像

恒源云

关注

专注人工智能云GPU服务器训练平台 2020.12.25 加入

还未添加个人简介

评论

发布
暂无评论
恒源云(GpuShare)_MaskFormer:语义分割可以不全是像素级分类_语义分割_恒源云_InfoQ写作平台