【新智元导读】在三维重建任务中,由于数据量大、弱纹理、遮挡、反射等问题,如何高效准确地实现多视图立体视觉仍然是一个具有挑战性的问题。
多视图立体视觉(MVS)一直是计算机视觉研究的一个热点。它的目的是从多个已知相机姿态的图像中建立密集的对应关系,从而产生稠密的三维点云重建结果。在过去的几年里,人们在提高稠密三维重建的质量上付出了很大的努力,一些算法如PMVS、GIPUMA以及COLMAP等取得了令人印象深刻的效果。
然而,在三维重建任务中,由于数据量大、弱纹理、遮挡、反射等问题,如何高效准确地实现多视图立体视觉仍然是一个具有挑战性的问题。
为了进一步提升三维重建的性能,来自华中科技大学的研究人员提出了多尺度几何一致性引导的MVS方法ACMH、ACMM和基于平面先验的MVS方法ACMP,能够有效地恢复弱纹理区域的深度信息,从而获得高完整性的三维模型。
算法在公开的三维重建评测数据集ETH 3D和Intel Tanks and Temples上获得优异的性能,在公开发表的论文中评估结果领先于同类方法。
背景
目前,多视图立体视觉一般采用两个步骤重建场景的稠密三维模型。首先为每幅图像估计其深度图,然后将这些深度图融合得到统一的点云表示。其中,深度图估计是该流程中的关键。
为了高效地得到每张图像的深度信息,目前的方法一般基于PatchMatch的迭代优化方式来估计深度图,通常包含四个步骤:随机初始化(Initialization)、采样传播(Sampling and Propagation)、视图选择(View Selection)和细化(refinement),如图1所示。
图1 PatchMatch多视图立体视觉框架
然而,目前的PatchMatch方法在采样传播的效率和视图选择的准确性上很难同时兼顾,而且无法很好地处理弱纹理区域的深度估计问题。
为此,研究人员在他们的近期工作中提出了高效准确的ACMH算法,ACMH算法不仅在性能上优于经典的COLMAP算法,并且计算效率是COLMAP的8-10倍。进而为解决MVS中弱纹理区域的深度估计问题,研究人员进一步提出多尺度几何一致性引导的ACMM算法以及基于概率图模型的平面先验引导的ACMP算法。
这些工作的主要贡献有以下几点:
1)提出了自适应棋盘网格采样策略,以捕获更好的候选假设空间。在此基础上,提出了一种启发式的视图选择策略,能够鲁棒的完成逐像素的视图选择。
算法不仅继承棋盘网格传播的高效性,在效率方面是传统的COLMAP算法的8-10倍,也由于逐像素视图选择推断的准确性使得算法具有比COLMAP算法更好的性能。
2)基于ACMH算法框架,研究人员提出多尺度几何一致性引导的MVS算法框架ACMM。通过构造图像金字塔,在不同尺度上捕获歧义性区域的显著性信息,并通过多视图的几何一致性来优化传递该信息。
此外,还提出尺度间的细节恢复器来保证场景的细节不在多尺度的传递中被湮灭。ACMM由于引入了多尺度信息,在弱纹理区域的深度估计方面具有突出的性能,性能相比ACMH有了大大的提高。
3)提出基于概率图模型的平面先验辅助的ACMP算法框架。为了自适应地为弱纹理区域捕获更合适的显著性信息。研究人员通过三角化图像中深度可靠的稀疏像素点来构造平面先验模型。
然后通过构造概率图模型来推导平面先验辅助的多视图匹配代价函数。这样不仅能保证PatchMatch的高效性,而且自适应地感知弱纹理区域的显著性信息以辅助其深度估计。实验结果表明,在没有融合多尺度信息的条件下,平面先验引导的ACMP算法就能够取得优于ACMM更好的性能。
自适应网格传播及启发式视图选择的MVS框架——ACMH算法
图2 自适应棋盘网格传播方式
由于邻域内像素点深度值具有相关性,在一个的邻域内,其中一个像素点得到了较优的估计,在之后的迭代更新过程中,则它的估计值会向它的上下左右相邻像素点进行传播,从而实现稠密深度图的迭代优化。
COLMAP采用的是如图2左边的从上到下从左到右的传播方法(如图2左边所示),这种传播方式使得算法的并行规模与图像的行数或列数成正比,对GPU的利用效率不高。
Gipuma采用一种红黑棋盘网格的传播方式,将二维图像像素点以红黑棋盘的方式进行分组,并以扩散的方式采样邻域像素点(如图2中间所示)。
在每次迭代中,当前黑色的像素会选择周围固定8个位置的深度假设作为当前像素的后续假设。这种邻域传播机制相比COLMAP的左右上下传播机制可以更加充分的利用GPU实现大规模的并行操作,从而提高算法的效率。
实际中Gipuma算法的计算效率也是大大优于COLMAP算法。然而COLMAP算法采用了较为复杂的基于马尔科夫链模型的视图选择策略,而Gipuma算法则缺乏视图选择,在迭代过程中简单的选取前k个最小匹配代价求平均来计算每个候选假设的匹配代价。因而在性能上Gipuma算法比COLMAP算法要差很多。
ACMH也采用类似Gipuma的棋盘网格方式,因而继承了Gipuma的高效并行的优势,同时在两个方面进行了创新:
1)优化了红黑棋盘格的传播方法,不是像Gipuma采用固定的8个位置假设,而是采用图2右边所示的V形和长条形区域来自适应地选取局部最优假设进行传播,其中,每个V形区域包含7个可采样点,每个长条区域包含11个可采样点。这样使得算法能够有机会找到更好的深度假设。
2)不是像Gipuma那样对每个候选假设简单的选取N个源视图中前k个最小NCC匹配代价的平均值作为评价候选假设好还的依据,而是引入了视图选择机制,提出了一种启发式的多假设联合视图选择策略来对NCC匹配代价进行加权。
图3 启发式多假设联合视图选择策略
图3为启发式多假设联合视图选择的基本实现过程。当前像素有8个候选假设,对每个候选假设,N个源视图会得到N个NCC匹配代价,所有的NCC匹配代价形成一个8*N的矩阵,根据矩阵的每一行可以度量该候选假设的可靠性。
在原始的Gipuma算法中,对每一行都独立的进行处理,选择每一行中最好的k个NCC匹配代价计算平均值来衡量该假设的可靠性。
这种方式的问题是没有考虑当前像素在源视图上的可见性。图3左边上方很好的说明了这个问题,如果当前像素在某个源视图上是不可见的,那么这个源视图对应的NCC匹配代价就不能用来度量候选假设的可靠性。
因此,对每个像素而言,N个源视图的可见性都是不同的,需要采用一个权值来度量每个视图对当前像素的可见程度,然后计算k个最好的NCC匹配代价的加权平均值来衡量该假设的可靠性。
每个源视图的可见性权值的计算是关键,研究人员提出了一种启发式的多假设联合视图选择策略。每个源视图对应NCC代价矩阵中的一列8个代价值,一个简单易行的策略是使用该列代价值的好坏的衡量该视图的可见性好坏。
如果较好的代价值个数较多,超过一定阈值(如3个),而较差的代价值个数较少,少于一定阈值(如2个),则认为该视图是当前像素的可见视图,否则是不可见的,不能参与评估候选假设。
对可见视图,将其好的代价值归一化到0,1之间的权值,其代价越好,权值越大。最后计算每个候选假设的k个最好的NCC匹配代价的加权平均值。
最后,进行细化步骤来细化像素所处的平面假设,进一步降低聚合代价,丰富解空间的多样性。对于法向和深度,存在三种可能的状态:法向接近优解,深度接近优解,都不接近优解。
因此,我们产生两个新的假设,其中一个是随机生成的,另一个是通过扰动得到的。将这些新的深度和法向与当前的深度和法向结合起来,产生了另外六个有待检验的新假设。选择聚合成本最小的假设作为像素p的最终估计,对上述传播、视图选择和细化进行多次重复,得到参考图像的最终深度图。
多尺度融合的ACMH框架——ACMM
图4 多尺度几何一致性引导框架
弱纹理区域的深度估计一直是MVS中比较困难的问题。一般来说图像分辨率越高,稠密三维重建的效果应该越好。
但是分辨率的提高也意味着弱纹理区域的增多。纹理是一个相对的概念,比较同一个场景的低分率图像和高分辨率图像,我们会发现,在高分辨图像中是弱纹理的区域在低分辨率图像中却具有丰富的细节。
因此,低分辨率图像能够更好的捕获图像的结构信息,在重建中对高分辨率图像应该具有很好的补助作用。研究人员根据这一观察构建了一个多尺度的ACMH算法框架——ACMM算法(基本原理如图4所示)。
图像的纹理信息在不同尺度上的显著性是不同的。为了更好地为歧义性的区域感知其显著性信息,研究人员提出了多尺度几何一致性引导框架,不仅在不同的尺度上感知显著信息,并且通过多视图的几何一致性来更好地传递该信息。
具体来说,研究人员对输入的图像集合构造图像金字塔,然后由粗到细地恢复每个尺度的深度图信息。在获得较粗尺度下弱纹理区域的深度估计后通过上采样以及严格的几何一致性校验,然后将它们传播到更精细的尺度,在更精细的尺度上优化这些估计。上采样的估计跟当前尺度的估计融合之后进行和ACMH相同的传播、视图选择和细化。
在上采样之后,还需要使用细节恢复器来修正细节上的误差。具体操作为:在当前尺度上,计算上采样的估计值对应的光度一致性代价以及该尺度RGB图像计算新的光度一致性代价,比较两个代价值,对于差值大于阈值的像素点,使用新的代价对应的估计值更新原来的估计。
细节恢复器的使用,防止了在弱纹理区域由上一尺度上采样得到的可靠估计丢失。这样,为了进一步保证多视图间的深度一致性,研究人员采用几何一致性来优化当前尺度的估计。
基于概率图模型的平面先验MVS——ACMP算法
图5 基于概率图模型的视图选择
多视图聚合光度一致性的可靠性取决于视图选择的权重。在AMMH和ACMM算法中,视图选择是一种启发式的策略,在实际当中也具有较好的鲁棒性。然后较多的参数设置使得算法的适应新有一定的限制。
因此,研究人员设计了一个概率图模型,以充分利用源图像的光度一致性和邻域像素的视图选择信息使得视图的选择具有更好的鲁棒性,且对参数的依赖更小。
最终的视图选择的权值由这两项的乘积来决定。采用概率图模型的方式使得视图选择对参数的依赖很少,并且有利于更好的得到最佳的视图选择结果,后面的实验结果也表明,即便是单纯地采用概率视图选择来代替之前的启发式视图选择,也能够明显的提高ACMH框架的性能。
图6 基于概率图模型的平面先验约束的MVS
基于概率图模型的平面先验约束的多视图深度估计整体框架如图5所示。在图的上方是基本流程,首先采用ACMH算法得到参考图的深度图,然后采用严格的几何一致性进行校验,保留一些可靠像素的深度值。
以这些可靠的像素点为基础,采用德劳内方法在图像平面构建三角网格,将每一个三角形看做一个小的平面,每个三角平面的深度和方法根据其三个顶点进行计算。ACMP算法以这样构造得到的三角网格来作为深度估计的平面先验约束。
右边的第一项为似然概率,对应当前像素的假设的光度一致性,第二项为先验概率,对应当前像素与其所在的三角平面的一致性。
如果当前像素的深度和方向与其所处的三角平面的深度和方向具有很好的一致性,则给予奖励,否则给予惩罚。平面先验约束的代价函数定义如下:
实验结果
ACMH及ACMM实验结果
研究人员评估了ACMH、ACMM在ETH3D benchmark上的有效性。ACMH算法继承了Gipuma的棋盘网格传播方式,但是性能要大大优于Gipuma算法,超过了COLMAP算法。
而且ACMH算法也继承了Gipuma的棋盘网格的高效并行机制,因此在计算效率上是COLMAP的8-10倍。ACMM比ACMH性能提升了相当大的幅度,对弱纹理区域具有很好性能。在效率上相比ACMH有所降低,但是仍然是COLMAP的5倍左右。图7和图8为部分可视化结果。
表1 ETH3D高分辨率测试集点云评测(准确度、完整度、F1分数)
表2 不同方法在Strecha数据集生成深度图运行时间对比
图7 部分ETH3D benchmark数据集深度图对比
图8 部分ETH3D benchmark数据集点云对比
ACMP实验结果
研究人员在ETH3D benchmark的高分辨率多视图立体数据集上进行了评估。在表3中列出了ETH3D benchmark的13个高分辨率多视图训练集的比较结果。
表3为深度图的评测结果,表4为点云的评测结果,从表3和表4的结果中可以看出,ACMP的结果要比ACMH的结果好很多,并且在没有用多尺度信息的情况下,已经优于ACMM算法的结果。
图8和图9为部分可视化结果。在效率方面ACMP与ACMM相当。
更多评测结果可以参考以下两个评测网站:
https://www.eth3d.net/high_res_multi_view https://www.tanksandtemples.org/leaderboard/IntermediateF/
表3 ETH3D数据集深度图评测中绝对误差小于2cm和10cm的像素百分比
表4 ETH3D数据集高分辨率测试集点云评测(准确度、完整度、F1分数)
图9 部分ETH3D benchmark数据集深度图对比
图10 部分ETH3D benchmark数据集点云对比