论文阅读《P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo》

论文地址:P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo

一、摘要

  Cost Volumes 应该是各向异性的,但是传统的方法使用各向同性的方式来处理它(基于方差计算,每个像素都以相同的贡献度参加代价聚合计算),文章使用了一个各向同性的3D卷积和各向异性的3D卷积相结合的代价聚合方式得到更加鲁棒的代价体。

二、网络结构

论文阅读《P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo》_第1张图片

2.1 特征提取

论文阅读《P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo》_第2张图片
  与MVSNet一样,经过卷积神经网络提取参考图像和N-1张源图像的特征 F i ∈ R H 4 × W 4 × C F_{i} \in \mathbb{R}^{\frac{H}{4}\times \frac{W}{4} \times C} FiR4H×4W×C,其中 i ∈ ( 0 , N − 1 ) i\in(0, N-1) i(0,N1),将参考视图经过Decoder得到参考视图的引导特征图 F 0 ′ ∈ R H 2 × W 2 × C F_{0}^{\prime} \in \mathbb{R}^{\frac{H}{2} \times \frac{W}{2} \times C} F0R2H×2W×C,其中 { F i } 1 N − 1 \{F_{i}\}_{1}^{N-1} {Fi}1N1用于后面构建Matching Confidence Volume(MCV),而 F 0 ′ F_{0}^{\prime} F0用于引导生成更高分辨率的深度图。

2.2 基于patch的可学习匹配代价置信度计算

论文阅读《P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo》_第3张图片
  匹配代价体计算:将源视图的特征图经过相机的内外参数warp到参考视图,然后基于L2距离计算匹配代价体,如式1所示:
M ( d , p , c ) = exp ⁡ ( − ∑ j = 1 N − 1 ( F j ( p ′ , c ) − F 0 ( p , c ) ) 2 N − 1 ) (1) \mathcal{M}(d, \boldsymbol{p}, c)=\exp \left(-\frac{\sum_{j=1}^{N-1}\left(F_{j}\left(\boldsymbol{p}^{\prime}, c\right)-F_{0}(\boldsymbol{p}, c)\right)^{2}}{N-1}\right)\tag{1} M(d,p,c)=exp(N1j=1N1(Fj(p,c)F0(p,c))2)(1)
其中, j j j 代表不同视图, p p p 代表参考帧的像素点坐标, c c c 代表特征的维度, p ′ p^{\prime} p 表示邻域帧中 p p p 点对应的像素坐标点。
  代价聚合
M a ( d , p , c ) = ρ 1 ( M ( d , p , c ) ) + ρ 2 ( Ω 1 ( M ( d , p , c ) ) ) (2) \mathcal{M}^{a}(d, \boldsymbol{p}, c)=\rho_{1}(\mathcal{M}(d, \boldsymbol{p}, c))+\rho_{2}\left(\Omega_{1}(\mathcal{M}(d, \boldsymbol{p}, c))\right)\tag{2} Ma(d,p,c)=ρ1(M(d,p,c))+ρ2(Ω1(M(d,p,c)))(2)
其中: ρ 1 ρ_{1} ρ1 就是将 p p p 点的特征值乘以一个1x1x1的卷积核(一个尺度因子), Ω 1 Ω_{1} Ω1 表示1x3x3的卷积+BN+RELU,表示将 p p p 点邻域的像素聚合,但只在同一个深度层聚合,因为卷积核的第一维为1,该卷积核的参数为ρ1。
M ⋆ ( d , p , c ) = tanh ⁡ ( ρ 3 ( Ω 2 ( M a ( d , p , c ) ) ) ) (3) \mathcal{M}^{\star}(d, \boldsymbol{p}, c)=\tanh \left(\rho_{3}\left(\Omega_{2}\left(\mathcal{M}^{a}(d, \boldsymbol{p}, c)\right)\right)\right) \tag{3} M(d,p,c)=tanh(ρ3(Ω2(Ma(d,p,c))))(3)
其中:逐深度进行代价聚合之后,沿着深度方向也进行聚合, Ω 2 Ω_{2} Ω2 代表3x3x3的卷积核,在 p p p 点的深度再考虑上下两个深度的3x3的邻域内做代价聚合。卷积核的参数为 ρ 3 ρ_{3} ρ3,最后乘以一个非线性因子tanh得到代价聚合后的 M ⋆ ( d , p , c ) \mathcal{M}^{\star}(d, \boldsymbol{p}, c) M(d,p,c).

2.3 hybrid 3D U-Net

论文阅读《P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo》_第4张图片
  将 M ⋆ ( d , p , c ) \mathcal{M}^{\star}(d, \boldsymbol{p}, c) M(d,p,c)送入到hybrid 3D U-Net得到latent probability volume(LPV)记为 V 2 = V 2 ( d , p ) ∈ ( Z × H 4 × W 4 ) V_{2}=V_{2}(d,p)\in(Z\times \frac{H}{4}\times \frac{W}{4}) V2=V2(d,p)(Z×4H×4W),表示表示 F 0 F_{0} F0 每个像素在深度方向上的潜在概率分布。网络由多个各向异性的3D卷积核各向同性的3D卷积组成。浅层使用各向异性的卷积核融合代价体,深层使用各向同性的卷积核来融合更多的信息(各向异性的卷积指的是三个维度不相等的卷积核,各向同性的卷积核指的是三个维度相同的卷积核,感觉有点强行凑观点的嫌疑哈哈哈)。

2.4 深度图计算

  先将 V 2 V_{2} V2经过在深度维度上做softmax得到一个概率体 P 2 P_{2} P2,基于期望计算深度图:
D ℓ 2 ( p ) = ∑ d = D min ⁡ D max ⁡ d ⋅ P 2 ( d , p ) (4) D_{\ell_{2}}(\boldsymbol{p})=\sum_{d=D_{\min }}^{D_{\max }} d \cdot \mathcal{P}_{2}(d, \boldsymbol{p})\tag{4} D2(p)=d=DminDmaxdP2(d,p)(4)
论文阅读《P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo》_第5张图片

   D ℓ 2 D_{\ell_{2}} D2是分辨率较低的深度图,使用参考图像的特征图 F 0 ′ F_{0}^{\prime} F0 来引导生成高分辨率的深度图。首先将 F 0 ′ F_{0}^{\prime} F0 与 上采样后的 V 2 V_{2} V2 concat成通道为 C + Z C+Z C+Z的输入,再经过一个CNN+BN+RELU和一个softmax和期望回归层,输入高分辨率的深度图 D ℓ 1 D_{\ell_{1}} D1

三、损失函数

  损失函数如下:
 Loss  = α ∣ Φ 2 ∣ ∑ p ∈ Φ 2 ∥ D ℓ 2 ( p ) − D ℓ 2 ⋆ ( p ) ∥ 1 + 1 − α ∣ Φ 1 ∣ ∑ p ∈ Φ 1 ∥ D ℓ 1 ( p ) − D ℓ 1 ⋆ ( p ) ∥ 1 (5) \begin{aligned} \text { Loss }=& \frac{\alpha}{\left|\Phi_{2}\right|} \sum_{p \in \Phi_{2}}\left\|D_{\ell_{2}}(p)-D_{\ell_{2}}^{\star}(p)\right\|_{1} +\frac{1-\alpha}{\left|\Phi_{1}\right|} \sum_{\boldsymbol{p} \in \Phi_{1}}\left\|D_{\ell_{1}}(\boldsymbol{p})-D_{\ell_{1}}^{\star}(\boldsymbol{p})\right\|_{1} \end{aligned}\tag{5}  Loss =Φ2αpΦ2D2(p)D2(p)1+Φ11αpΦ1D1(p)D1(p)1(5)
其中, Φ 2 \Phi_{2} Φ2 Φ 1 \Phi_{1} Φ1表示有标签的像素点, D ℓ 1 ⋆ D_{\ell_{1}}^{\star} D1 D ℓ 2 ⋆ D_{\ell_{2}}^{\star} D2表示对应的Ground truth深度图; α \alpha α是一个可调节的权重超参数;

四、深度图滤波

4.1 基于深度估计置信度

  当聚合代价体的深度方向上是单峰时的置信度是最高的。因此,使用初始深度图前的概率体求深度图 D ℓ 2 D_{\ell_{2}} D2的置信度图 C 2 ( p ) C_{2}(p) C2(p)
C 2 ( p ) = max ⁡ { P 2 ( d , p ) ∣ d ∈ [ D min ⁡ , D max ⁡ ] } (6) C_{2}(\boldsymbol{p})=\max \left\{\mathcal{P}_{2}(d, \boldsymbol{p}) \mid d \in\left[D_{\min }, D_{\max }\right]\right\}\tag{6} C2(p)=max{P2(d,p)d[Dmin,Dmax]}(6)
  将 C 2 ( p ) C_{2}(\boldsymbol{p}) C2(p)上采样后为 U 1 U_{1} U1,计算深度图 D ℓ 1 D_{\ell_{1}} D1的置信度图如式7所示:
C 1 ( p ) = U 1 ( p ) + max ⁡ { P 1 ( d , p ) ∣ d ∈ [ D min ⁡ , D max ⁡ ] } (7) C_{1}(\boldsymbol{p})=U_{1}(\boldsymbol{p})+\max \left\{\mathcal{P}_{1}(d, \boldsymbol{p}) \mid d \in\left[D_{\min }, D_{\max }\right]\right\}\tag{7} C1(p)=U1(p)+max{P1(d,p)d[Dmin,Dmax]}(7)
  使用深度估计置信度图来进行滤波,去除置信度低的像素点。

基于深度一致性

  利用了传统方法中的左右一致性检查;
∣ q ′ − p ∣ < ϵ ∣ d ^ ( q ′ ) − d ^ ( p ) ∣ d ^ ( p ) < η (8) \left|\boldsymbol{q}^{\prime}-\boldsymbol{p}\right|<\epsilon \\ \\ \frac{\left|\hat{d}\left(\boldsymbol{q}^{\prime}\right)-\hat{d}(\boldsymbol{p})\right| }{ \hat{d}(\boldsymbol{p})}<\eta\tag{8} qp<ϵd^(p)d^(q)d^(p)<η(8)

五、实验结果

论文阅读《P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo》_第6张图片
论文阅读《P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo》_第7张图片

你可能感兴趣的:(三维重建论文阅读,深度学习,计算机视觉,机器学习)