M3VSNET:无监督多度量多视图立体视觉网络(2021年)

B. Huang, H. Yi, C. Huang, Y. He, J. Liu and X. Liu, “M3VSNET: Unsupervised Multi-Metric Multi-View Stereo Network,” 2021 IEEE International Conference on Image Processing (ICIP), Anchorage, AK, USA, 2021, pp. 3163-3167, doi: 10.1109/ICIP42928.2021.9506469.
The code is available at https://github.com/whubaichuan/M3VSNet

摘要

与传统的MVS方法相比,目前采用的基于监督学习的网络的多视图立体匹配(MVS)方法具有显著的性能。然而,在有限的情况下用于训练的真实深度图很难获得。在本文中,我们提出了一种新的无监督多度量MVS网络,名为M3VSNet,用于没有任何监督的密集点云重建。为了提高点云重构的鲁棒性和完整性,我们提出了一种新的多度量损失函数,该函数结合了像素级和特征级损失函数,从匹配对应的不同角度学习固有的约束条件。此外,我们还在三维点云格式中加入了正常深度的一致性,以提高估计深度图的准确性和连续性。实验结果表明,M3VSNet建立了最先进的无监督方法,在DTU数据集上取得了比以前的监督MVSNet更好的性能,并在坦克和寺庙数据集上证明了强大的泛化能力和有效的改进。

1 引言

多视图立体视觉(MVS)旨在从多视图图像中重建三维密集点云,在增强现实、虚拟现实和机器人技术等领域有多种应用。传统方法通过手工特征(如NCC)计算匹配对应取得了很大的进展。然而,MVS在大规模环境中的有效和鲁棒的方法仍然是具有挑战性的任务。最近,深度学习被引入来缓解这一限制。基于监督学习的MVS方法取得了显著进展,特别是提高了密集点云重建的效率和完整性。这些基于学习的方法通过学习和推断信息来处理立体视觉对应难以获得的匹配歧义性。然而**,这些基于监督学习的方法强烈地依赖于具有真实深度图的训练数据集。它们的场景种类有限,也不容易获得。因此,这是一个很大的障碍,可能导致在不同复杂场景下的泛化能力差**。此外,密集点云重建的鲁棒性和完整性仍有很大的改进空间。基于学习的方法主要基于像素级水平,这会导致不正确的匹配对应,且的鲁棒性较低。因为对于两个相同的图像,只要从像素水平的角度进行像素偏移,差异可能会很大。然而,从特征水平等感知的角度来看,它们几乎是相同的。因此,本文旨在研究基于学习的MVS的数据独立性、鲁棒性和完整性。在本文中,我们提出了一种新的无监督多度量MVS网络,名为M3VSNet,如图1所示,即使在非理想环境下,它也可以推断出密集点云重建的深度图。最重要的是,我们提出了一种新的多度量损失函数,即像素级和特征级损失函数。关键的见解是,人类的视觉系统通过物体的特征来感知周围的世界。在损失函数方面,可以很好地保证光度和几何匹配的一致性。
在这里插入图片描述

具体来说,我们引入了来自预先训练过的VGG16网络的多尺度特征图,作为特征级丢失的重要线索。低级特征表示学习更多的纹理细节,而高级特征学习具有较大的接受域的语义信息。不同层次的特征是对不同的感受域的表现。此外,为了提高深度图的精度和连续性,我们在世界坐标空间中加入法线-深度一致性来约束估计深度图得到的局部表面切线与计算的法线正交。因此,在无纹理、镜面反射或反射和纹理重复区等具有挑战性的场景中,网络可以很好地提高匹配对应的鲁棒性和准确性。

2 相关工作

该领域提出了许多传统的方法,如基于体素的方法、特征点扩散、和估计深度图的融合。估计深度图的融合可以将重建解耦为深度估计和融合。单目的视频和双目成对图像的深度估计与多视点立体视觉有许多相似之处。单目视频缺乏实际深度的真实尺度,双目成对图像总是需要对并行的两幅图像进行校正。与单眼视频和双目成对图像相比,多视图遮挡和一致性等障碍提高了多视图立体视觉深度估计的难度。自从Yao Yao在2018年提出MVSNet以来,已经提出了许多基于MVSNet的监督网络。更重要的是,获得真实的深度图非常繁琐。Dai以对称的方式同时预测所有视图的深度图,这消耗了大量的GPU内存。此外,Tejas提出了简化的网络和传统的损失指定,但结果不令人满意。

3 实现方法

3.1 网络架构

M3VSNet的基本架构由三个部分组成,即金字塔特征聚合、基于方差的成本量生成和3D U-Net正则化,如图1所示。
在这里插入图片描述
金字塔特征聚合利用上下文信息从低级到高级的表示中提取特征。基于方差的代价体的构建是基于MVSNet中不同深度假设数D的可微分单应性变换。最后,通过正则化后的概率体积的soft argmin得到初始深度。M3VSNet由法线深度一致性和多度量损失组成。考虑到法线和局部曲面切线之间的正交性,我们结合了新的法线深度一致性来细化深度图。更重要的是,我们构造了多度量损失,它包括像素损失和特征损失

3.2 法线深度一致性

初始深度仍然包含一些低质量的错误匹配。因此,我们结合了基于法线和局部曲面切正交性的法线深度一致性。由于正交性,采用了向量积操作。对于每一个中心点 p i p_i pi,其中一组邻居可以被识别为 p i x p_{ix} pix p i y p_{iy} piy。如果已知 p i p_i pi的深度 Z i Z_i Zi和相机的内参K,法线 N i ~ \widetilde{N_i} Ni 计算如下:
P i = K − 1 Z i p i      ( 1 ) N i ~ = P i P i x → × P i P i y →      ( 2 ) \begin{align*} \\P_i =K^{-1}Z_{i}p_i~~~~(1)\\ \widetilde{N_i}=\overrightarrow{P_iP_{ix}} \times \overrightarrow{P_iP_{iy}}~~~~(2) \end{align*} Pi=K1Zipi    (1)Ni =PiPix ×PiPiy     (2)
最后的法线被估计为:
N i = 1 8 ∑ i = 1 8 ( N i ~ )      ( 3 ) N_i=\frac{1}{8} \sum_{i=1}^8(\widetilde{N_i})~~~~(3) Ni=81i=18(Ni )    (3)
在图2中,对于每个像素 p i ( x i 、 y i ) p_i(x_i、y_i) pi(xiyi),需要细化邻域的深度。它们对应的三维点是 P i P_i Pi和邻居。
在这里插入图片描述

P i P_i Pi的法线是 N i ~ ( n x , n y , n z ) \widetilde{N_i}(n_x, n_y, n_z) Ni (nx,ny,nz) P i P_i Pi的深度为 Z i Z_i Zi P n e i g h h o r P_{neighhor} Pneighhor的深度为 Z n e i g h h o r Z_{neighhor} Zneighhor。我们可以得到 N → ⊥ P i P n e i g h h o r → \overrightarrow{N} \bot \overrightarrow{P_iP_{neighhor}} N PiPneighhor 。由于局部表面的正交性和表面的一致性,这种关系显然是合理的。
( K − 1 Z i p i − K − 1 Z n e i g h b o r p n e i g h b o r ) ( n x , n y , n z ) = 0      ( 4 ) (K^{−1}Z_ip_i−K^{−1}Z_{neighbor}p_{neighbor})(n_x,n_y,n_z)=0~~~~(4) (K1ZipiK1Zneighborpneighbor)(nx,ny,nz)=0    (4)
考虑到某些边或不规则曲面的不连续,引入了参考图像 I i I_i Ii的权值 w i w_i wi。权重定义如下:
w i = e − α 1 ∣ ▽ I i ∣      ( 5 ) w_i=e^{-\alpha_1\left | \bigtriangledown I_i \right | }~~~~(5) wi=eα1Ii    (5)
权重 w i w_i wi取决于 p i p_i pi和邻居之间的梯度。最终的细化深度是不同方向的加权和的组合。
Z ~ n e i g h b o r = ∑ i = 1 8 w i ′ Z n e i g h b o r i      ( 6 ) w i ′ = w i ∑ i = 1 8 w i      ( 7 ) \begin{align*} \\\widetilde{Z}_{neighbor }=\sum_{i=1}^8w_i^{'}Z_{neighbor}^i~~~~(6) \\w_i^{'}=\frac{w_i}{ {\textstyle \sum_{i=1}^{8}w_i} }~~~~(7) \end{align*} Z neighbor=i=18wiZneighbori    (6)wi=i=18wiwi    (7)

3.3 多度量损失函数

我们提出了一种新的多度量损失函数,考虑了像素外特征对应的不同匹配视角。在多指标中关键思想是光度上跨多视图的一致性。给定参考图像 I r e f I_{ref} Iref和源图像 I s r c I_{src} Isrc,相应的内参表示为 K r e f K_{ref} Kref K s r c K_{src} Ksrc。此外,从 I r e f I_{ref} Iref I s r c I_{src} Isrc的外参用T表示。对于 I r e f I_{ref} Iref中的像素 p i ( x i , y i ) p_i(x_i, y_i) pi(xi,yi) I s r c I_{src} Isrc中对应的像素 p i ′ ( x i ′ , y i ′ ) p_i^{'}(x_i^{'}, y_i^{'}) pi(xi,yi)可以列为:
p i ′ = K s r c T ( K r e f − 1 Z ~ i p i )      ( 8 ) p_i^{'} = K_{src}T(K_{ref}^{−1}\widetilde{Z}_ip_i)~~~~(8) pi=KsrcT(Kref1Z ipi)    (8)
I r e f I_{ref} Iref I s r c I_{src} Isrc的重叠区域 I s r c ′ I_{src}^{'} Isrc可以使用双线性插值法进行采样
I s r c ′ = I s r c ( P i ′ )      ( 9 ) I_{src}^{'}=I_{src}(P_i^{'})~~~~(9) Isrc=Isrc(Pi)    (9)
对于遮挡区域,在 I s r c ′ I_{src}^{'} Isrc中的掩模M的值被设置为零。在先验约束的基础上,将多度量损失函数L表示为像素级损失 L p i x e l L_{pixel} Lpixel和特征级损失 L f e a t u r e L_{feature} Lfeature的和。
L = ∑ ( γ 1 L p i x e l + γ 2 L f e a t u r e )      ( 10 ) L=\sum (\gamma _1 L_{pixel}+\gamma _2 L_{feature})~~~~(10) L=(γ1Lpixel+γ2Lfeature)    (10)
像素级损失
对于像素级损失,我们只考虑参考图像 I r e f I_{ref} Iref和其他源图像之间的光度一致性。这个损失函数主要有三个部分。首先,光度损失为:
L p h o t o = 1 m ∑ i = 1 m ( ( I r e f i − I s r c ′ i ) + ( ▽ I r e f i − ▽ I s r c ′ i ) ) ⋅ M      ( 11 ) L_{photo}=\frac{1}{m}\sum_{i=1}^m((I_{ref}^i-I_{src}^{'i})+(\bigtriangledown I_{ref}^{i}-\bigtriangledown I_{src}^{'i}))·M~~~~(11) Lphoto=m1i=1m((IrefiIsrci)+(IrefiIsrci))M    (11)
其中m是掩模M中有效点的和。
其次,结构相似性的损失(SSIM) L S S I M L_{SSIM} LSSIM为:
L S S I M = 1 m ∑ i = 1 m 1 − S ( I r e f i , I s r c ′ i ) 2 ⋅ M      ( 12 ) L_{SSIM}=\frac{1}{m}\sum_{i=1}^m\frac{1-S(I_{ref}^i,I_{src}^{'i})}{2}·M~~~~(12) LSSIM=m1i=1m21S(Irefi,Isrci)M    (12)
第三,最终深度图的光滑性可以在一阶域和二阶域上进行操作:
L s m o o t h = 1 n ∑ i = 1 n ( e − α 2 ∣ ▽ I r e f i ∣ ∣ ▽ Z ~ i ∣ + e − α 3 ∣ ▽ 2 I r e f i ∣ ∣ ▽ 2 Z ~ i ∣ )      ( 13 ) L_{smooth}=\frac{1}{n}\sum_{i=1}^{n}(e^{-\alpha_2 \left | \bigtriangledown I_{ref}^i \right |} \left | \bigtriangledown \widetilde{Z}_i \right |+e^{-\alpha_3 \left | \bigtriangledown^2 I_{ref}^i \right |} \left | \bigtriangledown^2 \widetilde{Z}_i \right |)~~~~(13) Lsmooth=n1i=1n(eα2Irefi Z i +eα32Irefi 2Z i )    (13)
其中n为参考图像 I r e f I_{ref} Iref中点数的和。最后,总像素级损失 L p i x e l L_{pixel} Lpixel列出为:
L p i x e l = λ 1 L p h o t o + λ 2 L S S I M + λ 3 L s m o o t h      ( 14 ) L_{pixel}=λ_1L_{photo}+λ_2L_{SSIM}+λ_3L{smooth}~~~~(14) Lpixel=λ1Lphoto+λ2LSSIM+λ3Lsmooth    (14)
特征损失
在一些具有挑战性的场景中,像素级损失会出现匹配错误。因此,M3VSNet的主要改进之一是使用特征损失,这将利用更多的语义信息来匹配特征。通过预先训练好的VGG16网络,如图3所示,参考图像 I r e f I_{ref} Iref可以提取出更多高级的语义信息构造特征级损失函数。在这里,我们提取了第8层、第15层和第22层,它们分别是原始输入图像的一半、四分之一和八分之一。对于VGG16中的每个特征,我们基于交叉多视图的概念来构造损失。与前面一样, F s r c F_{src} Fsrc中相应的像素 p i ′ p_{i}^{'} pi也可以可用同样的方法获得。从 F r e f F_{ref} Fref F s r c F_{src} Fsrc的匹配特征如下所示:
F s r c ′ = F s r c ( P i ′ )      ( 15 ) F_{src}^{'}=F_{src}(P_i^{'})~~~~(15) Fsrc=Fsrc(Pi)    (15)
损失如下:
L F = 1 m ∑ ( F r e f − F s r c ′ ) ⋅ M      ( 16 ) L_F=\frac{1}{m}\sum(F_{ref}-F_{src}^{'})·M~~~~(16) LF=m1(FrefFsrc)M    (16)
最终的特征损失函数是在不同特征尺度上的加权和,提高了点云重建的鲁棒性和完备性。 L F 8 L_{F_8} LF8表示预训练过的VGG16的第8层的特征。
L f e a t u r e = β 1 L F 8 + β 2 L F 1 5 + β 3 L F 22      ( 17 ) L_{feature} = \beta_1L_{F_8}+ \beta_2L_{F_15}+ \beta_3L_{F_{22}}~~~~(17) Lfeature=β1LF8+β2LF15+β3LF22    (17)

4 实验分析

4.1.DTU上的性能

DTU数据集是一个多视图立体视觉数据集,它有124个不同的场景,每个场景有49次扫描。随着7种照明的变化,每次扫描都7种有已知位姿。M3VSNet由Pytorch实现。输入图像的分辨率为640×512。由于金字塔特征的聚集,最终深度的分辨率为160×128。此外,假设的深度范围从425mm到935mm采样,深度样本数D设置为192。该模型在4个NVIDIA RTX 2080Ti中进行了批量训练。利用Adam优化器优化10个时代,第一个时期的学习速率设置为1e-3,每两个时代的学习速率减少0.5。对于不同权重的平衡,我们设置为γ1 = 1、γ2 = 1、α1 = 0.1、α2 = 0.5、α3 = 0.5、λ1 = 0.8、λ2 = 0.2、λ3 = 0.067。除此之外,还有β1 = 0.2、β2 = 0.8、β3 = 0.4。在每次迭代中,使用一个参考图像和两个源图像。在测试阶段,输入图像的分辨率为1600×1200。

官方指标用于评估M3VSNet在DTU数据集上的性能。有三个指标分别叫精度、完整性、整体性。如表1所示,M3VSNet的性能优于现有的两种基于无监督学习的方法,Unsup MVS和MVS2。此外,M3VSNet在整体性能方面优于基于监督学习的MVSNet。与传统的MVS方法相比,M3VSNet在完整性上有了显著的提高,除了Colmap外,在整体质量上优于Furu和Tola,但效率较高。关于点云重建的更详细信息,图4说明了定性比较。M3VSNet的重建比没有特征损失的重建具有更完整的纹理细节。因此,M3VSNet建立了最先进的多视图立体视觉重建的无监督学习方法。
在这里插入图片描述
在这里插入图片描述

4.2. 对坦克和寺庙的泛化能力

为了评估M3VSNet的泛化能力,我们使用了具有高分辨率的户外大型场景图像的中间坦克和寺庙基准。在DTU数据集上训练的M3VSNet模型被转移到坦克和寺庙数据集上测试,而不进行任何微调。中间坦克和寺庙数据集的基准测试中包含了各种分辨率为1920×1056和深度假设D = 160的图像。另一个核心超参数是深度聚变过程中的光度阈值。对于相同的深度图,不同的光度阈值会导致不同的性能。较高的光度阈值会导致更好的准确性,但更差的完整性。反过来,较低的光度阈值将引入更好的完整性,但更差的准确性。对于我们提出的M3VSNet,光度阈值设置为0.6,我们得到以下结果。

在中间坦克和寺庙基准测试排行榜上的排名表明,M3VSNet在2020年8月30日之前是最好的无监督MVS网络。更重要的是,我们在训练集中训练我们的模型,并通过测试集中的分数来评估泛化能力。综上所述,图5中的性能展示了我们提出的M3VSNet强大的泛化能力。
在这里插入图片描述

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值