今天主要介绍图像分割的网络——mask2former
一、简介
这是一个能够执行三大分割通用任务(语义、实例、全景)的网络
第一次在三大任务上胜过每个任务的专用分割SOTA模型
二、模型架构
其模型的主要架构包括Backbone(试验了SwinTransformer、Resnet,我觉得随着现在的发展也可以换成视觉基础模型)进行特征提取、Pixel Decoder将Backbone提取到的低维特征逐渐上采样以产生成像素级别的embedding,并且将其产生的每个尺度的embedding, 喂给Transformer Decoder,Transformer Decoder结合可学习查询以及像素维度的Pixel Decoder的embedding,产生分类以及mask的结果
同时,还替换了Transformer Decoder中的交叉注意力操作,将其进行了一些改变,变成了masked attention
三、创新点详解
mask2former的架构属于掩码分类架构,通过预测N个二进制掩码,和N个对应的类别标签,将像素分组成N个分割。
图中的通道维数的目标查询特征的灵感来自DETR——图像中的每个分割可以被表示成一个C维度的特征向量query features,目标查询。这个query features被零初始化后作为cross attention中的q输入到transformer decoder中,并且与可学习的位置编码相关联,并且也直接被监督学习(被mask loss,见损失函数的第一部分)。
一个目标查询包括两部分:目标查询特征和目标查询位置编码,目标查询特征输入到Transformer decoder作为其中的Q参与注意力操作,而目标查询位置编码则在计算注意力时加入。二者都是可学习的
3.1对于Cross attention的改进
作者认为全局的特征在self-attention中已经能够学习到,不需要在cross-attention中计算全局的上下文
其主要的更改是将上一个层预测的掩码(resize过的)结合起来,设定一个阈值,如果上一层(Transformer Decoder层)输出的掩码可能性小于这个阈值,则用一个无穷小数使得其上一层预测小于这个阈值的区域不参加这一层的注意力计算,即忽略它
这样做减少了计算复杂度,也是这个模型的较为核心的创新
3.2 使用像素解码器产生金字塔结构的特征
这个Transformer decoder的三层结构重复了L(L=3)次,三层分别接收pixel decoder的32/16/8维度的特征
考虑到了多尺度特征的同时,又减少了计算量
3.3 优化改进
1.交换self-attention和cross-attention的顺序以使得计算更加有效,因为query feature在第一层中是被零初始化,因此和图像特征无关,不会带有和图像有关的信号,因此先进行这个操作不会丰富信息。
2.使得N * C的query特征X0变得可学习,直接在被送入transformer decoder之前被有监督学习。
作者认为这些科学性的查询特征有区域提议网络的能力,能够产生掩码区域
3.在decoder中去掉了dropout层
3.4 像素解码器采用较新的架构
deformable attention Transformer
四、损失函数
五、评价指标
standard AP (average precision) metric
S、M、L,还有一个没带版本的评价指标
六、比之maskformer(上一代)的优势
1.更改Cross-attention
2.还有上述的优化改进
七、讨论
缺陷
1.这个模型必须要在多个任务上面分开训练,没法一次训练后用到多个分割任务中
2.分割小的物体的能力比较弱,同时作者认为其没法充分运用多尺度特征。