DeepUSPS: Deep Robust Unsupervised Saliency Prediction With Self-Supervision
摘要
本文介绍了一种two-stage的机制来获得无监督的显著性检测结果。第一阶段通过多种手动设计的方法获得pseudo-labels,然后对其进行提炼。每个手动方法都是基于深度网络来生成pseudo-labels的,这些标签通过我们提出的自监督技术在多次迭代中逐步细化。在第二阶段,这些伪标注用来训练真正的显著性检测网络。本文最后展示了实验结果,和全监督SOTA方法作比较。代码可见:https://tinyurl.com/wtlhgo3
1 Introduction
本文通过深度神经网络(DNN)替代手动方法来逐渐提炼伪标签。We train a deep network to generate the pseudo-labels which benefits from learning the representations across a broad set of training images and thus significantly improve the pseudo-ground-truth labels as seen in Fig. 2 (we refer this effect as inter-images consistency).
inter-image consistency之后我们通过自监督技术迭代提炼伪标注以消除噪音,从而得到更好的结果。
overview如Fig. 3所示,第一步用多种手动设计方法得到许多不同的稀疏伪标签;第二步用其去训练深度网络,用image-level loss来加强inter-image consistency;第三步使用迭代的自监督技术historical moving averages (MVA),其训练时可以合并之前的多种模型来不断提炼伪标注;最后一步用得到的伪标注通过mean image-level loss来训练显著性检测网络。
2 Related work
3 DeepUSPS: Deep Unsupervised saliency prediction via self-supervision
本章解释Fig. 3中的各种细节。
3.1 Enforcing inter-images consistency with image-level loss
由于潜在的图像先验,手工制作的显着性预测方法在图像内是一致的,但在图像之间不一定一致。他们只在单一图像先验上进行操作而无法获取高级别的信息,如目标的形状和 perspective projections(透视投影?这怎么翻译?)。这种图像间的一致性(inter-images-consistency)可以通过使用每种方法的输出作为伪标签来强制训练具有image-level loss的深度网络。这样的过程可以提炼每个手动方法的伪标签。
训练样本记为 D D D,手动设计的方法记为 M M M。 M ( x , p ) M(x,p) M(x,p)代表方法 M M M在图像 x ∈ D x\in D x∈D上像素点 p p p的预测输出。我们用阈值 γ \gamma γ通过简单的函数 l ( x , p ) l(x,p) l(x,p)来二值化 M ( x , p ) M(x,p) M(x,p): l ( x , p ) = 1 , i f , M ( x , p ) > γ ; l ( x , p ) = 0 , o t h e r w i s e l(x,p)=1, if, M(x,p)>\gamma; l(x,p)=0, otherwise l(x,p)=1,if,M(x,p)>γ;l(x,p)=0,otherwise。 γ = 1.5 ∗ μ s a l i e n c y \gamma=1.5*\mu_{saliency} γ=1.5∗μsaliency, μ s a l i e n c y \mu_{saliency} μsaliency来自手动方法(这里有点不清楚)。这种离散化方案抵消了在预测不同不确定程度显著性的方法波动。与拟合连续的原始伪标签相比,伪标签的离散化使网络对大标签噪声的过拟合不那么敏感。
给定方法 M M M, θ \theta θ表示学习的相关参数, y ( x , p ) y(x,p) y(x,p)表示图像 x x x中 p p p点的输出。关于图像 x x x的伪标签的精度和召回率在附录中清楚展示。每个训练样本 x x x的image-level loss函数被定义为 L β = 1 − F β L_{\beta}=1-F_{\beta} Lβ=1−Fβ, F β F_{\beta} Fβ就是F-measure。
训练FCN来下降loss,训练轮数设置得要足够少,以免过拟合。
Historical moving averages of predictions 由于目前伪标签集中有大量的噪声,每次迭代模型的变化都很大。因此我们在训练过程中对网络的预测
y
(
x
,
p
)
y(x,p)
y(x,p)结合了historical moving average,如图Fig. 4b所示。
具体来讲,训练的每次前传我们在
y
(
x
,
p
)
y(x,p)
y(x,p)使用CRF,这些CRF的输出之后被累积到每个epoch k的MVA-predictions的每个像素点上:
M
V
A
(
x
.
p
.
k
)
=
(
1
−
α
)
∗
C
R
F
(
y
j
(
x
,
p
)
)
+
α
∗
M
V
A
(
x
,
p
,
k
−
1
)
MVA(x.p.k)=(1-\alpha)*CRF(y^j(x,p))+\alpha*MVA(x,p,k-1)
MVA(x.p.k)=(1−α)∗CRF(yj(x,p))+α∗MVA(x,p,k−1)
由于MVA在每次前传之后直接得到,不需要对每个训练集做额外的前传。由于显著性预测的历史集成,与获取直接模型快照相比,生成的map更稳健且波动更小。
3.2 Incremental pseudo-labels refining via self-supervision
moving-average predictions的质量明显高于the predictions of the network,原因是:(1)训练时大型模型集成的使用和(2)全连接CRF的使用。然而,在集成中训练获得的模型由于是在有噪声的伪标签上训练的,有强烈的波动,并不稳定。
为了改善集成中的模型,我们再次使用MVA,把伪标注作为新的训练集进行训练(见Fig. 4c)。网络被重新初始化,然后对最后训练阶段的MVA的 L β L_{\beta} Lβ进行下降。这一过程不断重复直到MVA的预测稳定。这样做之后,模型集成的密度减少了,但是每个模型的质量提高了。我们把这个过程称为self-supervised network training with moving average (MVA) predictions。
3.3 Inter-methods consistent saliency predictions
从Fig. 4a到Fig. 4c的过程用来提炼每个手动设计的方法的输出。这些步骤旨在改进每种方法的质量,同时保留基础设计的先验(priors)。另外,单独提炼每种方法会增加伪标签之间的多样性。因此,在最后融合的阶段伪标签的多样性被保留了。在最后一步(Fig. 4d),被提炼的saliency maps通过以下loss融合:
L
e
n
=
1
n
∑
i
L
β
i
L_{en}=\frac{1}{n}\sum_{i}L_{\beta}^i
Len=n1i∑Lβi
其中,
L
β
i
L_{\beta}^i
Lβi的计算和前文提及的
L
β
L_{\beta}
Lβ的计算类似,用来计算方法
M
i
M_i
Mi的被提炼的伪标签。这个融合操作很简单,且也可以和其他方法替换。