基于金字塔结构的网格引导多视图三维重建
目录
前言
针对三维重建中的弱纹理区域,本文提出基于金字塔结构的网格引导MVS方法(利用从粗尺度图像得到的曲面网格指导重建过程)
- 首先采用基于PatchMatch匹配的MVS算法生成粗尺度图像的深度图,然后用曲面重构算法得到相应的曲面网格(PatchMatch:主要用于在两幅二维图像中搜索最近领域中相似度最高的patch)
- 然后,我们将网格投影到每个深度图上,以替换不可靠的深度值,并将校正后的深度图反馈给精细尺度重建进行初始化。设计并训练一个cnn来去除错误深度值(以减少可能出现的错误面对网格的影响)
- 此外,低纹理区域的正确深度值往往在精细尺度下难以求得,因此我们也开发了一种有效的方法来寻找这些区域,并进一步加强这些区域的几何一致性
1、介绍
随着CNN的发展,研究表明,基于CNN的patch描述子在低纹理区域的性能优于手工制作的patch描述子。(patch: 卷积核的输入。kernel size便是 patch 的size。卷积核每次只查看图像的一个块,这一个小块就称为 patch)
在这些工作的基础上,一些基于CNN的MVS方法进一步提高了对弱纹理区域的鲁棒性,因为每个特征的感受野都远远大于匹配大小。另一方面,这些MVS算法通常受到设备内存大小的限制,例如,它们通常不能很好地处理高分辨率图像。对于基于CNN的方法,下采样图像可能不是一个好的选择,因为同时精确度会降低。因此,在处理高分辨率场景的弱纹理区域时仍然存在困难。
在本文中,提出了一种新的网格引导的MVS方法(MG-MVS),该方法采用金字塔结构,以曲面网格为引导,实现高分辨率场景中低纹理区域的完整性重建。首先,采用金字塔结构,融合最粗尺度的深度图来构造一个曲面网格然后用于增强深度图的完整性。然后,我们将它们输入到更精细的尺度,并通过在弱纹理区域加强几何一致性获得正确的估计。
下图为MG-MVS估算的深度图,与没有曲面网格引导的结果进行了比较。
2、相关工作
A.PatchMatch-based MVS methods
基于面片的多视角三维立体视觉算法的目的就是保证在每个图像块Ci(x,y)上至少有一个面片的的投影。主要分为以下三步:
- 初始化特征匹配(initial feature matching)
- 面片生成(patch expansion)
- 面片筛选(patch filtering)
初始化特征匹配的目的就是生成一系列稀疏的面片,面片的生成和筛选都要执行n次使得面片足够稠密,同时去除不好的面片。
COLMAP进一步将正态估计嵌入到Patchmatch based joint view selection anddepthmap estimation提出的框架中,并使用几何先验来提高视图选择的鲁棒性。基于PatchMatch的MVS虽然已经取得了很大的成功,但它仍然存在一个明显的缺点,即没有纹理的区域很少得到正确的管理,这些方法产生的结果的完整性很低。
B.CNN-based MVS methods
Yao等人设计了用于深度图推断的MVSNet,并在DTU和坦克与庙宇数据集上证明了其高效性。它们进一步将MVSNet与循环神经网络相结合,以减少内存消耗。
P-MVSNet利用基于均方误差的置信度度量和一个混合的3D U-Net将光度一致性聚合为一个patch-wise匹配的置信体。(pixel-wise < patch-wise < image-wise)
由于CPU内存的限制,基于CNN的方法通常不能很好地应用于ETH3D等高分辨率数据集。将 image分割成patch、在基础模型中叠加语义网络5yi进一步改进了语义分割结果、建立网络来预测视差图的可信度、结合来自视差图和成本量的信息来估计置信度、规模推理网络等方法随之相继提出。
3、MG-MVS
- 从输入图像开始,通过下采样建立一个具有三个尺度的图像金字塔,然后使用ACMH获得coarsest scale的初始深度图,并将其融合到一个粗略点云中(尽可能多地保留正确的估计),然后重建为一个曲面网格。
- 利用该网格来完成过滤后的深度图。为了进一步消除错误深度,将深度图喂给“MG-Conf”神经网络,以预测相应的置信度图,然后消除低置信度的深度。
- 同时使用一个untextured regions detector来识别无纹理区域。无纹理区域图和深度图都进行了上采样(达到finer scale),以指导下一步更精细的MVS过程,并且在无纹理区域中进行几何一致性约束以保持可靠的估计。(连续执行两次:上采样+几何一致性约束的ACMH)
- 最后, finest scale的深度图融合产生最终的点云。
A.Mesh Construction
background:
网格重建,是指从三维点云出发,重建出三维网格。网格与点云最大的区别是,网格有了曲面的概念,虽然它只是分片线性的曲面。自适应网格传播及启发式视图选择的MVS框架——ACMH算法
(MVS:首先为每幅图像估计其深度图,然后将这些深度图融合得到统一的点云表示。)
- 优化了红黑棋盘格的传播方法,不是像Gipuma采用固定的8个位置假设,而是采用下图右所示的V形和长条形区域来自适应地选取局部最优假设进行传播,其中,每个V形区域包含7个可采样点,每个长条区域包含11个可采样点。这样使得算法能够有机会找到更好的深度假设。
- 引入了视图选择机制,提出了一种启发式的多假设联合视图选择策略来对NCC匹配代价进行加权。
首先将输入图像降采样到coarsest scale,然后在该scale下执行ACMH获得初始深度图。为了提高ACMH的效率,在精化阶段中使用扰动假设,并且扰动范围随着迭代的进行而变化。
第m次迭代:rnow = rinit * (0.5)^m
采用OpenMVS中的片段消除策略来清除初始深度图的不连续片段。(尤其无纹理区域)
然后,利用相对的深度差融合深度图,得到一个粗略的点云。给定一个参考视图的深度,把它转换成世界坐标系中的一个三维点,然后投影到一个相邻的视图中,得到这个点在Vsn坐标系中的深度dr和Vsn深度图中相应的深度dsn。我们认为这两个深度是一致的匹配,如果他们满足
ε3是coarsest scale下的相似性阈值。ε3=4ε1(因为 coarsest scale比finest scale的图像小四倍)
将vr中的3D点投影到每个相邻视图,如果匹配数满足Nmatch>=1,则将该3D点添加到点云。将每个视图依次转换为参考视图,以获得完整的点云。Nmatch松散的阈值可以确保在保留的无纹理区域进行正确的估计,但它会使点云产生噪声。为了从大量离群点中提取曲面,本文采用了基于可见信息的曲面重构算法,具有很强的鲁棒性。点云用于构建Delaunay四面体,然后将其标记为对象的内部或外部,目标曲面位于具有不同标签的四面体之间。
B.Mesh Guidance
在获得coarsest scale的曲面网格后,用它来指导三维重建的过程。首先将网格投影到每个视图中,填充由片段移除策略移除的片段。此外,利用该网格对深度图进行细化,进行几何一致性约束对深度图进行过滤。过滤Nmatch<2的深度,并将其标记为无效,然后用网格投影的深度值替换无效深度。(如果我们在过滤时保持阈值Nmatch=1,那么会有很多错误的深度被标记为有效)
通过网格投影,可以在考虑遮挡的情况下,将无纹理区域的可靠估计从参考视图传播到相邻视图,从而大大提高了相邻深度图的完整性。
相反,由于几何一致性,完整的邻域深度图有助于在finer scale上估计参考视图。此外,使用曲面网格指导MVS也可以实现平面完整性。
生成的深度图随后被馈到下一个finer scale,以进一步指导MVS过程。由于初始值好,可以在finer scale上得到更好的估计,搜索范围也受到几何一致性的约束,从而避免陷入其他局部最优值。
C.Confidence Prediction Networks
尽管曲面重建算法具有很强的鲁棒性,但它仍然会产生一些错误的面,从而导致深度图的计算错误,进而在更细尺度上误导MVS。而卷积神经网络在对给定的初始视差图进行置信度估计时具有很好的性能,因此本文提出MG-Conf。
MG-Conf:特征提取模块将颜色、深度和成本作为输入,生成特征图,然后由下面的注意力模块进行融合。叠加注意模块的ASPP网络利用不同大小的感受野对融合后的特征进行卷积,得到置信图,循环求精模块进一步提高精度。
大的感受野会产生稳健的结果,但会丢失细节,叠加注意模块的ASPP网络实现对每个像素的感受野的调整。使用以下公式计算一个特征的感受野大小:
R = n(k−1) +rori
n表示卷积层数,k表示核的大小,rori表示输入的感受野大小。
特征提取模块包含三个卷积层,卷积核大小为3,一个特征的感受野大小为7。经过卷积核大小为5的三层卷积后,attention map的感受野大小扩大到19,对应ASPP第二层的感受野,关注以下两种情况:
- scale attention map感受野中的特征能够预测置信度
- 需要该区域以外的特征信息
使用叠加注意力机制的ASPP的输出预测置信度图,该置信度图将被反馈给循环精化模块进行进一步的改进。对最终的置信度图进行二值化,直接去除那些被MG-Conf标记为不可靠的深度。
除了消除网格投影的负面影响外,MG-Conf还可以帮助消除基本MVS中的错误。
D.Untextured Region Detection
detail restorer应用在ACMM中很棒,但在将其应用于上图b(detail restorer 生成的细节图),有时会将无纹理区域误认为细节,并且在没有几何一致性约束的情况下,这些区域中的正确估计很容易受损,如上图c。(细节图引导的最终深度图)
在我们的方法中,无纹理区域中的一些深度值来自网格,并且这些深度的cost通常不是局部最优。在finer scale上执行ACMH后,即使初始值正确,无纹理区域的值也会陷入错误的局部最优。如果初始深度的cost和局部最优值之间的差异较大,detail restorer将相应的像素标记为细节。
加强 geometric consistency 目的是防止在finer scale上容易受损的深度估计出错。在MG-Conf中添加cost map的目的是考虑到估计值的差异性,也可以用同样的方法定位不显著的特征。
绝对差值的均值Cnow:当前估计的匹配成本
Ci:第i次扰动结果的代价
favg < fthresh:特征不显著 (fthresh= 0.3,fmax= 0.6)
不显著的深度值更可能出现在上图e所示的混合区域,因此称其为无纹理区域图(在获得金字塔每个scale的深度图后计算它)。通过 geometric consistency ,在无纹理区域保留正确的估计,同时对不同的区域使用photometric consistency ,以避免降低精度