论文地址:Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference
问题的提出:
MVSNet中的3D卷积正则化模块显存消耗过大,使得模型难以在高分辨率的场景中使用,为此将3D卷积正则化模块替换成GRU模块,减小模型参数;
网络整体架构
1.共享网络提取模块+可微分单应性变换+基于方差计算代价体
选取一张参考视图与N-1张源视图共N张图片经过权值共享的网络提取模块中得到N个[B, C, h, w]的特征体;此后参照MVSNet,通过相机的内外参和目标深度,将源视图的特征体投影到参考视图中;最后使用基于方差的方式计算得各个深度的匹配代价体;
2.GRU-Convolution正则化模块
沿着深度方向使用多层堆叠的GRU-Convolution模块来正则化代价体,得到深度从
D
m
i
n
到
D
m
a
x
D_{min}到D_{max}
Dmin到Dmax的聚合代价体,以减少显存消耗,使其适用于大尺度的三维场景重建。
3. 在深度方向上进行softmax
在深度方向上进行softmax,得到概率体P
损失函数
L
o
s
s
=
∑
p
(
∑
i
=
1
D
−
P
(
i
,
p
)
⋅
log
Q
(
i
,
p
)
)
(1)
L o s s=\sum_{\mathbf{p}}\left(\sum_{i=1}^{D}-\mathbf{P}(i, \mathbf{p}) \cdot \log \mathbf{Q}(i, \mathbf{p})\right)\tag{1}
Loss=p∑(i=1∑D−P(i,p)⋅logQ(i,p))(1)
使用交叉熵损失,将深度回归问题转换为分类问题来处理;
视差优化
由于直接使用softmax来得到概率体的步骤无法得到亚像素精度的深度值。采用传统梯度下降的方法来进行视差优化;
E
i
(
p
)
=
E
photo
i
(
p
)
+
E
smooth
i
(
p
)
=
C
(
I
1
(
p
)
,
I
i
→
1
(
p
)
)
+
∑
p
′
∈
N
(
p
)
S
(
p
,
p
′
)
(2)
\begin{aligned} E^{i}(\mathbf{p}) &=E_{\text {photo }}^{i}(\mathbf{p})+E_{\text {smooth }}^{i}(\mathbf{p}) \\ &=\mathcal{C}\left(\mathbf{I}_{1}(\mathbf{p}), \mathbf{I}_{i \rightarrow 1}(\mathbf{p})\right)+\sum_{\mathbf{p}^{\prime} \in \mathcal{N}(\mathbf{p})} \mathcal{S}\left(\mathbf{p}, \mathbf{p}^{\prime}\right) \end{aligned}\tag{2}
Ei(p)=Ephoto i(p)+Esmooth i(p)=C(I1(p),Ii→1(p))+p′∈N(p)∑S(p,p′)(2)
对于第i张源视图,由预测的深度图与相机参数将
I
i
\mathbf{I}_{i}
Ii投影到参考视图
I
i
→
1
(
p
)
\mathbf{I}_{i \rightarrow 1}(\mathbf{p})
Ii→1(p),设置结构损失
E
photo
i
(
p
)
E_{\text {photo }}^{i}(\mathbf{p})
Ephoto i(p)和平滑损失
E
smooth
i
(
p
)
E_{\text {smooth }}^{i}(\mathbf{p})
Esmooth i(p),其中投影结构损失基于ZNCC(zero-mean normalized crosscorrelation)来计算;使用bilateral squared difference来计算中心点p和领域点的平滑损失;最后基于梯度下降法来优化预测深度图;