锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于RGB-D相机的三维重建总览:静态与动态三维重建

时间:2022-12-03 10:30:00 内建kinect传感器

近几年,随之而来AR,VR,随着虚拟试衣、自动驾驶等领域的兴起,三维重建技术得到了广泛的应用。今天,我想分享一篇关于三维重建的三维独创性综述文章。这篇文章很长议收集。

三维匠心(已授权)来源

三维匠/Realcat丨编辑


自接触三维重建以来,三维工匠一直是基于RGB-D相机的三维重建令人惊叹与此同时,心里一直盘旋着写一个总结的想法,相信大家也能感受到三维匠的感受,空中阁楼,如鲠在喉

最后,经过个人实践,我终于可以实现我的愿望了。因此,首先写一个总结作为备忘录,这也可以为您的朋友提供方便。稍后,我将撰写具体文章的分析,并分享我对相关论文的理解。我希望你能给我一些建议。(PS:温馨提示,因为这篇文章包含了很多有趣的东西GIF,所以加载可能需要一些时间,请耐心等待)

到这里,很多小伙伴可能会问“基于RGB-D三维重建相机"和传统的SFM和SLAM算法有什么区别?

首先,输入不同的数据流。在基于RGB-D在相机的三维重建中,输入深度信息和彩色信息,深度信息起主导作用SLAM和SFM该算法主要输入彩色信息,个别工作也与深度信息相结合。

其次,重点不同。SLAM在框架类算法中,定位或主体。我们通常需要定位能够实时响应,而密集地图的构建通常规模大,计算量大,因此地图的构建不一定需要实时。当然,当地图稀疏时,也可以实时构建,但不能满足实际需要。另一个想法是以建图为主体,其次,旨在构建密集准确的高质量地图,可以提供高质量地图SLAM基于算法定位的使用RGB-D三维重建相机是满足上述需求的一种方法。

“基于RGB-D基于深度相机的三维重建和基于深度相机的三维重建fusion三维重建系列方法实际上是三种等价的说法。由于该领域发表的大部分工作都在标题中fusion该行业还将这些相关工作简称为基于fusion本文还采用了基于系列方法fusion描述系列方法

基于fusion其实系列的三维重建大致可以分为两种,一种是静态场景的三维重建KinectFusion作为典型的代表,一种是动态场景的三维重建DynamicFusion为典型代表。无论是静态场景还是动态场景fusion系列重建最大的特点是使用TSDF当然,模型(截断符号距离函数模型)也用于个别工作面元(Surfel)表达方法(面元简单来说就是点、法线、颜色、权重、半径和时间戳等属性集合)。值得一提的是,基于动态场景的三维重建比基于静态场景的三维重建要困难得多,当然,重建拓扑不会改变(比如驱动三维网格模板模型)的难度会降低很多。

为了更好的理解fusion系列方法,这里在介绍下TSDF模型。TSDF全称是Truncated Signed Distance Function缩写,译为截断符号距离函数。通常我们首先选择要建模的三维空间,比如2m×2m×2m这么大,然后把这个三维空间分成很多小块,分辨率一般是256×256×256或是128×128×每一小块都叫128体素

TSDF模型中的每个元素都储存在小块与最近物体表面的距离。如果小块在物体表面前,则存储正值;如果小块位于物体表面,则存储负值。此外,通常认为物体表面有厚度,因此将值过大和值过小的放置为1或-1,以获得截断后的距离,即所谓的TSDF模型。最后,根据定义,TSDF0的位置是重建表面位置。换句话说TSDF数值从负数过渡到正数。人脸出现在下图中TSDF值改变符号,即TSDF值为0的地方,如下图所示。

再来说说Surfel,如下图。

Surfel该表示方法最早于2000年用于模型渲染,如下图所示Surfel包含以下元素的小面片可以理解为:

  • 空间点坐标,即面片位置;

  • 空间法向量,即面片方向;

  • 颜色;

  • 权重,即根据当前点到相机的距离进行初始化,距离越远,权重越小;

  • 半径由当前表面到相机光心的距离决定,距离越大,半径越大;

  • 时间戳;

下面分别介绍代表性工作。

1

基于静态场景的三维重建

1.KinectFusion

KinectFusion是Richard A. Newcombe经典。该系统只需要一个低成本的移动深度相机来重建任何更复杂的室内场景。它的核心思想将是Kinect传感器采集的深度数据流实时集成(fusion into)对应当前场景隐式表面模型的全局(TSDF模型)使用从粗到精的迭代最近点(ICP)算法跟踪目前收集的深度帧数据与上述全球隐藏表面模型的相对关系Kinect传感器的位置变化。

同时,该系统也有缺点,该系统只能重建不到7立方米的体空间。主要有两个原因:由于系统采用密集的体积表示,需要消耗大量内存;此外,重建大型建筑时积累的误差会导致漂移现象。上述两个原因Kinectfusion大型建筑无法重建。

论文链接:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/ismar2011.pdf

代码链接:https://github.com/ParikaGoel/KinectFusion

演示:

2.Kintinuous

上述 KinectFusion 算法采用固定体积的网格模型(如256×256×256)表示重建的三维场景,只能重建固定大小的场景;此外,当重建体积较大或网格空间分辨率较高时,会消耗显存。而且 KinectFusion 算法没有回环检测和回环优化,这也造成当相机移动距离大时,不可避免的会有累积误差。Kintinuous算法是一个完善的三维重建系统,集成了回环检测回环优化,实时三维刚体重建仍在使用中deformation graph根据回环优化,根据回环优化的结果,更新点的坐标,使回环两次重建对齐。该算法适用于大场景的三维重建。

论文链接:http://www.thomaswhelan.ie/Whelan12rssw.pdf

代码链接:https://github.com/mp3guy/Kintinuous

演示:

3.ElasticFusion

算法的作者也是Kintinuous与作者不同Kintinuous的是,ElasticFusion使用了面元(Surfel)用于小场景重建的表达方法。这项工作的主要贡献有两点许多model-to-model”的局部闭环大规模的全局闭环结合在一起。因此,重建地图的分布可以尽可能相似,重建结果可以得到保证全局一致性;此外,该算法用于探测多点光源环境离散在这种情况下,它更有效,也能取得更好的重建效果。

此外,该算法还面临着巨大的挑战,如解决整个房间以外的地图可扩展性问题以及如何随着时间变化,保证重建地图的全局一致的稳定性。

论文链接:http://www.thomaswhelan.ie/Whelan16ijrr.pdf

                 http://roboticsproceedings.org/rss11/p01.pdf

代码链接:https://github.com/mp3guy/ElasticFusion

演示:

4.ElasticReconstruction

该工作提供一种从RGB-D视频重建室内场景重建的方法,其核心思想在于将场景片段的几何配准全局优化相结合。场景片段是通过将输入RGB-D视频流分割成若干帧为一组的场景片段得到的。这种以场景片段为单位进行深度信息的融合可以有效地去除深度图的噪声,从而获得更加准确的表面法向信息以及重建结果。

论文链http://vladlen.info/papers/indoor.pdf

代码:https://link.zhihu.com/?target=https%3A//github.com/qianyizh/ElasticReconstruction

演示:

5.InfiniTAM

InfiniTAM是一个开源、跨平台、实时的大范围深度信息融合与跟踪技术框架。该算法有好几个版本,有很大的借鉴意义。值得一提的是,InfiniTAM能够比KinectFusion重建更加大范围的3D环境,其关键因素在于InfiniTAM采用了哈希表的方式来存储隐式的体积表示,极大地节省了内存空间的消耗。

论文链接https://arxiv.org/pdf/1708.00783.pdf

代码链接:https://github.com/victorprad/InfiniTAM

演示:

6.BundleFusion

Bundlefusion应该是目前静态场景重建效果最佳的方案了。该方法提出一个并行化的优化框架,充分利用了基于稀疏特征以及稠密几何光度匹配提取的对应关系,实时地估计了BA优化的姿态,并具有从追踪失败中恢复(即重定位)的鲁棒追踪能力。

论文链接:https://arxiv.org/pdf/1604.01093.pdf

代码链接:https://github.com/niessner/BundleFusion‍

演示:

2

基于动态场景的三维重建

1.DynamicFusion

DynamicFusion获得了2015年CVPR的Best Paper Award,其作者是Newcombe,和KinectFusion是一个作者。DynamicFusion是不基于任何模板先验信息的动态重建算法,可是说是实时动态重建的开山之作。DynamicFusion系统在重建场景的几何的同时也在估计稠密体积表示的6D形变域。类似KinectFusion,该系统能随着深度数据的采集,而获得一个逐渐去噪,保留细节并且较为完整的重建结果。

但同时由于DynamicFusion没有采用任何先验信息使得该算法对于帧间较大的运动以及遮挡区域的运动都不具备鲁棒性;此外DynamicFusion可以较好的处理封闭拓扑的表面重建,对于拓扑发生变化就无能为力了。例如我们嘴一开始闭着,后面再打开的情况就没法处理;另外由于追踪的累积误差,使得环闭合失败。      

论文链接:

https://rse-lab.cs.washington.edu/papers/dynamic-fusion-cvpr-2015.pdf

演示:

2.volumeDeform

volumeDeform算法和dynamicFusion类似,都无需预先定义的模板,同样采用体积表示(volumetric representation)的方法来参数化重建模型的几何以及运动。该算法的运动追踪基于提取的全局稀疏彩色特征(如SIFT算子)以及稠密的深度图两者的结合,增强了特征匹配点寻找准确的鲁棒性,进而极大地减小了重建模型的累积误差以及漂移现象 。

该算法的不足之处在于尽管全局SITF特征算子的匹配提高了系统的鲁棒性,减小了对齐的误差,但漂移现象仍然不能完全消除;另外由于正则项的设置使得极度弯曲的物体的重建结果在运动上会显得平滑,变得不那么弯曲。

论文链接:https://graphics.stanford.edu/~niessner/papers/2016/5volumeDeform/innmann2016deform.pdf

演示:

3.BodyFusion

从BodyFusion开始就变得更有意思了。BodyFusion使用人体骨架作为先验信息,实现鲁棒了的人体动态重建。人体骨架的引入减少了重建表面图节点的非刚性形变参数化的歧义性,也是在一定程度上缩小了解空间。

不足之处在于所使用的人体骨骼所包含的关节点太过稀疏,并且运动较快时,会在深度图上出现运动模糊的情况,从而造成重建方法受限。

论文链接:http://www.liuyebin.com/bodyfusion/bodyfusion_files/BdyFu_ICCV17.pdf

演示:

4.DoubleFusion

DoubleFusion非常惊艳,该系统将数字驱动的模板(SMPL模型)以及实时重建的稠密几何非刚性运动以及内层人体形状充分结合在一起。该系统的关键贡献之一在于提出了双层表面的表示,这里的两层主要是指里层的参数化模型表面(inner body),也就是SMPL模型的shape,以及外层通过深度融合得到的表面(outer surface)。该算法的另一个关键贡献在于提出了一个基于双层表面表示的联合运动追踪,使得整个系统可以在快速运动的情况下仍然具有鲁棒性。

不足之处在于当用户穿着比较肥大的时候,估计的人体也偏胖;并且无法处理外层表面发生分离的情况,以及无法处理人和物体交互的情况。

论文链接:http://www.liuyebin.com/doublefusion/doublefusion_files/doublefusion.pdf

演示:

5.UnstructuredFusion‍

通常多相机系统需要一些特殊设计的相机以及预先精细的相机标定操作,但UnstructuredFusion算法可以使用未经预先标定以及同步的三个深度相机以一种互补并灵活的方式覆盖整个人体,从而实现实时,高质量,完整的动态人体重建。

该算法也有不足之处。由于输入深度图分辨率受限,该算法无法重建目标非常细小的部分,比如人的脸部区域;该算法也无法处理网格拓扑分离的情况;该算法也无法处理人-物交互情况。

论文链接:https://ieeexplore.ieee.org/document/8708933

演示:

6.RobustFusion

诚如算法名字RobustFusion所示,该算法使用了各种数据驱动的视觉线索提高动态重建算法的鲁棒性。这些数据驱动的视觉线索具体包括Occupancy Network,Pose&Shape Network以及Semantic Network。 该算法充分利用了上述数据驱动的视觉线索,避免了预先扫描模板的使用,具备了重新初始化的能力,使得该系统能够处理极具挑战性的运动和几何的重建。

该系统的不足之处有:该系统无法实时运行;不能处理重建网格拓扑发生分离的情况,比如脱掉衣服;不能实现人和物的交互;当一些极端运动姿态在上述网络训练时没有出现过,那上述数据驱动的视觉线索就不能很好地提供先验信息。

论文链接:https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123490239.pdf

7.KillingFusion

KillFusion是基于Killing Vector Fields提出的实时三维重建方法,也是不需要任何预先扫描的模板信息以或是形状先验。KillingFusion不需要显式地进行对应匹配点的搜索,当给定感兴趣区域的一对SDF(signed distance fields),该算法可以估计出一个稠密形变域来对齐给定的SDF。具体的,该算法定义一个和SDF相同分辨率的位移向量域(displacement vector field),并通过最优化迭代求解。

该算法的不足之处也是由于其优点造成,不显式地寻找对应点也使得该算法在某些需要显式的对应点的操作上无法应用,比如纹理映射就需要显式的对应点。

论文链接:http://campar.in.tum.de/pub/slavcheva2017cvpr/slavcheva2017cvpr.pdf

演示:

8.SurfelWarp

SurfelWarp是三维动态重建方案中为数不多的基于面元的算法。类似的,该算法输入一个深度图序列,对非刚性场景进行实时重建,无需任何模板或是先验信息。与现有的方法相比,该算法无需维持体积数据结构,比如TSDF模型,该系统采用面元(surfel)的几何表示,极大地增强了拓扑发生改变时的追踪能力,从而获得一致的重建结果。

该算法的不足之处在于,模型重初始化可以极大地提高系统的鲁棒性,然而清除错误的面元会破坏模型的完整性

论文链接:

https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/1904.13073.pdf

演示:

9.Fusion4D

Fusion4D的重建结果也非常惊艳。该算法是基于多视角方案,没有使用任何先验信息,因此理论上可以重建任何场景或是物体。如视频所示,除了对人体动态重建,还能对狗子动态重建。该算法很重要的一点贡献是引入了key volume,因此对于较大的帧间运动以及网格拓扑发生改变时都有很强的鲁棒性;另外Fusion4D还引入了体素碰撞检测,从而得到正确的TSDF模型。

该系统不足之处在于当RGBD输入流帧率过低或者帧间运动过大时,会使帧间对应匹配点估计不准确,造成非刚性对齐过程无法收敛。

论文链接https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/a114-dou.pdf

                 

如果各位小伙伴想观看完整的演示效果,可以点击这里:

https://zhuanlan.zhihu.com/p/296509722

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章