Weakly-Supervised Salient Object Detection via Scribble Annotations
摘要
本文用scribbles重新标注了数据集,新数据集称为S-DUTS。直接用scribbles训练模型效果肯定不好,因此本文的方法用到了一个辅助的边缘检测任务,还有一个gated structure-aware loss来限制结果恢复的范围。另外,本文设计了一个scribble boosting scheme迭代巩固scribbles注释,然后这些注释作为监督去学习高质量的saliency maps。现有的显著性指标忽略了预测的结构对齐,显著图的排名可能不符合人类感知。我们提出一个新的指标,termed saliency structure measure来评估预测结果。
1. Introduction
特别注意的是,我们进一步开发了一种scribbles增强方式,通过将标签传播到更大的高置信度接受域来更新我们的scribbles注释 ,这样可以得到类似Fig. 7(g)的标注。
另外我们提出的saliency structure measure
(
B
μ
)
(\mathcal B_{\mu})
(Bμ)也更加合理:
总结一下,本文主要的contributions如下:
- 提出通过scribbles进行学习的SOD方法,介绍了新的数据集S-DUTS。
- 提出gated structure-aware loss去约束预测的显著图以与显著区域中的输入图像共享相似的结构。
- 提出scribble boosting scheme去拓展scribbles标注
- 提出新的评估指标
- 实验
2. Related Work
2.1. Learning Saliency from Weak Annotations
2.2. Weakly-Supervised Semantic Segmentation
2.3. Recovering Structure from Weak Labels
这个领域一般是两种方法,一个是基于图形模型的方法(如CRF),另一种是基于边界的losses。
2.4. Comparison with Existing Scribble Models
3. Learning Saliency from Scribbles
我们将训练集定义为: D = { x i , y i } i = 1 N D=\{x_i, y_i\}_{i=1}^N D={xi,yi}i=1N,其中 x i x_i xi是输入图像, y i y_i yi是相应的标注, N N N是训练集的size。在标注中,1表示前景,2表示背景,0表示未知像素。
我们的网络由三部分组成,如Fig. 4所示:
- 生成稀疏saliency map s c s^c sc的显著性预测网络(SPN),通过partial cross-entropy loss在scribbles标注上训练。
- 边缘检测网络(EDN),可以加强 s c s^c sc的结构,用gated structure-aware loss去加强saliency maps的边界。
- 边缘增强显著性预测模块edge-enhanced saliency prediction module (ESPM),可以从SPN中进一步提炼saliency maps。
3.1. Weakly-Supervised Salient Object Detection
Saliency prediction network (SPN): 显著性预测网络基于VGG16-Net构建,移除了第五pooling layer之后的layers。如Fig. 4中把相同分辨率的图分成一组,将 f 1 ( x , θ ) = { s 1 , ⋯ , s 5 } f_1(x,\theta)=\{s_1,\cdots,s_5\} f1(x,θ)={s1,⋯,s5},其中 s m ( m = 1 , ⋯ , 5 ) s_m(m=1,\cdots,5) sm(m=1,⋯,5)表示第m个stage最后的卷积层的特征, θ \theta θ是网络参数。
根据一些工作中的讨论,通过不同的dilation rates扩大感受野可以将辨识度信息传播给非辨识度区域。我们用dense atrous spatial pyramid pooling (DenseASPP)模块来生成特征图 s 5 ′ s_5^{'} s5′。在DenseASPP中我们使用不同的dilation rates。然后用两个 1 × 1 1×1 1×1卷积层把 s 5 ′ s_5^{'} s5′转换成单通道的稀疏saliency map s c s^c sc。
我们用partial cross-entropy loss来训练SPN:
L
s
=
∑
(
u
,
v
)
∈
J
l
L
u
,
v
\mathcal{L}_s=\sum_{(u,v)\in J_l}\mathcal L_{u,v}
Ls=(u,v)∈Jl∑Lu,v
其中
J
l
J_l
Jl表示有确定标注的像素点集合,
(
u
,
v
)
(u,v)
(u,v)是像素点的坐标,
L
u
,
v
\mathcal L_{u,v}
Lu,v是在
(
u
,
v
)
(u,v)
(u,v)的cross-entropy loss。
Edge detection network (EDN): EDN激励SPN去生成含有丰富结构信息的saliency features。我们使用SPN中间层的特征生成单通道的edge map
e
e
e。具体来讲就是中间5层分别通过
1
×
1
1×1
1×1卷积生成5个feature maps,然后这5个maps concat到一起,再通过
1
×
1
1×1
1×1卷积生成edge map
e
e
e。训练EDN使用cross-entropy loss
L
e
\mathcal L_e
Le:
L
e
=
∑
u
,
v
(
E
l
o
g
e
+
(
1
−
E
)
l
o
g
(
1
−
e
)
)
\mathcal L_e=\sum_{u,v}(Eloge+(1-E)log(1-e))
Le=u,v∑(Eloge+(1−E)log(1−e))
其中
E
E
E是通过现有的edge detector提前计算出来的。
Edge-enhanced saliency prediction module (ESPM): 我们用 edge-enhanced saliency prediction module提炼 s c s^c sc得到edge-preserving refined saliency map s r s^r sr。具体来说就是把 s c , e s^c, e sc,econcat到一起然后通过 1 × 1 1×1 1×1卷积生成saliency map s r s^r sr。 s r s^r sr是网络最终的输出。和训练SPN一样,我们用partial cross-entropy loss去监督 s r s^r sr。
Gated structure-aware loss: 根据“Constrain-to-boundary”原则,我们提出gated structure-aware loss来激励预测的saliency map的结构和图像的显著性区域相似。
我们期望预测的显著图在显著区域内具有一致的强度,而在目标边缘界限分明。通过smoothness loss,我们也在显著性区域强加了这样的限制。回想一下,smoothness loss是为了加强平滑度,同时保留整个图像区域的图像结构。然而SOD倾向于抑制显著性区域之外的结构信息。因此在整个图像区域加入smoothness loss会使saliency prediction模糊,如Table 2 "M3"所示。
为了减轻这种ambiguity,我们用gate mechanism让我们的网络只关注显著区域,以减少背景结构引起的干扰。我们定义gated structure-aware loss:
L
b
=
∑
u
,
v
∑
d
∈
x
→
,
y
→
Ψ
(
∣
∂
d
s
u
,
v
∣
e
−
α
∣
∂
d
(
G
⋅
I
u
,
v
)
∣
)
\mathcal L_b=\sum_{u,v}\sum_{d\in\overrightarrow{x},\overrightarrow{y}}\Psi(|\partial_{d}s_{u,v}|e^{-\alpha|\partial_d(G\cdot I_{u,v})|})
Lb=u,v∑d∈x,y∑Ψ(∣∂dsu,v∣e−α∣∂d(G⋅Iu,v)∣)
其中
Ψ
\Psi
Ψ被定义为
Ψ
(
s
)
=
s
2
+
1
e
−
6
\Psi(s)=\sqrt{s^2+1e^{-6}}
Ψ(s)=s2+1e−6,以避免计算0的平方根,
I
u
,
v
I_{u,v}
Iu,v是像素
(
u
,
v
)
(u,v)
(u,v)的image intensity value,
d
d
d表示在
x
→
,
y
→
\overrightarrow{x},\overrightarrow{y}
x,y方向的偏导数,
G
G
G是 structure-aware loss的门(见Fig. 6(d))。gated structure-aware loss对显著图
s
s
s的梯度使用L1惩罚以鼓励其局部平滑,边缘感知项(edge-aware term)
∂
I
\partial I
∂I作为权重以保持沿图像边缘的显著性区别。
Objective Function: 如Fig. 4所示,我们用partial cross-entropy loss
L
S
\mathcal L_S
LS和gated structure-aware loss
L
b
\mathcal L_b
Lb监督coarse saliency map
s
c
s^c
sc和refined map
s
r
s^r
sr,用cross-entropy loss
L
e
\mathcal L_e
Le监督edge detection network。最终总的loss如下:
L
=
L
s
(
s
c
,
x
)
+
L
s
(
s
r
,
y
)
+
β
1
⋅
L
b
(
s
c
,
x
)
+
β
2
⋅
L
b
(
s
r
,
x
)
+
β
3
⋅
L
e
\mathcal L=\mathcal L_s(s^c,x)+\mathcal L_s(s^r,y)+\beta_1\cdot\mathcal L_b(s^c,x)+\beta_2\cdot\mathcal L_b(s^r,x)+\beta_3\cdot\mathcal L_e
L=Ls(sc,x)+Ls(sr,y)+β1⋅Lb(sc,x)+β2⋅Lb(sr,x)+β3⋅Le
其中y表示scribbles标注。
3.2. Scribble Boosting
我们的scribbles标注可能会导致类间不连续问题,因此我们通过初步预测来把scribbles标注扩展成更加dense的标注。
如果通过DenseCRF直接加在scribbles标注上,结果并没有很大改变,见Fig. 7。
因此我们不直接拓展scribbles标注,而是把DenseCRF应用到initial saliency annotation
s
i
n
i
t
s^{init}
sinit上,然后把
s
i
n
i
t
s^{init}
sinit更新成
s
c
r
f
s^{crf}
scrf。但直接用
s
c
r
f
s^{crf}
scrf进行训练又不太行,因为
s
c
r
f
s^{crf}
scrf含有噪音,因此我们计算
s
i
n
i
t
s^{init}
sinit和
s
c
r
f
s^{crf}
scrf的差别,只有那些
s
i
n
i
t
=
s
c
r
f
=
1
s^{init}=s^{crf}=1
sinit=scrf=1的像素才是新的scribbles标注的前景,
s
i
n
i
t
=
s
c
r
f
=
0
s^{init}=s^{crf}=0
sinit=scrf=0的像素才是背景,其他为未知像素。
3.3. Saliency Structure Measure
我们使用bIOU loss作为指标
B
μ
B_{\mu}
Bμ进行评估,效果见Fig. 3。
predicted saliency map 为
s
s
s,gt为
y
y
y,两者的binarized edge maps分别为
g
s
,
g
y
g_s,g_y
gs,gy。则
B
μ
=
1
−
2
⋅
∑
(
g
s
⋅
g
y
)
∑
(
g
s
2
+
g
y
2
)
B_{\mu}=1-\frac{2\cdot\sum(g_s\cdot g_y)}{\sum(g_s^2+g_y^2)}
Bμ=1−∑(gs2+gy2)2⋅∑(gs⋅gy),其中
B
μ
∈
[
0
,
1
]
B_{\mu}\in[0,1]
Bμ∈[0,1]。
B
μ
=
0
B_{\mu}=0
Bμ=0说明预测准确。
在计算的时候由于边界像素很小,因此我们扩大了边界,以避免在计算measure时的不稳定性。