恒源云 (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
摘要
目前研究多将语义分割算法作为一种像素级的分类算法,而将实例分割作为一种 mask 分类算法
论文的重要观点是:mask 分类任务能够同时有效解决语义和实例级的分割任务
基于上述观念,提出了 MaskFormer,一种预测二值 mask(每个 mask 用于预测一个类别)的 mask 分类模型
实验显示,MaskFormer 在 ADE20K 和 COCO 分割任务上实现 state-of-the-art
从像素级分类到 mask 级分类
首先介绍像素级分类和 mask 级分类
随后介绍本文的 mask 级分类算法
最后提出了两个不同的前向传播算法
像素级分类
大家应该对像素级分类很熟悉了,可以用公式表达为,其中,具体含义就是一张图像上每个像素点的 K 类别概率分布
最后使用 cross entropy 对每个像素进行 loss 计算
MASK 级分类
mask 级分类将分割任务拆分为两个部分:
将图像分割成 N 个区域(N 不需要等于类别 K),使用二进制表示
这 N 个区域的每个区域内部是属于同一个类别,所以还需要对其进行类别预测,可以表示为,这里的类别概率分布包含无对象 no object 类别
由于 N 不需要等于类别 K,这就意味着会存在多个区域属于同一个类别,这时 mask 级分类可以适用于语义分割和实例级分割任务
上述就是 mask 级分类的两个组成部分,但这会引出下一个问题,如何构造标签?
将一般标签改造成,其中可以认为是类别个数
预测生成的区域块数量 N 一般会大于标签中的区域块,为了后续能够进行对一对匹配,所以两者数量需要一致,因此添加一系列无对象 tokens 使两者数量相同
进一步就是要考虑如何将标签和预测结果中的不同区域进行匹配
作者发现使用二值匹配算法 bipartite matching 比使用固定匹配算法 trivial fixed matching 算法要好
借鉴 DETR 的匹配思路,联合类别和 mask 预测对 i 和 j 进行匹配:
基于匹配的结果,最终的损失函数为
MASKFORMER
整个模型分成三个模块(如上图所示):
像素级模块用于提取像素级特征嵌入
Transformer 模块,用于计算 N 个区域嵌入
分割模块,基于上述两个嵌入计算预测类别
像素级模块
就是一个编码器-解码器结构,输入大小为 H×W 的图像,输出为的特征图
Transformer 模块将像素级模块中编码器的输出特征图和 N 个可学习的位置嵌入作为 Transformer 解码器的输入, 输出为
分割模块
对于 Transformer 模块的输出 Q,使用线性分类层和 softmax 进行类别输出,得到类别概率
使用带有两个隐藏层的 MLP 将 Q 转化为,并与进行点乘和 sigmoid 操作,得到二值 mask 预测,,其中每个预测值为,一共有 N 个
训练过程中,联合使用 cross entropy classification loss 和 binary mask loss (与 DETR 一样,联合 focal loss 和 dice loss 权重求和)
前向传播过程
提出了两种前向传播算法
针对全景和语义分割,提出了 general inference
专门针对语义分割,提出了 semantic inference 作者并发现,前向传播的策略更大程度上依赖于评价指标而不是任务
General inference 上文所述,我们知道, 通过公式来确定其所属类别,可以通过如下步骤进行理解
对于 N 个区域,每个区域有 K+1 个类别概率,首先确定每个区域中最大概率的类别
当前像素点同样具有属于每个区域的概率,也就是
将上述两者相结合就可以获取当前像素点所属的类别和所属的区域
这样对于语义分割而言,根据所属类别进行分割而对于实例分割而言,根据所属类别和所属区域进行区分不同实例
Semantic inference 同样对于图像上的一点,其类别计算公式为
可以理解为将 N 作为特征维度
p 表示 K+1 个类别,每个类别有 N 长度的类别特征
m 表示每个像素点同样都有 N 长度的维度特征
将 m 与每个类别的特征进行乘积求和,并比较每个类别的结果,取最大值作为所属类别
实验
通过在四个公开数据集上进行了实验对比,证明了 MaskFormer 无缝统一了语义分割和实例分割,并实现了最优性能并通过消融实验,发现语义分割上性能的提升确实来自于从像素级分类到 mask 级分类的转变
对比实验
语义分割对比实验
全景分割对比实验
消融实验
像素级分类和 mask 级分类比较结果使用两个不同的匹配策略之间的比较结果
使用不同 queries(区域数量 N)之间的比较
评论