文章阅读Non-Salient Region Object Mining for Weakly Supervised Semantic Segmentation

Non-Salient Region Object Mining for Weakly Supervised Semantic Segmentation

文章名称:非显著区域对象挖掘的弱监督语义分割
会议: CVPR 2021
作者:Yao Yazhou 南京理工大学
代码:https://github.com/NUST-Machine-Intelligence-Laboratory/nsrom/tree/main/segmentation

摘要

语义分割任务是对输入图像进行像素级别的精细分割。考虑到稠密标签的存在问题,研究人员一直在弱标签上下功夫来减轻分割边界的繁重任务。然而,现有的方法主要集中在图像的突出位置扩展伪标签种子的做法。在此番工作中,本文提出了非显著区域对象挖掘的弱监督语义分割方法。我们提出了一个基于图的全局推理单元,用于强化分割网络在全局中相邻的和远距离区域之间的关系抓取能力。它能够帮助网络激活特征显著区域之外的对象特征。未来更进一步挖掘这些特征,我们提出激活分割网络的自校正能力。具体而言,这个模型是用于减少伪(pseudo)标签的错误率。此外我们提出了一个针对复杂图像的非显著区域掩藏(mask)模块用于生成伪标签。本文提出的这个模型能够发现模糊区域的对象。在PASCAL VOC数据集上的实验证明我们的模型达到了SOTA效果。

小结:本文提出了一个推理单元+一个mask模块+实验

引言:

传统方法:训练一个具有图像级标签的分类网络,利用类激活映射(CAMs)来生成伪标签来训练分割网络。
缺陷:这些从分类网络中获得的激活图是稀疏的和不完整的,只能找到物体中最具区别性的部分。
而后有很多方法来扩大激活区域以覆盖大目标区域。
如:Online attention accumulation(OAA)等,都是在显著区域上下功夫!
而这些显著区域的方法也存在着一些问题:在明显的区域中使用伪标签种子扩大方法会导致目标对象的边界外扩,并且会将非显著区域直接归为背景。
而本文从不显著的地方下力气,考虑CNN对全局信息和长距离信息的提取有着明显的缺陷,因此有了基于图的全局推理单元来增强网络对这些非显著区域的学习能力。

方向定好后,文章说到:通过单纯的CAM可以为非显著区域的目标提供线条边界。以此为线索,提出目标挖掘模型对出现在非显著区域的目标进行检测。这样可以使得非显著区域的目标得到更好的分类,而非归入背景。
在实验的过程中,将图像分成简单图片和复杂图片,从而使用不同的方法对其进行更准确的分割。

相关工作

语义分割:FCN、DeepLab
弱监督语义分割:CAM、RDC、AffinityNet、SEAM

方法

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

本文主要研究了具有图像级标签的弱监督语义分割的任务。我们的框架如图 2 所示。 2.给定一组带有图像级标签的训练图像,我们训练一个分类网络。我们利用类激活映射来生成伪标签来学习分割网络。与现有的主要集中于在突出区域细化伪标签的方法不同,我们建议在非突出区域发现更多的对象来进行弱监督语义分割。为了实现这一点,我们在分类网络中插入了一个基于图的全局推理单元。这有助于激活突出区域之外的对象特征。我们还采用了潜在对象挖掘模块(POM)和非显著区域掩蔽模块(NSRM)来提高非显著区域对象挖掘的伪标签质量。

CAM Generation

经过训练的产生类注意力图的 分类网络如图,为了强化分类网络的性能,我们在网络的分类器前引入了一个全局推理模块。
其中,特征

X

R

L

×

K

X ∈ R^{L×K}

XRL×K由编码器产生,K是特征的维度,其中

L

=

H

×

W

L = H×W

L=H×W。而投影函数

V

=

f

(

x

)

R

N

×

K

V = f(x) ∈ R^{N×K}

V=f(x)RN×K

v

i

=

b

i

X

=

j

b

i

j

x

j

v_i = b_i X = \sum_{j}{b_{ij}x_j}

vi=biX=jbijxj
这里:

B

=

b

1

,

.

.

.

,

b

N

R

N

×

L

B = {b_1, ..., b_N} ∈R^{N×L}

B=b1,...,bNRN×L,这些b是训练参数,而N是节点个数。
图卷积在这里也被应用来学习特征与新空间之间的关系,

Z

=

(

(

I

A

g

)

V

)

W

g

Z = ((I-Ag)V)W_g

Z=((IAg)V)Wg
这里,

A

g

A_g

Ag是N×N的节点邻接矩阵的梯度,

W

g

W_g

Wg是权重更新方法。
而得到的特征Z也是H×H×K的。所以放到反映射

Y

=

g

(

z

)

R

L

×

K

Y=g(z) ∈ R^{L×K}

Y=g(z)RL×K 中就是这样,->

y

i

=

d

i

Z

=

j

d

i

j

z

j

y_i = d_i Z=\sum_{j}{d_{ij}z_j}

yi=diZ=jdijzj

B

T

=

D

=

d

1

,

.

.

.

,

d

N

R

N

×

L

B^T = D = {d_1, ..., d_N} ∈R^{N×L}

BT=D=d1,...,dNRN×L为B的逆矩阵。

而在训练分类器网络的过程中,我们设计了一个多标签的软边界损失函数:

L

c

l

s

=

1

C

c

=

1

C

y

c

l

o

g

σ

(

p

c

)

+

(

1

y

c

)

l

o

g

[

1

σ

(

p

c

)

]

L_cls = -\frac {1}{C} \sum_{c=1}^C{y_c logσ(p_c)+(1-y_c)log[1- σ(p_c)]}

Lcls=C1c=1Cyclogσ(pc)+(1yc)log[1σ(pc)]
σ()是sigmoid函数,C是指图像中类柏楠姐的个数,y是c的类标签,如果类出现,则为正,值为1.未出现则为负,值为0。

我们通过选择最终分类器生成的特定于类的特征图来得到CAMs。在OAA[24]之后,我们还生成了在线累积的类注意图(OA-CAMs),以具有更完整的区域,并通过其整体注意模型来增强目标对象区域较低的注意值。

Potential Object Mining

这里是本文的重头戏,也是核心,如何对不显著目标进行挖掘。

在获取了OA-CAMs之后,OAA的工作使用它们来提取目标线索,和显著maps来提取边界信息,限速的标签是比较每一个OA-CAM的值。利用显著性图提供的形状信息,在背景提取(BE)过程后,得到了相当清晰的对象边界的初始标签。而这些初始化的标签里并没有包含非显著区域的对象信息。所以用以下的流程来挖掘非显著区域的对象:

T

c

=

M

E

D

(

v

)

,

(

i

,

j

)

,

s

.

t

.

l

i

j

=

c

T_c = MED(v), ∃(i, j), s.t.l_{ij} = c

Tc=MED(v),(i,j),s.t.lij=c

T

c

=

T

Q

(

v

)

,

o

t

h

e

r

w

i

s

e

T_c =TQ(v) , otherwise

Tc=TQ(v),otherwise
因为OA-CAM召回率高但精确度低,而CAM的召回率低,精度高,所以我们提出了POM,从而挖掘CAM中的目标区域。
上式中,v代表CAM中的像素点,而p的定位如下式:

p

=

(

i

,

j

)

l

i

j

=

c

,

(

i

,

j

)

,

s

.

t

.

l

i

j

=

c

p = (i, j)|l_{ij}=c, \quad ∃(i, j), s.t.l_{ij} = c

p=(i,j)lij=c,(i,j),s.t.lij=c

p

=

(

i

,

j

)

a

i

j

>

T

b

g

,

o

t

h

e

r

w

i

s

e

p = (i, j)|a_{ij} > T_{bg}, \quad otherwise

p=(i,j)aij>Tbg,otherwise

a

i

j

a_{ij}

aij是像素(i,j)在CAM模型重点注意力值,

l

i

j

l_{ij}

lij则代表着标签,嗯,是伪标签。
,如果初始标签包含c类,我们在其CAM中选择这些像素,并选择其注意值的中位数(MED)作为Tc。否则,我们在其CAM中选择注意值大于背景阈值Tbg的像素,并选择其注意值的前四分位数(TQ)作为Tc。
然后进行以下调整:

l

i

,

j

=

c

,

(

i

,

j

)

,

s

.

t

.

l

i

,

j

=

0

,

a

i

,

j

c

>

T

c

l_{i, j} = ∃c, (i, j), s.t. l_{i,j} = 0, a^c_{i,j}>T_c

li,j=c,(i,j),s.t.li,j=0,ai,jc>Tc

l

i

,

j

=

l

i

,

j

,

o

t

h

e

r

w

i

s

e

l_{i, j} = l_{i, j} , \quad otherwise

li,j=li,j,otherwise
这里,ac表示c类的CAM。如式7所示,初始标签中CAM注意值大于T的背景像素(标记为0)标记为255,忽略进行训练。我们不标记它们为相应的潜在类,以避免引入错误的对象标签。这种策略绕过了在突出区域外定位物体边界的必要性。我们专注于减少伪标签的假阴性率,这将有助于丢弃由误导性信息产生的梯度。

Non-Salient Region Masking

首先声明,伪标签的更新是有好处的,特别是非显著区域的标签更新对于显著区域标签的维护是有积极意义的。
所以本文提出,分割模型的预测来生成更高质量的伪标签来进行再训练。
我们注意到,简单图像容易分割。然而,复杂的图像(有两个或两个以上类别的物体)更容易漏掉不明显的物体。分割网络对于使用仅包含突出区域内的对象标签的伪标签来检测突出区域外的对象仍然具有挑战性。因此,我们提出了一个非显著的区域掩码(NSRM)模块。它将分割网络预测中的对象信息和伪标签相结合,生成复杂图像的掩蔽标签。

我们提出的非显著区域掩蔽模块如图所示。 基于突出区域内的目标标签具有高概率正确的假设,我们首先在伪标签的指导下,扩展了初始预测中的目标区域。然后从扩展的预测映射中提取对象掩模。然后,我们用一个扩张操作来展开对象掩模。最后,对扩展的预测映射进行了掩蔽操作,得到了掩蔽的伪标签。请注意,扩张操作在对象周围引入了一小部分背景。它保留了对象的边界信息,这对于一个成功的分割网络具有重要意义。

实验部分

数据集:Pascal VOC 2012数据集,包含了21个类,共10582张训练照片,1449张验证图片和1456张测试图片,对于所有的实验都是用弱监督学习,作为评估指标。

效果比较,表格形式, 以miou为准
很明显,在表格模型的结果对照上都使用的是顶会上的文章,像CVPR,ICCV,NIPS,ECCV,TPNMI等。效果的提升很明显。
PASCAL VOC上模型分割可视化对比图
在特征点的变化中,效果,消融实验
由于这是顶会的文章,实验量是相当充分的。

结论

在本研究中,本文提出了一种用于弱监督语义分割任务的非显著区域对象挖掘方法。
1、具体来说,本文引入了一个基于图的全局推理单元来帮助分类网络捕获不相交和遥远区域之间的全局关系。这可以增强网络激活分散在图像角落或图像边缘的物体的能力。
2、为了进一步挖掘非突出区域以外的目标,本文提出利用分割网络的自校正能力。提出了一种潜在的对象挖掘模块来降低伪标签中的假阴性率。
3、此外,本文还提出了一个针对复杂图像的非显著区域掩码模块来生成伪标签。我们的非显著区域掩码模块有助于进一步发现非突出区域中的物体。
4、在PASCAL VOC2012数据集上的大量实验证明了本文所提出的方法的优越性。

个人观点:
本文在前人的基础上对CAM的功能进行最大化的利用,并且在优化CAM的道路上往前走了一步,不仅仅是在显著区域进行提升,而是寻找到不显著区域的特征,并以此对整个模型的分割进行修正,从而提高整个模型的分割效果。
要是继续做的话,应当找到更好的能够完整勾勒出所有的边界信息的方法,像拉普拉斯等能够勾勒出基本边界的方法是可以借鉴的!

如有帮助,
请多多关注!
感谢阅读!

版权声明:本文为CSDN博主「sigmoidAndRELU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/TTLoveYuYu/article/details/121423514

sigmoidAndRELU

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

YOLOX笔记

目录 1. 样本匹配 正负样本划分过程 2. yoloxwarmcos 学习率 3. 无法开启多gpu训练, 或者多gpu训练卡住? 1. 样本匹配 正负样本划分过程 说明: gt_centerbbox是在gt_bbox中心点向四周

Pytorch—万字入门SSD物体检测

前言 由于初入物体检测领域,我在学习SSD模型的时候遇到了很多的困难。一部分困难在于相关概念不清楚,专业词汇不知其意,相关文章不知所云;另一部分困难在于网上大部分文章要么只是简要介绍了SS