论文地址:Learning Unsupervised Multi-View Stereopsis via Robust Photometric Consistency
一、摘要
有监督的MVS方法在模型训练时依赖于数据的标签,但获取3D几何标签的过程是困难的;为此,本文利用多个视图之间的光度一致性作为模型的监督信号;由于遮挡和视图间的光照信息不同,只使用光照一致性不足以约束模型;为此,在损失函数中增加了梯度衡量项,提升模型的鲁棒性;
二、网络结构
模型结构与邮件的的MVSNet相似,
M
M
M 张不同视角的图像经过特征提取网络得到深度特征图,使用相机内参和外参将特征warp到参考视图,接下来基于方差构建匹配代价体;将得到的匹配代价体经过3D U-Net正则化得到概率体,最后基于期望的形式预测深度图
D
s
D_{s}
Ds ;
三、损失函数
自监督模型的关键点在于如何设计自监督损失来监督模型训练:得到初始深度图
D
s
D_{s}
Ds 时,对于参考视图
I
s
I_{s}
Is 与 源视图
I
v
m
I_{v}^{m}
Ivm ,将源视图基于预测深度图
D
s
D_{s}
Ds 与相机warp到参考视图得:
I
v
m
(
u
^
)
I_{v}^{m}(\hat{u})
Ivm(u^),在共同可视区域内,求光度一致性损失如下式所示:
L
photo
=
∑
m
M
∥
(
I
s
−
I
^
s
m
)
⊙
V
s
m
∥
(1)
L_{\text {photo }}=\sum_{m}^{M}\left\|\left(I_{s}-\hat{I}_{s}^{m}\right) \odot V_{s}^{m}\right\|\tag{1}
Lphoto =m∑M
(Is−I^sm)⊙Vsm
(1)
其中
V
s
m
V_{s}^{m}
Vsm 表示两个视图中公共视野中的像素集合;
为了增加模型鲁棒性,在光度一致性损失的基础上增加图像一阶导数的约束如式2所示,称之为一阶一致性损失:
L
photo
=
∑
m
=
1
M
∥
(
I
s
−
I
^
s
)
⊙
V
s
m
∥
ϵ
+
∥
(
∇
I
s
−
∇
I
^
s
m
)
⊙
V
s
m
∥
(2)
L_{\text {photo }}=\sum_{m=1}^{M}\left\|\left(I_{s}-\hat{I}_{s}\right) \odot V_{s}^{m}\right\|_{\epsilon}+\left\|\left(\nabla I_{s}-\nabla \hat{I}_{s}^{m}\right) \odot V_{s}^{m}\right\|\tag{2}
Lphoto =m=1∑M
(Is−I^s)⊙Vsm
ϵ+
(∇Is−∇I^sm)⊙Vsm
(2)
由于图像的遮挡产生的不可视点,使用光度一致性损失来强行约束两个像素点是不合理的,为此,需要融合多个图像对之间的匹配误差图,只使用top-K (M之外的)视图来实现逐像素的光度一致性,最后的光度一致性损失如式3所示:
L
photo
=
∑
u
min
m
1
,
⋯
m
K
m
i
≠
m
j
∑
m
k
L
m
k
(
u
)
V
s
m
k
(
u
)
>
0
(3)
L_{\text {photo }}=\sum_{u} \min _{m_{1}, \cdots m_{K} \atop m_{i} \neq m_{j}} \sum_{m_{k}} L^{m_{k}}(u) \\ \\ V_{s}^{m_{k}(u)>0}\tag{3}
Lphoto =u∑mi=mjm1,⋯mKminmk∑Lmk(u)Vsmk(u)>0(3)
上面的公式表明,对于像素
u
u
u,在像素投影有效的视图中,使用最佳的K个不相交视图来计算损失。将源图像warp到参考图像视图,并计算逐像素一阶一致性损失图。然后将所有的损失图堆叠成一个三维损失体,尺寸为
W
×
H
×
M
W\times H\times M
W×H×M。对于每个像素在
M
M
M 维度找到
K
K
K 个最小值并将它们相加,得到像素级的一致性损失。
此外,增加结构一致性损失和平滑项损失来约束模型训练,最后的损失函数如式4所示:
L
=
∑
α
L
photo
+
β
L
S
S
I
M
+
γ
L
S
m
o
o
t
h
(4)
L=\sum \alpha L_{\text {photo }}+\beta L_{S S I M}+\gamma L_{S m o o t h}\tag{4}
L=∑αLphoto +βLSSIM+γLSmooth(4)