汇总|三维重建算法

三维重建是指获取真实物体的三维外观形貌,并建立可复用模型的一种技术。它是当下计算机视觉的一个研究热点,主要有三个方面的用途:1)相比于二维图像,可以获取更全面的几何信息;2)在VR/AR中,建立真实和虚拟之间的纽带;3)辅助机器人更好的感知世界。

 

KinectFusion

1、深度数据获取---去躁;
2、生成点云---计算摄像机坐标系的深度信息,进而变换到全局坐标系,计算法向量;
3、预测3D模型;
4、结合2,3计算当前深度场景和预测模型的位姿---(ICP最小二乘法计算变换矩阵,法向量误差);
5、点云融合(TSDF,晶体网格化)---另一种是三角网格化;
6、可视化(场景渲染,三角网格(Gouraud着色));
7、纹理贴图(RGB图像->点云数据的映射矩阵M)。
 

ElasticFusion

1、基于 RGB-D 稠密的三维重建,一般使用网格模型融合点云,ElasticFusion 是为数不多使用 surfel 模型表示的算法。 
2、传统的 SLAM 算法一般通过不断优化相机轨迹或者特征点的方式,来提高轨迹估计或者重建的精度,这篇文章采用不断优化重建的 map 的方式,提高重建和位姿估计的精度。 
3、优化采用 deformation graph 的形式,和 DynamicFusion 中优化的方式如出一辙。 
4、融合了重定位算法(当相机跟丢时,重新计算相机的位姿)。 
5、算法使用 OpenGL 对点云进行更新、融合、显示和投影。 
6、算法融合 RGB-D 图像进行位姿估计,对于 RGB 图像通过颜色一致性约束计算位姿,对于点云通过 ICP 算法计算位姿,ElasticFusion 融合了二者。 
7、适合重建房间大小的场景,代码没有做优化,重建较大场景时,代码不能适用。

DynamicFusion

1、首先将每帧获取到的动态变化的场景(要重建的对象)通过某种变换,转换到一个canonical 空间中,即在该空间中创建一个静态的物体表面模型;

2、而每帧都有个对应的 volumetric warp field 的东西,能够将canonical空间中的模型还原到live frame中(可想而知,这个还原过程可能经历了旋转平移和形变)。

我们可以注意到两个关键的变换,一个是从实时的深度图到canonical空间,并且在该空间中更新表面建模;另一个是从canonical空间转换到live frame下,即volumetric warp field的求算。

DynamicFusion系统的核心是:建立一个关键帧(canonical frame)下的模型,之后场景发生的变化都可以通过几何变换对应到这个模型上;每一次新读取了深度图都通过几何变换之后再融合到模型当中,这里变换的过程相当于取消了场景的变换;就这样场景逐渐的变得真实丰满。

其系统两部分构成:重建的三维场景(reconstructed scene geometry),记为V。体翘曲场(a dense volumetric 6D warp(motion) field),记为W。重建的三维场景V使用TSDF模型表示,类似于KinectFusion中的模型表示方法。体翘曲场W可以简单的理解为:记录了V中点与深度图像D中点想换转换的矩阵,D中数据经过W的变换之后才能融合到V中。

 每一帧深度图读取进入系统之后,需要进行的流程如下:

1、估算W;(Estimation of the volumetric model-to-frame warp field parameters )

2、根据W,将D融合到V中;(Fusion of the live frame depth map into the canonical space via the estimated warp field )

3、扩展W。(Adaptation of the warp-field structure to capture newly added geometry  )
 

Kintinuous

先讲下 KinectFusion 算法的不足:

KinectFusion 算法使用固定体积的网格模型表示重建的三维场景,这就造成重建的时候只能重建固定大小的场景。

而且 KinectFusion 中使用的 TSDF 模型将整个待重建的空间划分成等大小的网格,当重建体积较大,或者网格的空间分辨率较高时很消耗显存。

而且 KinectFusion 算法没有回环检测和回环优化,这也造成当相机移动距离大时,不可避免的会有累积误差(虽然 KinectFusion 算法使用 frame-to-model 的形式配准会减小累积误差,但是当移动距离大时,重建的三维场景也会飘起来),累积误差造成重建场景的漂移。

Kintinuous这篇文章的作者做了几年工作,才有了当前的 Kintinuous 算法,这个算法是个比较完备的三维重建系统。

位姿估计结合了 ICP 和直接法,用 GPU 实现,位姿估计的精度鲁棒性都相对其它算法如 InfiniTAM 也较好

而且 Kintinuous 融合了回环检测和回环优化

并且史无前例的在实时三维刚体重建中用 deformation graph 做非刚体变换,根据回环优化的结果,更新点的坐标,使得回环的地方两次重建的可以对齐。

Kintinuous的工作主要有以下三个亮点:

1.利用基于GPU的3D循环缓存技巧将深度图(depth map)的fusion扩展到无界空间区域(unbounded spatial region);

2.同时利用稠密的几何(geometric)相机位姿约束和光度(photometric)相机位姿约束,克服了大场景下相机位姿估计不准确的限制;

3.根据场景识别(place recognition)和随后的闭环限制(loop closure constraint),使用尽可能刚性(但其实是非刚性)的空间变形(space deformation)来更新建好的地图。

DoubleFusion

DoubleFusion是清华大学刘烨斌老师课题组在2018年发表在CVPR上的一篇优秀的动态重建文章,它可以实现单个RGBD摄像头重建实时运动人体的功能,重建结果较好,运行帧率33帧,可以在TitanX及以上电脑上实时运行,鲁棒性较强。 

简单地讲,DoubleFusion的原理是这样的,一般深度摄像头的动作捕捉来源于深度数据,因此可以构建人身体的表面形状(即包含衣服在内的外形数据),但这种方案难以在有遮挡的情况下实现捕捉,为了补足深度捕捉的缺憾,DoubleFusion将它和估算骨架模型的方案融合了起来,因此形成了一个“双层表面表示”,外层是深度数据得到的表面重建的数据,内层则是骨架模型数据,最终计算得到最合理的动作数据。我们看到的完整的身体模型,实际上是内外两层数据相互制约、相互融合的结果。

具体来说,DoubleFusion的输入只有捕获的深度数据,而输出是捕捉目标的双层表面。在骨架估计方面,它采用最近出现的基于Mask-RCNN的模型SMPL,可以非常迅速的得到比较完美的骨架模型,在外表数据方面,采用同样是近年来提出的捕获方法DynamicFusion。外表数据生成一个节点图,主要用于判断姿势变化方式,骨架数据同样形成节点图,主要用作判据,尽量避免姿势变化中违法骨骼连接的情况。

DoubleFusion方案比单方面骨架模型估计的方案效果更好,例如与BodyFusion相比较, 后者即使较紧身的衣服也会对结果产生影响,而前者捕捉的结果更为干净、完整;另外DoubleFusion的每帧最大误差更小,而且平均误差也较小,在捕捉快速运动期间表现也要更好,还有,实时重建的身体形状和显示的目标穿着看起来也要更合理一些。

从性能上来说,测试环境中,DoubleFusion每一帧执行6次ICP迭代,进行关节运动跟踪需要21毫秒,9毫秒用于体积形状和身体姿态的优化;另外,输入的深度数据属于异步运行处理,算上运行时间不到1毫秒,综合下来基本是每帧32毫秒。

然而,这种解决方案还是存在限制,例如,当用户穿着较厚的衣服时,这个方案在捕捉过程中会将衣服的厚度都当成人的身体来计算,导致身体建模的误差出现;另外,目前的方案还无法处理人物对象之间的交互,不过按照论文的说法,这将会在未来的研究中得到解决。

BodyFusion

BodyFusion:Real-time Capture of Human Motion and Surface Geometry Using a Single Depth Camera

本文提出一种新颖的实时几何融合方法—BodyFusion,该方法可以通过单个消费级深度相机,完成对人体非刚性表面运动行为的跟踪和重建任务。

作者利用人体行为的内部铰接运动先验,来降低表面图节点上非刚性形变参数化的模糊性,并提出了一种骨架嵌入式表面融合(SSF)的方法。本文提出方法的关键点是:基于骨架和图形节点之间的附带信息来共同解决骨骼和图形节点的形变问题。附带信息基于融合的表面几何形状和形变计算进行逐帧更新。总而言之,随着深度帧的融合,本文方法可以实现逐渐去噪,精细化和完整表面重建的任务,并完成骨架和附带信息的更新。实验结果表明,与现有融合方法相比,本文的方法能够显着提高非刚性运动融合的性能和跟踪的鲁棒性。作者还提供了一个单深度相机数据集,可以对基于融合动态场景重建算法进行定量评估。

 

MonoFusion

 

 

MobileFusion

 

 

BundleFusion

 

 

FlowFusion

 

 

OpticalFusion

 

 

Co-Fusion

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(计算机视觉技术,三维重建)