Employing Multi-estimations for Weakly-Supervised Semantic Segmentation
摘要
基于弱监督语义分割任务(WSSS)的image-level的label旨在使用image-level的labels去训练语义分割模型,节省了大量标注成本。这类问题的经典pipeline首先通过image-level标注利用CAM生成伪掩码(也称作seeds),然后使用它们训练分割模型。主要的问题就是seeds通常是稀疏且不完整的。经典的相关工作尝试通过许多花里胡哨的方法去加强seeds以缓解这个问题。我们不是努力改进单个seed,而是提出了一种新方法,通过利用分割模型的鲁棒性从多个seeds中学习来缓解不准确的种子问题。我们试图为每张图像生成许多不同的seeds,这些seeds是对基础真值的不同估计。分割模型同时利用这些seeds学习并自动地决定每个seed的置信度。相关实验证明了该方法的效果。
1 Introduction
语义分割随着深度学习模型快速发展。然而,这些方法高度依赖大规模的pixel-level标注来训练,成本很高。为了减轻训练时精确的pixel-level标注的要求,人们提出弱监督语义分割(WSSS)。WSSS用粗标注训练语义分割模型,如scribbles,bounding boxes和image-level class labels。其中最后一种只要求类别标签就可以训练,很容易获得,因此获得了广泛关注,本文就是关注image-level标注的WSSS问题。
通过image-level标注恢复目标空间信息的一个常见的方法是使用CAM生成目标的热力图。这些热力图被用来生成伪掩码(又称为seeds)去训练分割模型。CAM是这样获得的,首先通过image-level标注训练一个分类模型然后把最后一层线性分类层用于feature map columns上,这一层就在global average pooling层之前。由于CAM被训练用作分类,高亮区域通常是最有辨识度的区域。因此,获得的seeds是稀疏且不完整的,接下来训练出的模型预测结果也会是粗糙的。
为了缓解CAM的这个问题,人们利用multiple dilated convolutions, iterative erasing strategy, random drop connections, region growing algorithms, online accumulating activation maps和许多其他的策略以生成完整的seeds。虽然这些方法有一些改善,但是他们通常依靠精心设计的规则和基于经验的超参数来平衡seeds的精确度和召回率,很难泛化。
我们提出了一种新颖的方法来使用多种不同的seeds来同时训练分割模型,而不是通过手动设计的规则,为每张图像产生单一的“完美”seed。每张图像不同的seeds可以看做是潜在真值的估计。我们利用分割模型的力量自动挖掘这些不同seeds有用的信息。使用这个策略的原因有三个。
第一,不同的seeds有助于减少错误标注的影响。正常来讲,一个像素获得正确伪标注的概率是比错误伪标注的概率大的。被所有不同seeds都标记成相同的像素更有可能是正确的。这些像素的贡献不受影响,因为所有不同的seeds都提供相同的标签。与此同时,带有不同seed labels的像素提供了不同方向的梯度;因此,可以在一定程度上取消不同的梯度,从而减少了错误方向优化的风险。第二,互补的部分可能存在于不同的seeds中,使得伪标注更完整。例如,人身体的掩码可能在一个seed中是缺失的,但是在其他seed中是存在的。第三,分割模型在某种程度上对噪音是有抵抗的。从实验Table1为例,在训练集中有30%的前景被噪音覆盖,分割模型仍然能得到用无噪音训练效果90%的效果。这一结果的原因可能是分割模型可以利用整个数据集的知识,因此减少了噪音的影响。这个优势会帮助从多个seeds中挖掘有用的信息。
为了进一步加强训练过程的泛化能力,我们提出了一个weighted selective training(WST)策略,自动地为每个像素在不同的seeds中调整权重。和先前通过手动规则结合多个CAMs的方法,即平均化或max fusion相比,我们的方法可以利用分割模型的知识动态地在不同的seeds中分配权重。我们通过实验证明了这一方法的有效性。本文的contributions总结如下:
- 我们提出一个新的原则方法缓解WSSS任务中不精确的seed的问题,这个方法同时使用许多不同的seeds训练分割模型。提出了一个weighted selective trainning策略缓解了噪音的影响。
- 我们进行实验展示这种方法的有效性,并揭示不同seeds的影响。
- 实验。
2 Related Work
3 Pilot Experiments
4 Approach
我们的方法的整体框架分成两阶段,如Fig. 3所示。第一阶段从CAM生成不同的seeds,第二阶段利用所有的seeds训练分割模型。训练之后,通过分割模型获得分割结果。
4.1 The Class Activation Map
CAM被广泛应用于生成WSSS的初始预测(seeds)。第一步是用image-level标注训练一个分类网络,在其最后分类层之前有一个global average pooling层。训练的loss为简单的多分类sigmoid loss:
L
c
a
m
(
X
)
=
−
∑
c
=
1
C
y
c
l
o
g
σ
(
p
c
)
+
(
1
−
y
c
)
l
o
g
[
1
−
σ
(
p
c
)
]
L_{cam}(X)=-\sum_{c=1}^Cy_clog\sigma(p_c)+(1-y_c)log[1-\sigma(p_c)]
Lcam(X)=−c=1∑Cyclogσ(pc)+(1−yc)log[1−σ(pc)]
其中,
X
X
X是输入图像,
p
c
p_c
pc是模型对第c类的预测,
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)是sigmoid函数,
C
C
C是前景类别总数。
y
c
y_c
yc是第c类的image-level标注,如果这类存在,其值为1否则为0.
训练之后, global average pooling层被移除,最后的线性分类层直接应用于最后特征图的每列以驱动CAM:
M
i
,
j
c
=
f
i
,
j
T
w
c
,
{
c
∈
C
f
g
}
M_{i,j}^c=f_{i,j}^Tw^c,\{c\in C_{fg}\}
Mi,jc=fi,jTwc,{c∈Cfg}
其中,
w
c
w^c
wc是分类层中第c类的权重向量,
f
i
,
j
f_{i,j}
fi,j是特征图位置
{
i
,
j
}
\{i,j\}
{i,j}的特征向量。
M
i
,
j
c
M_{i,j}^c
Mi,jc是CAM第c类在位置
{
i
,
j
}
\{i,j\}
{i,j}的corresponding value。
C
f
g
C_{fg}
Cfg是存在于图像中的前景类别的集合。对于那些没有出现在图像中的类别,corresponding maps直接设置成0。
在生成seeds之前,通过过滤输出negative的值并划分空间最大值来归一化CAM:
M
~
i
,
j
c
=
[
M
i
,
j
c
]
+
max
i
∈
1
∼
H
,
j
∈
1
∼
W
{
[
M
i
,
j
c
]
+
}
,
{
c
∈
C
f
g
}
\tilde{M}_{i,j}^c=\frac{[M_{i,j}^c]_+}{\max \limits_{i\in1\sim H,j\in1\sim W}\{[M_{i,j}^c]_+\}},\{c\in C_{fg}\}
M~i,jc=i∈1∼H,j∈1∼Wmax{[Mi,jc]+}[Mi,jc]+,{c∈Cfg}
其中,
[
⋅
]
[\cdot]
[⋅]将negative值设置成0。
H
,
W
H,W
H,W是CAM的高和宽。得到的CAM
M
~
∈
R
C
×
H
×
W
\tilde{M}\in\mathbb{R}^{C×H×W}
M~∈RC×H×W双线性插入原始图像尺寸并生成seeds。
4.2 Multi-type Seeds
一个生成seeds的常见方法是使用CAM和硬阈值预测前景区域,用saliency模型预测背景区域。CRF也被广泛应用以优化预测。本文,我们两个不同的方法生成了两种seeds。
第一种方法仅使用阈值法生成seeds。我们选择normalized CAM scores大于0.1的像素作为前景,采用与先前现有方法相同的显着性模型来估计背景。saliency scores小于0.06的作为背景,在先前的方法中也是相同的设置。剩余的未分配像素和那些分配冲突的像素被标记为未知,在训练分割模型时将被忽略。
第二种方法concat saliency的背景scores和normalized CAM的前景scores,然后用CRF算法优化scores。最后,通过选择每个像素最大score的类别得到seeds。根据这一策略,每个像素被分配了一个有效的伪标注,没有冲突和未知数。生成的seeds如Fig. 1所示。
虽然通过CRF方法生成的seeds包含更多细节,但和阈值法相比它可能会增加FP和FN。因此,在这两种类型的seeds之间有互补信息。证明如Table2,即使CRF的seeds比阈值法的seeds表现更好,但同时使用他们两个仍有明显的增长。
4.3 Multi-scale Seeds
scale在基于深度卷积网络的方法中起着重要作用。由于感受野是固定的,在不同的scales中卷积核面对不同的输入图案。网络被迫同时处理不同的scales; 因此,对于不同的尺度,它通常需要不同的参数。因此,网络可能会在不同的输入尺度下突出不同的图案,并进一步推导出不同的seeds。为了利用这个特性,我们用不同的尺度调整输入图像的大小,并将它们输入网络以获得不同尺度下的 CAM。我们用这些不同尺度的CAMs生成多种seeds。
4.4 Multi-architecture Seeds
一般来说,不同结构的backbone不会产生相同的预测。因此,不同的架构可能会为潜在的gt masks提供不同的预测。VGG16和ResNet38是两个在WSSS任务中广泛应用的用于生成seeds的网络。我们利用这两种不同的架构生成不同的seeds。
4.5 The Weighted Selective Training
使用不同的seeds去训练分割模型的简单方式是用每个seed计算每个像素的交叉熵损失然后求平均:
L
p
l
a
i
n
(
X
)
=
1
N
k
H
W
∑
k
∑
i
,
j
∑
c
y
i
,
j
,
c
(
k
)
l
o
g
p
i
,
j
,
c
L_{plain}(X)=\frac{1}{N_kHW}\sum_k\sum_{i,j}\sum_cy_{i,j,c}^{(k)}logp_{i,j,c}
Lplain(X)=NkHW1k∑i,j∑c∑yi,j,c(k)logpi,j,c
其中
X
X
X是输入图像,
y
i
,
j
,
c
(
k
)
y_{i,j,c}^{(k)}
yi,j,c(k)表示第k个seed
{
i
,
j
}
\{i,j\}
{i,j}位置像素的标签,如果该像素属于第c类该值为1否则为0。
p
i
,
j
,
c
p_{i,j,c}
pi,j,c是分割模型在位置
{
i
,
j
}
\{i,j\}
{i,j}对于第c类的预测,通过softmax操作归一化。
N
k
N_k
Nk是给定图像seeds的总数。
H
,
W
H,W
H,W分别是特征的高度和宽度。
由于分割模型的鲁棒性和多种子提高信噪比的效果,直接应用
L
p
l
a
i
n
L_{plain}
Lplain会优于单种子baseline的效果。为了进一步改善噪音标签的鲁棒性,我们提出利用分割模型的在线预测给不同的seeds施加权重。训练loss变成了:
L
w
s
t
(
X
)
=
1
H
W
∑
k
∑
i
,
j
w
i
,
j
,
k
∑
c
y
i
,
j
,
c
(
k
)
l
o
g
p
i
,
j
,
c
L_{wst}(X)=\frac{1}{HW}\sum_k\sum_{i,j}w_{i,j,k}\sum_cy_{i,j,c}^{(k)}logp_{i,j,c}
Lwst(X)=HW1k∑i,j∑wi,j,kc∑yi,j,c(k)logpi,j,c
其中,
w
i
,
j
,
k
∈
[
0
,
1
]
w_{i,j,k}\in[0,1]
wi,j,k∈[0,1]是第k个种子在位置
{
i
,
j
}
\{i,j\}
{i,j}的权重,它是通过比较标签与分割模型的在线预测计算得出的:
w
i
,
j
,
k
=
e
x
p
(
s
⋅
w
~
i
,
j
,
k
)
/
∑
k
e
x
p
(
s
⋅
w
~
i
,
j
,
k
)
w
~
i
,
j
,
k
=
I
[
a
r
g
max
c
(
p
i
,
j
,
c
)
=
a
r
g
max
c
(
y
i
,
j
,
c
)
]
w_{i,j,k}=exp(s\cdot\tilde{w}_{i,j,k})/\sum_kexp(s\cdot\tilde{w}_{i,j,k}) \\ \tilde{w}_{i,j,k}=\mathbb{I}[arg\max \limits_{c}(p_{i,j,c})=arg\max \limits_{c}(y_{i,j,c})]
wi,j,k=exp(s⋅w~i,j,k)/k∑exp(s⋅w~i,j,k)w~i,j,k=I[argcmax(pi,j,c)=argcmax(yi,j,c)]
有且只有分割模型预测值和伪标注匹配时我们得到的值才为1,然后我们用softmax操作归一化所有通过不同seeds得到的值,确保
∑
k
w
i
,
j
,
k
=
1
\sum_kw_{i,j,k}=1
∑kwi,j,k=1。
s
s
s是控制权重锐度的比例因子。当
s
s
s等于0时,loss与普通训练损失
L
p
l
a
i
n
L_{plain}
Lplain相同。实际上,我们设置s为1。随着训练的过程,分割模型得到越来越稳定的结果。由此,与预测相矛盾的异常值将被抑制,进一步降低噪声的影响。