[论文阅读] Maskfomer

MaskFormer

Mask classification formulation

用mask classfication的方法

step1: 把图像分为K个区域(k不一定需要等于类别数),这个region可以用mask(取值0-1)来表示。被遮住的不算这个区域内,没有被遮住的图像部分就是这个region

step2:将每个区域作为一个整体与 K +1个类别上的某种分布相关联(其实就是softmax求概率),K+1是为了添加一个no-object类,表示某个region不属于class中的任何一类

step3:定义出gd类(根据gd得出的,mask and label)

 

然后我们的目标就是把output

跟gd Z做出一一对应,表示属于某个类以及其mask,然后最小化这个损失

loss函数:由两部分组成 1是cls loss 2是这一类的mask的loss

MaskFormer

模型显著性的分成了3部分:

pixel module

简单的downsampling,用backbone提特得特征图

transformer module

从feature 和 query(N个可学习的位置EMB)来获取最后的输出Q

Q的维度是CQ* N , N是query的数目,CQ是特征维度,也就是所谓的global infor about each segment Maskformer predict

seg module

从transformer decoder出来之后,我们可以视Q为集合了很多特征的结果(类似于卷积里的特征图,有了特征图就能对其进行GAP然后预测什么的)

第一个操作就是过一个linear,然后接一个softmax做类别预测

这个网络用cls loss去约束

第二个操作是过一个2个隐藏层的mlp,然后把特征转换为mask的特征(CQ->CE)

通过和upsamping出来的特征做内积,用sigmoid激活,得到一个N H W的mask预测 (N是region数,HW是高宽),用binary mask loss去约束

这个2维和3维在通道数上相乘可以视为通道融合(1*1卷积)

Infer()

没有gd了现在,挑最大的

经过两个linear,我现在得到了

cls N * (K+1)

mask N H W

这样我就得到我理想的output Z (pi , mi) (i=1,2,....,N)

现在我们要做的就是,把每一个点分进某个Z里面,然后这个Z的类别就是argmax Pi

General infer

取每一个Z中 argmax P的 label Cj scorei = Pi(cj)* mi【h,w】 (pixel level)

然后我有N个Z,我取其中的score max的pair i,把这个像素点分到这个(pair)中,这个pair的类别(cls)就是argmax pi对应的 label

Semantic infer


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值