从合成数据学习深度是一个潜在的解决方案,因为合成数据又精确的深度图,但是这隐含的假设条件是合成数据需要与真实数据相似度较高,否则由于 domain gap 的问题,在合成数据上训练的模型在真实场景数据难以保持性能。典型的使用合成数据的例子是在室内合成场景数据训练的模型在室外自动驾驶场景则表现较差,但是在合成自动驾驶场景数据训练的模型则在真实驾驶场景中会又有相对较好的性能。因此,需要建立不同场景的数据之间的对应关系
直接使用合成数据训练单目深度模型时,由于深度估计对视角敏感,因此结果一般交叉,一般来说,使用专门设置的某个场景的合成数据可以减少 domain gap 的问题,但是双目立体匹配网络中,仅仅使用合成数据训练也可以在其他跨域数据中得到可以接收的视差图预测结果,这说明双目立体匹配网络可以成为两个数据域、两个相关任务之间的桥梁,用于简介从合成数据中进行学习
遮挡区域掩膜的真实值可以从真实的视差图结合左右视差的一致性得到
M
i
,
j
∗
=
1
(
∣
D
i
,
j
∗
L
−
D
i
,
j
∗
w
R
∣
≤
1
)
M^*_{i,j}=\mathbb{1}(|D^{*L}_{i,j}-D^{*wR}_{i,j}|\le1)
Mi,j∗=1(∣Di,j∗L−Di,j∗wR∣≤1)
损失定义为
L
s
t
e
r
e
o
m
=
L
d
i
s
p
+
L
o
c
c
\mathcal{L}_{stereo}^{m}=\mathcal{L}_{disp}+\mathcal{L}_{occ}
Lstereom=Ldisp+Locc
L
o
c
c
=
−
1
N
∑
i
,
j
M
i
,
j
∗
log
(
M
i
j
)
+
(
1
−
M
i
j
∗
log
(
1
−
M
i
j
)
)
\mathcal{L}_{occ}=-\frac{1}{N}\sum_{i,j}M^*_{i,j}\log (M_{ij})+(1-M^*_{ij}\log(1-M_{ij}))
Locc=−N1∑i,jMi,j∗log(Mij)+(1−Mij∗log(1−Mij))
监督和无监督的真实场景数据精调
监督精调
L
s
t
e
r
e
o
(
s
u
p
f
t
)
m
=
L
d
i
s
p
\mathcal{L}_{stereo(supft)}^m=\mathcal{L}_{disp}
Lstereo(supft)m=Ldisp
无监督精调:
L
s
t
e
r
e
o
(
u
n
s
u
p
f
t
)
m
=
L
p
h
o
t
o
+
γ
1
L
a
b
s
+
γ
2
L
r
e
l
\mathcal{L}_{stereo(unsupft)}^m=\mathcal{L}_{photo}+\gamma_1\mathcal{L}_{abs}+\gamma_2\mathcal{L}_{rel}
Lstereo(unsupft)m=Lphoto+γ1Labs+γ2Lrel
图像损失是基于重投影 warp 操作的图像重建损失:
L
p
h
o
t
o
=
1
N
∑
i
,
j
M
u
n
(
i
,
j
)
∣
I
i
j
L
−
I
i
j
w
R
∣
\mathcal{L}_{photo}=\frac{1}{N}\sum_{i,j}M_{un(i,j)}|I_{ij}^L-I_{ij}^{wR}|
Lphoto=N1∑i,jMun(i,j)∣IijL−IijwR∣
绝对损失:
L
a
b
s
=
1
N
∑
i
,
j
(
1
−
M
u
n
(
i
,
j
)
+
γ
3
)
∣
D
i
j
L
−
D
u
n
(
i
j
)
L
∣
\mathcal{L}_{abs}=\frac{1}{N}\sum_{i,j}(1-M_{un(i,j)}+\gamma_3)|D_{ij}^L-D_{un(ij)}^{L}|
Labs=N1∑i,j(1−Mun(i,j)+γ3)∣DijL−Dun(ij)L∣
相对损失:
L
r
e
l
=
1
N
∑
i
,
j
∣
∇
D
i
,
j
L
−
∇
D
u
n
(
i
j
)
L
∣
\mathcal{L}_{rel}=\frac{1}{N}\sum_{i,j}|\nabla D_{i,j}^L-\nabla D_{un(ij)}^L|
Lrel=N1∑i,j∣∇Di,jL−∇Dun(ij)L∣
蒸馏立体匹配网络
多尺度信息整合
L
m
o
n
o
m
=
1
N
∑
i
,
j
∣
D
~
i
j
L
−
D
i
j
L
∣
\mathcal{L}_{mono}^m=\frac{1}{N}\sum_{i,j}|\tilde D_{ij}^L-D_{ij}^L|
Lmonom=N1∑i,j∣D~ijL−DijL∣