【论文阅读】Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations

一篇经典的弱监督分割论文,发表在CVPR2019上面

论文标题:

Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations

作者信息:

在这里插入图片描述

代码地址:

https://github.com/jiwoon-ahn/irn

Abstract

作者提出了一种实例弱监督分割的模型:训练分类模型获得seeds,然后expansion获得更清晰的边缘。作者提出了IRNet,主打两点:
1.使用了Instance label进行seeds的传播和扩展。
2.在attention map上,借助 inter-pixel relations训练模型。

Introduction

在这里插入图片描述
传统CAM方法及其缺点: CAM主要体现的是区域对分类的贡献度,它们的分辨率太小,通常只突出对象的部分区域,另外,不能区分同一类的不同实例。

作者IRNet的改进: 引入两个额外的监督措施, a class-agnostic instance map 和 pairwise semantic affinities。(依次对应于branch1和branch2)

IRNet的简要结构: 主要有两个branch。
第一个branch预测一个位移向量场,其中每个像素上的一个二维向量表示该像素所属的实例的质心。通过将位移实例标签指定指向相同位置的像素,将位移字段转换为实例映射。(没看太明白)
第二个branch第检测不同对象类之间的边界。然后从检测到的边界中计算出成对的语义亲和度。在亲和度的基础上训练模型。

Methods

如图是IRNet的framwork。

1.Class Attention Maps

作者首先使用分类网络获得CAM,获得方法很常规,即最后一层卷积的feature map的每个通道,按照分类权重后加权求和,即:
在这里插入图片描述
CAM在作者提出的IRNet中有两个作用:一方面被用于获得图像的实例的种子区域,另一方面被用于IRnet的进一步监督学习。
作者选用的是resnet50,修改了最后一层,提高了backbone输出的分辨率

2.Inter-pixel Relation Network

在这里插入图片描述

2.1 IRNet Architecture

IRNet有两个分支输出,分别预测一个向量场(Displacement Field)和一个图像的边界图(Boundary Detection)
它们共享resnet50的主干,从所有不同level 的backbone中获得特征:

Displacement Field: 使用多层1×1的卷积来调整通道数和分辨率(figure2),最后一个连接的特征图中,通过三个1×1的卷积层解码一个位移场,其输出有两个通道。(最终获得instance map )
Boundary Detection 使用1×1的卷积来调整通道数,最后再concate输出,通道数是256。(最终获得class boundry map)

2.2 Inter-pixel Relation Mining from CAMs

作者的模型仅仅使用Inter-pixel relations作为唯一的监督信号,这里定义了inter-pixel relations的两种类型,一个是坐标的位移(displacement of coordinates),另外一个是类的差异( class equivalence)。其中坐标的位移可以用减法去计算,class equivalence则使用CAM去进行预测,做法如figure 3 所示:
在这里插入图片描述
具体获得class equivalence的做法:

首先,根据模糊的CAM确定图像的前景或者背景,如果attention 分数小于0.05视为背景,分数大于0.3视为前景,中间部分的值视为不确定值,直接将其忽略。

然后,对所有确定值得区域应用CRF进行refine,并根据每个像素的最佳的score的确定类别,以构建伪标签 M M M

最后,根据像素的类别的关系,将像素划分为两类,记为 P + P^+ P+ P − P^- P,划分的计算公式如下:
在这里插入图片描述
即同类的为positive ,否则为negative,其中 r r r表示所参与计算的像素对的最大半径距离。

2.3 Loss for Displacement Field Prediction

IRNet预测的第一个branch是Displacement Field,记为 D D D。作者希望每个像素的 D D D能够指向这个instance的中心区域(质心)。
作者认为这个可以进行隐式的学习得到,需要满足两个条件
条件一,每个实例下的像素对的估计的质心要相同,(即所有的像素坐标加上D应该都指向同一个位置),即
在这里插入图片描述
条件二,根据中心区域(质心)的定义,每个实例所有对应像素点的场向量加一块的和应为为0,即
在这里插入图片描述
作者设计损失函数满足这两个条件
对于条件一: 对于一对像素点 ( i , j ) ∈ P + (i,j)\in P^+ (i,j)P+它们极有可能在相同的实例中,那么用他它们在 D D D上的差值来近似它们的图像坐标位移,即用下述公式:
在这里插入图片描述表示:
在这里插入图片描述
在两者相等的情况下,很容易获得(简单的移项)
在这里插入图片描述
这样只要设计损失函数使得 δ ( i , j ) \delta(i,j) δ(i,j) δ ^ ( i , j ) \hat{\delta}(i,j) δ^(i,j)越小越好,即:
在这里插入图片描述
对于条件二: 作者认为IRNet可以自动学习得到,即通过训练可以逐步收敛到该条件(我没搞懂为啥)。
为了消除背景质心对网络的影响,作者希望背景像素的 D D D的差异,即 δ ( i , j ) \delta(i,j) δ(i,j)越小越好,设计损失函数:
在这里插入图片描述

2.4 Loss for Class Boundary Detection

作者IRNet第二个branch用于预测类别的边界,并用 B ∈ [ 0 , 1 ] w × h B\in[0,1]^{w×h} B[0,1]w×h进行表示。但是实际上并没有专门的边界的label,作者这里使用了多实例学习(Multiple Instance Learning)的方法来获得。
具体来所,作者定了一种像素间的语义亲和度(semantic affinity)。对于两个像素 x i x_i xi x j x_j xj,其语义亲和度可以表示为:
在这里插入图片描述
其中 ∏ i j \prod_{ij} ij表示像素 x i x_i xi x j x_j xj之间连线的所有点。即如果连线上的所有点的 B B B都为1, a i j a_{ij} aij为0,否则 a i j a_{ij} aij为1(同类为0,异类为1)。这种方式可以对像个像素之间是否存在类边界进行较好的量化,作者设计了交叉熵损失函数进行训练:
在这里插入图片描述
这个公式可以这样理解,对与同一个实例中的正样本( P + P^+ P+),它们本应当是同类,所以 a i j a_{ij} aij越小越好。
对于负样本( P − P^- P),它们本应当是异类,所以 a i j a_{ij} aij越大越好。

2.5 Joint Learning of the Two Branches

最终的损失函数是两个分支损失函数的和,即:
在这里插入图片描述

3 Label Synthesis Using IRNet

根据前面的介绍,branch1对应于instance map,branch 2对应于class boundary map 。其中class boundary map semantic affinity利用公式(7)可以直接计算(figure4中说明,输入RGB图像,)
在这里插入图片描述
这一部分作者主要介绍branch1输出的 D D D如何转化为instance map。

3.1Generating Class-agnostic Instance Map

class-agnostic instance map 记为 I I I,格式是2D的 W × D W×D W×D(和 D D D相同)。 I I I通过将位移矢量指向同一质心的像素分组来获得。(具体怎么算的没说)

作者认为 D D D实在CAM的基础上进行计算的,因此它对质心的估算的不准确,所以作者使用下列公式进行refine:
在这里插入图片描述
这里通过在当前估计的质心位置添加位移矢量,迭代地定义每个位移矢量。(具体原理没说)。
作者修正的质心的 D D D的位置也是分散的,因此将一小群相邻像素而不是单个坐标作为质心。figure5是修正后的样子。
在这里插入图片描述

3.1Synthesizing Instance Segmentation Labels

对于获得的class-agnostic instance map I I I,把它和CAM合成得到class-agnostic instance map,合成公式如下:
在这里插入图片描述
其中 k k k表示实例, c c c表示类别。这里还进行了下一步的refine的操作,使用random walk算法,把instance-wise CAM 通过将其注意力分数传播到相关区域来单独细化。该算法中的系数ransition probability matrix T T T是从semantic affinity matrix A = [ a i j ] A=[a_{ij}] A=[aij]中获得,公式如下:
在这里插入图片描述
式子中, A o β A^{o\beta} Aoβ A A A关于 β \beta β得哈达玛幂, S S S A o β A^{o\beta} Aoβ的行归一化矩阵, β \beta β是一个系数。具体random walk的公式如下:
在这里插入图片描述
作者通过乘以 1 − B 1-B 1B来惩罚边界像素的分数,因为这些独立的像素不会将它们的分数传播给邻居,并且与序列中的其他像素相比分数过高。然后选择 c c c k k k的组合,最大化 M c k M_{ck} Mck,生成实例分割的标签,如果最大得分小于最低25%,则将该像素视为背景。

Experiments

在这里插入图片描述
在这里插入图片描述

总结

非常经典的弱监督分割论文,但是感觉流程蛮复杂的,算法说的也很简略。我自己太菜了,很多地方看不太懂。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值