可靠性确实重要:端到端弱监督的语义分割方法(AAAI2020)
摘要
弱监督语义分割只将图像级信息作为训练的监督,而产生像素级的预测。大多数目前的SOTA方法主要使用两步解决方案:1)学习生成伪像素级掩码,2)使用FCNs用伪掩码训练语义分割网络。然而,两步法在制作高质量的掩码时,往往需要大量的附加调价,使得这种方法复杂且不美观。在本文的工作中,我们利用图像级标签来产生可靠的像素级注释,并设计一个完整的端到端网络来学习预测分割映射。具体地说,我们首先利用图像分类分支为标注类别生成类激活映射,这些类激活映射被进一步修剪成置信且微小的物体/背景区域。然后将这些置信区域直接作为平行分割分支的ground-truth标签,采用新设计的密集能量损失函数进行优化。
存在的问题及解决方案
为了学习使用图像级标签作为监督的语义分割模型,现有的许多方法可以分为一步法和两步法。一步法通常建立一个端到端框架,该框架将多示例学习与其他约束策略结合起来进行优化。这类方法非常优雅,易于实现。然而,这些方法的一个显著缺点是,分割精度远远落后于完全监督的对等模型。
为了获得更好的分割性能,许多研究人员建议采用两步方法。这类方法通常旨在采取自下而上或自上而下的步骤;首先生成以图像级标签为监督的高质量伪像素级掩码。然后,这些伪掩码充当ground-truth,并被输入现成的全卷积网络,如FCN和Deeplab对语义分割模型进行训练。目前的SOTA主要是两步的方法,分割性能接近他们对应的完全监督模型。然而,为了制作高质量的伪掩码,这些方法通常会使用许多附加的功能,例如以离线方式从object proposal或saliency maps中引入额外的对象/背景线索。因此,两步法通常非常复杂,难以复现,限制了其在目标定位和视频目标跟踪等研究领域的应用。
在本文中,我们提出了一个简单而有效的一步方法,它可以很容易地以端到端方式训练。与两步方法相比,它实现了有竞争力的分割性能。我们的方法名为可靠区域挖掘(RRM),包括两个分支:一个是使用图像级注释生成伪像素级掩码,另一个是生成语义分割结果。与之前倾向于挖掘密集而完整的目标区域的两步法相比,我们的RRM只选择哪些置信度高的对象/背景区域,这些区域通常很小,但在类激活图上的反应分数很高。
我们发现,通过额外的CRF操作,这些区域可以被进一步修剪成更可靠的区域,然后用于监督并行的语义分割分支。在有限像素作为监督的情况下,我们设计了一种正则化的密集能量损失,与像素交叉熵损失协同优化训练过程。
方法
分类分支:为可靠的区域生成标签
原始的类激活图(CAM)可以突出显示对象的最具区别性的区域,但它们仍然包含一些非对象区域,即错误标记的像素。因此,在获得原始的CAM区域后,还需要做一些后处理,例如密集CRF。
在我们的网络中,最后一个卷积层采用了全局平均池化(GAP),GAP的输出被划入一个全连接层。最后,在最后一个卷积层上使用全连接层的权重,得到各个类的热力图(heatmap)。
数学上,给定一个图像
I
I
I,类
c
c
c的CAM可以表示为:
其中
C
f
g
=
{
c
1
,
c
2
,
.
.
.
,
c
N
}
C_{fg}=\left\{c_1,c_2,...,c_N\right\}
Cfg={c1,c2,...,cN}包含所有前景类,
M
o
c
a
n
c
M_{ocan}^{c}
Mocanc时图像
I
I
I的
c
c
c类CAM,
w
c
w^c
wc表示类c在全连接层中的权重,
F
F
F是backbone最后一个卷积层的特征图,
R
S
RS
RS指的是将输入resize到和
I
I
I一样大小。
利用多尺度的原始图像有助于生成稳定的CAM,给定一个图像
I
I
I,它被乘以尺度因子
s
i
∈
{
s
0
,
s
1
,
.
.
.
,
s
n
}
s_i\in \left\{ s_0,s_1,...,s_n \right\}
si∈{s0,s1,...,sn},
I
I
I的多尺度CAM可表示为:
其中
M
o
c
a
m
c
(
s
i
)
M_{ocam}^{c}\left( s_i \right)
Mocamc(si)缩放后的图像的
c
c
c类CAM。图2显示,与原始CAM(scale=1)相比,多尺度CAM提供了更精确的目标定位。
将CAM得分归一化,得到
I
I
I中每个像素的分类概率
其中
m
a
x
(
M
c
a
m
c
)
max(M_{cam}^c)
max(Mcamc)是
c
j
c_j
cj类CAM的的最大值。
背景得分使用计算方法如下:
其中
i
i
i表示像素位置索引,
γ
\gamma
γ代表用于抑制背景标注的衰减率。整体概率图
P
f
g
−
b
g
P_{fg-bg}
Pfg−bg通过连接前景概率
P
f
g
P_{fg}
Pfg和背景概率
P
b
g
P_{bg}
Pbg得到。
然后我们使用密集CRF进行后处理来去除一些误标记的像素,CRF像素标记图为:
被选择的可靠CAM标签表示如下:
其中
C
=
{
c
0
,
c
1
,
.
.
.
,
c
N
}
C=\left\{ c_0,c_1,...,c_N \right\}
C={c0,c1,...,cN}包含所有类和背景类
(
c
0
)
(c_0)
(c0),255表示类别标签尚未确定。
max
c
∈
C
(
P
f
g
−
b
g
c
(
i
)
)
>
α
\max_{c\in C} \left( P_{fg-bg}^{c}\left( i \right) \right) >\alpha
maxc∈C(Pfg−bgc(i))>α选择高置信度的区域。
输入到语义分割分支的最终像素标签为:
其中
I
c
r
f
(
i
)
=
I
c
a
m
(
i
)
I_{crf}(i)=I_{cam}(i)
Icrf(i)=Icam(i)考虑CRF约束,采用这种策略,可以获得高度可靠的区域及其标签,255代表的则是不可靠区域。
图3显示了我们的方法示例。可以观察到,原始的CAM标签包含大多数前景标签,但引入了一些背景像素作为前景。CRF标签可以得到精确的边界,但同时将许多前景像素作为背景。换句话说,CAM标签可以提供可靠的背景像素,CRF标签可以提供可靠的前景像素。
使用我们的方法将CAM标签和CRF标签图结合起来,去掉了一些错误的像素级标签,但仍然保留了可靠区域,尤其是在对象边界处。
语义分割分支:做预测
在得到可靠的像素级标注后,将其作为语义分割分支的标签。不同于其他独立使用完整的伪标签训练语义分割网络的方法,我们的分割分支与分类分支共享同一个骨干网络,只需要可靠而微小的像素级标签。我们的损失函数包括交叉熵损失和能量损失。交叉熵损失侧重于对已标记数据的利用,而能量损失则同时考虑了已标记数据和未标记数据。联合损失表示为:
交叉熵损失表示为:
其中
B
c
(
i
)
B_c(i)
Bc(i)表示二值预测,如果像素
i
i
i属于
c
c
c类则为1,否则为0,
Φ
\varPhi
Φ表示标记区域,
Φ
=
{
i
∣
I
f
i
n
a
l
(
i
)
≠
255
}
\varPhi =\left\{ i|I_{final}\left( i \right) \ne 255 \right\}
Φ={i∣Ifinal(i)=255},
P
n
e
t
c
P_{net}^c
Pnetc表示训练网络的输出概率。
迄今为止,所有标记的像素都被用于交叉熵损失的训练,但仍有大量未标记的像素。为了对那些未标记的区域进行预测,我们设计了一种新的浅损失,即稠密能量损失,同时考虑了RGB颜色和空间位置。
首先定义像素
i
i
i和
j
j
j之间的能量公式:
其中:
其中
1
W
\frac{1}{W}
W1为归一化权重,
D
D
D表示图像
I
I
I的空间像素位置,
G
G
G是一个实质上的高斯核过滤器。
最后,我们的密集能量损失可以写成:
考虑到交叉熵损失是为标签信息100%准确的监督学习而设计的,但在本任务中,所有像素标签都不是100%可靠的,这意味着使用交叉熵损失可能会引入一些误差。因此,我们的密集能量损失被用来缓解这个问题。基于此,我们设计一个软过滤器
S
(
i
)
S(i)
S(i)对于像素
i
i
i:
总体算法流程如下:
实验结果
结论
在本文中,我们提出了一种用于图像级弱监督语义分割的端到端网络RRM。我们重新审视了采用两步方法的尖端技术的缺点。我们提出了一种通过挖掘可靠而微小的区域,直接将其作为ground-truth标签用于分割模型训练的一步法。在有限的像素作为监督的情况下,我们设计了一种新的损失称为密集能量损失,它采用浅层特征(RGB颜色和空间信息),并与像素交叉熵损失协作来优化训练过程。基于我们的一步RRM,我们扩展了一个两步方法。我们的一步法和两步法都实现了最先进的性能。更重要的是,我们的RRM提供了一个不同于传统两步解决方案的视角。我们相信,提出的一步法可以进一步推动这一方向的研究。