非刚体多视图三维重建
目录
前言
多视图三维重建(MVS)是摄影测量中常用的一种静态场景稠密重建方法。 静态场景的假设限制MVS算法的普适性,因为许多日常场景都会经历非刚体运动,例如衣服、人脸或人体。NRMVS从任意、稀疏和宽基线视图得到具有非刚体变化的场景进行稠密三维重建。提出了一种全新稀疏3D到2D的匹配,同时通过稠密面片匹配评估来估算光度一致性后的变形和深度。1. 证明了从几个非刚体变化的RGB图像中重建一个稠密的4D结构是可能的2. 证明了该方法可以用于从稀疏视图中推出变形估计的各种组合中插值得到新的形变场景。1、介绍
当场景包含运动,例如非静止刚体对象或非刚体曲面变形,会违反外极约束的假设,导致三维重建算法在大多数情况下失败。通过将显著物体从背景中分割出来,并对这些区域进行独立处理,重构出刚体运动场景。
为了解决稀疏点对的这一问题,人们提出了各种非刚体运动恢复结构(NRSfM)方法。这些方法通常需要稠密视图(视频帧)获取流计算的稠密一致性,或者需要先验信息来约束问题。Newcombe等人和Innmann等人最近提出使用商业深度相机捕获已知深度的密集流对任意、非刚体、动态场景进行三维重建的解决方案。然而,许多常见场景中这种方法会失效,例如,当捕获包含非刚体变化的场景时,这些变化既不是作为视频获取的,也不是由立体或深度相机捕获的,而是来自独立的单视图。
本文主要研究基于宽空间基线图像的动态非刚体变形三维场景重建,以及时间上稀疏无序的样本。
两种解决方案:
- 从给定的横向基线视图之间的大量潜在变形中计算最合理的变形方法
- 在经历非刚体变化的表面图像之间满足光度一致性约束的稠密曲面重建算法
在以上解决方案中,首先从具有最小非刚体变化的视图计算标准曲面(上图a),然后通过深度和光度一致性的联合优化来估计正则姿态和其他视图之间的变形。(上图b)扩展标准视图的三维点。然后,通过从每个视图到标准曲面估计的单个变形区域,重建每个视图的稠密三维点云。(上图c)
- Given RGB images containing non-rigid changes
- Select canonical images and get the initial canonical surface and compute camera poses
- Estimate deformation and depth of another view with a joint optimizaion
- Update the canonical surface and estimate deformation and depth of other views
- Output and applications with estimated deformaion and depth
该方法整个框架上图所示。
首先从变形最小的视图(称之为标准视图)重建初始点云。然后,通过深度、变形和密集光度一致性之间的联合优化来估计合理的变形,从而估计剩余视图的深度。通过这些计算的深度和变形,阐述输入视图之间的插值变形。
- 第一个非刚体MVS框架,密集地重建具有宽基线和稀疏RGB视图的非刚体变化动态3D场景。
- 提出使用变形图建立非刚体运动模型的全新公式以及用于联合优化的逆形变光度一致性。
- 基于补丁匹配在现有MVS框架上的密集样本传播,并根据不同的MVS框架灵活实现。
2、相关工作
A.动态RGB-D场景重建
全动态场景重建的首要步骤是三维曲面的动态模板跟踪。主要思想:随着时间推移追踪一个形状模板,同时非刚性地使其表面变形。精确地跟踪和重建一个非刚体曲面是一个更具挑战性的问题。
对于动态场景的三维重建,以DynamicFusion为典型代表。DynamicFusion是不基于任何模板先验信息的动态重建算法,但同时由于无先验信息使得该算法对于large and fast motion 都不具备鲁棒性。
KillingFusion可以有效地应对较大形变,快速帧间运动,以及拓扑结构改变等情况。
这一研究领域在最近几年取得了巨大的进展,但鉴于问题的难度,所有这些方法要么依赖深度数据,要么依赖校准的多摄像机设备。
B.非刚体运动恢复结构
刚体运动没有形变,没有变形速度,非刚体运动则有,包括线变形速率和角变形速率。
大多数NRSfM方法考虑的是稀疏点的优化,而不是密集重建,并且通常需要视频帧来获得稠密对应密度或先验信息。通过分割刚性运动区域,重建了刚体运动(如汽车或椅子)的场景。本文着重于从几个非刚体变化的图像重建一个新的场景,并估计变形,以满足每个视图。
C.多视图立体视觉与密集重建
MVS中的许多方法对静态场景很有效,但它们通常会拒绝与对极几何不一致的区域,例如场景包含变化区域。如果场景中存在的静态部分与非刚体部分的比例太低,也可能导致重建失败。本文采用采用COLMAP的Patchmatch框架来实现密集的光度一致性。
3、NRMVS
A.稀疏观测中的形变建模
使用变形图来模拟场景中的非刚体运动。变形图形每个节点表示一个刚体变换,类似于尽可能刚体的变形模型。这些变换形式被局部弯曲以使附近的空间变形。
给出三维空间一点v,其变形v‘计算为:
权重wi定义为:
当投影点在不同图像之间时,也需要将其变形反转。精确的反转变形可被已知权重推出:
由于权重先验性未知,需要求最近邻节点及其距离,这就成为一个非线性问题。为降低开销,引入了一个近似的求解:
其中权重w‘i:
B.非刚体光度一致性和联合优化
该步骤可理解为多视图立体框架的非刚性版本。
标准视图的选择 首先从输入图像集中,选择两个变形最小的视图。然后使用COLMAP中的PatchMatch方法来获得标准姿态的寺庙模型。基于这个模版,通过在表面上分布的使用者指定的节点的数量来计算变形图。
从点云的所有点作为初始节点开始。我们迭代所有节点,并对每个节点在给定半径内去除其所有邻居。每次迭代半径增加10%,直到达到所需节点数。实验中,我们发现100到200个节点足以完全重建。
上图左图橙色点表示t0次平移的变形点,红色点表示t1次平移覆盖在标准平面的变形点。右图展示了两个视图中的变形节点与非刚体变化的稀疏3D匹配之间的关系。注意:仅显示用于简单可视化的稀疏匹配,而这里也是光度一致性的密集项,它与稀疏匹配一起驱动变形节点的位移。
联合一致性 对于稀疏的全局一致性,我们在每幅图像中检测SIFT关键点,并为每幅图像对匹配描述子,以计算一组特征轨迹{ui}。特征轨迹表示相同的3d点,并通过将每个关键点与其每个相连接的匹配项来计算。拒绝不一致的轨迹。 (SIFT描述子:统计局部梯度信息)
将关键点ui提升到3D点xi,如果至少一个处理视图中存在深度值,则计算其在标准姿态Di(xi)中的坐标,并将变形场Dj的当前估计应用到这些点。
在第i次迭代中,根据先前对变形D2(i-1)的估计来变换3D点x0,并将D2(i-1)投影到u2定义的光线上。投影用于定义将点拉向射线的力F。
变形和深度估计 在主要迭代(算法1)中,通过最小联合优化问题来估计标准姿态和当前选定视图之间的变形。
为了测量参考视图(即标准姿态)和源视图之间的光度一致性,我们使用Schoenberger等人定义的归一化互相关(NCC)的双边加权自适应。
NCC是模板匹配中较为常见的互相关计算方法。来描述两个同维向量,窗口或样本之间的相关性。其取值范围是-1~1,-1代表两向量不相关,1代表两向量相关
在我们的方法中,采用COLMAP的故障设置,即大小为 11 X 11 的窗口。正则化矩阵Ereg确保了平滑的变形结果。为了保证非局部收敛性,我们使用了一个3层的图像金字塔,由粗到精地解决了这个问题。
稀疏匹配和密集匹配都会受到离群值的影响。在稀疏情况下,这些离群值表现为图像间的不正确的关键点匹配。对于密集部分,由于遮挡,或相机姿态,或者由于观察到的变形,会出现离群值。
为了排除这些情况出现的离群值,拒绝了由非线性解的结果计算出的最高残差块的对应关系。我们重新运行优化,直到满足用户指定的最大错误。该过程分两步进行。首先,考虑到稀疏的3D-3D匹配,只对变形进行求解。其次,我们修正了保留的3D-3D匹配,并解决了联合优化问题,只舍弃稠密对应,得到ci在0和1之间的一致性映射。
实验中,3-5次迭代即可达到收敛的状态。为估计当前处理视图的深度,我们运行一个修改过的、非刚性的COLMAP PatchMatch变体。将变形应用于点及其法线,而不是简单的单应性变换。
C.实现
非刚体多视图立体视觉:
稀疏对应滤波:
解决联合问题:
4、Evaluation
在每一行中,前两列为创建每个标准曲面的图像。每个偶数行的第一列显示初始的标准曲面。每个偶数行第2、3、4、5、6…列的图像显示了每个视图的重建曲面的进一步更新后的版本
- Selecting 2 images with minimal deformation
- Creating initial “canonical surface” from the images
- Dence 3D Reconstruction with deformaitons computed from all the images
- 4D Reconstruction aninations from different views with the deformations