点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨安如夏@知乎

来源丨https://zhuanlan.zhihu.com/p/299489800

编辑丨3D视觉工坊

论文信息:Xu H, Xu J, Xu W. Survey of 3D modeling using depth cameras[J]. Virtual Reality & Intelligent Hardware, 2019, 1(5): 483-499. 浙江大学CAD&CG国家重点实验室

本文的结构基本上和论文一致,主要是对关键概念以及发展脉络进行梳理,列举了一些相关的论文以供进一步阅读学习,思维导图奉上:

1. 3D建模与深度相机简介

3D建模的目标是高质量地捕获对象和场景的3D形状外观,以在数字空间中模拟3D感知与交互

3D建模的方式可划分为三种:使用专业软件如Maya进行建模十分耗时;通过2

图像进行建模如SFM依赖于图像质量和光照等因素;基于深度相机的建模对环境干扰更为鲁棒。

常见的两种深度相机

1)结构光:将红外结构光投射至对象表面,然后接收由对象表面反射光的图案,根据位置角度等信息进行空间信息的计算

优势:适用于照明不足的环境,在特定范围内可获取高分辨率深度图

劣势:易受室外强光影响,易受镜面反射影响

2)ToF:发射光并接收从物体反射的光,通过检测光飞行往返时间计算出被测物体到相机的距离

优势:抗干扰能力强,适合较长距离的测量,如自动驾驶

劣势:获取的深度图分辨率不高,当测量较短距离时误差相对其他深度相机较大

基于深度相机的3D建模基本流程

1)直接获取的深度图包含噪声,需要预处理

2)估计相机位姿,将不同位姿下拍摄的图像统一起来,通常做法是找到点对应关系,然后估计变换矩阵

3)将当前深度图像融合仅已经重建的模型

4)(可选)为模型增加颜色纹理信息

2. 3D模型的两种常见表示方法、数据结构

2.1 立体表示方法(Volumetric representation)

这种表示方法最早于1996年提出,使用带符号距离函数SDF在各个体素处的采样值,表示三维空间中每个点到最近表面的距离,在物体外部为正值,在物体内部为负值。颜色等信息可作为体素的属性。

由于实际使用时,只有物体表面附近的体素的函数值有意义,因此从KinectFusion(2011)开始,研究人员通常使用截断的带符号距离函数TSDF

三维模型进行表示,即只保留物体表面附近一定范围的函数值变化,其余值为常数或者不进行记录。由于TSDF其实是隐式地表达了表面的信息,在估算相机位姿时,需要通过ray casting进行表面估计。模型融合的步骤就比较简单,就是将当前帧的TSDF与全局重建得到的TSDF进行加权求和。

论文解读:KinectFusion基于深度的实时稠密三维重建&TSDF开山之作(文字纯享版)    https://zhuanlan.zhihu.com/p/281482545

下图是基于TSDF的重建流程:

这种体素化的表示方法需要预先定义分辨率,在实时重建中,通常使用GPU进行加速,因此分辨率大小受限于显存大小,最早的KinectFusion就仅支持体积小于7平方米的容积内重建。

研究人员提出了一些方案,使得支持更大空间的重建,主要思想是动态移动体网格,即当相机运动时,将相机姿态添加到全局姿态,但是仅并行运算当前位置围内的体素,而将外部体素进行额外的存储。尽管这可以实现更大范围的扫描,是需要大量外部存储器的使用,而且不能任意地重新访问已经被扫描的模型。

Whelan T, Kaess M, Fallon M, Johannsson H, Leonard J, McDonald J. Kintinuous: Spatially extended KinectFusion. RSS Workshop on RGB-D: Advanced Reasoning with Depth Cameras, 2012
Roth H, Vona M. Moving volume KinectFusion. In: Procedings of the British Machine Vision Conference. British Machine Vision Association, 2012, 1–11

八叉树是一种高效存储三维表面的方法,虽然形式简单,但是由于顶点的稀疏性很难再GPU上并行运算。以下是一些相关工作

Zeng M, Zhao F K, Zheng J X, Liu X G. Octree-based fusion for realtime 3D reconstruction. Graphical Models, 2013, 75(3): 126–136 和 Chen J W, Bautembach D, Izadi S. Scalable real-time volumetric surface reconstruction. ACM Transactions on Graphics, 2013, 32(4): 1–16把KinectFusion扩展到中型办公室的范围的实施重建

Steinbrucker F, Sturm J, Cremers D. Volumetric 3D mapping in real-time on a CPU. In: 2014 IEEE International Conference on Robotics and Automation (ICRA). Hong Kong, China, IEEE, 2014, 2021–2028 基于CPU的实时重建,1Hz的速率输出网格模型

体素哈希结构,对应体素空间位置的索引存储在线性化的空间哈希表中,通过空间哈希函数进行寻址。由于仅将包含空间信息的体素存储在内存中,显著减少内存消耗。这类基于哈希的方法的优势在于小内存需求和高效的查询计算,非常适合移动端,如Google Tango,以下是相关文献:

Nießner M, Zollhöfer M, Izadi S, Stamminger M. Real-time 3D reconstruction at scale using voxel hashing. ACM Transactions on Graphics, 2013, 32(6): 1–11
Dryanovski I, Klingensmith M, Srinivasa S S, Xiao J Z. Large-scale, real-time 3D scene reconstruction on a mobile device. Autonomous Robots, 2017, 41(6): 1423–1445 移动端应用Google Tango

2.2 表面表示方法 (Surfel:Surface element)

Surfel这种表示方法最早于2000年提出用于模型渲染,如下图所示,一个surfel可以理解成一个小面片,包含以下要素:

·空间点坐标:面片位置

·空间法向量:面片方向

·颜色信息

·权重/置信度:用于判断当前面片的是否稳定,以及后续的加权平均等运算。根据当前点到相机的距离进行初始化,距离越远,权重越小,越不可信

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

·时间戳

八叉树也可以用来优化这种表示方法,相关工作如下:

Stückler J, Behnke S. Multi-resolution surfel maps for efficient dense 3D modeling and tracking. Journal of Visual Communication and Image Representation, 2014, 25(1): 137–147

两种模型表示方法的对比

立体表示:在深度去噪和模型渲染方面更加方便,因为可以直接将每个帧的TSDF进行加权求和融合,但是在相机位姿估计时需要反复将TSDF转化为表面顶点用于配准

面片表示:可以看做是点云表示的扩展,在位姿估计时可以直接使用顶点信息

3. 基于深度相机的三维重建

3.1 深度图预处理

深度图的噪声可分为三类

1)深度缺失:太近或太远、表面不连续、高光或阴影等原因

2)深度错误:深度测量具有一定的准确率

3)深度不一致:随着时间变化,对同一点的测量的深度可能不一致

大多数情况下使用双边滤波去除深度图的噪声。在去噪之后,KinectFusion通过降采样得到三层的深度图金字塔,用于后续估计相机位姿。

3.2 相机跟踪

相机位姿通常指六自由度的变换,通过一个刚体变换矩阵T表示。

ICP是相对位姿估计中非常重要的算法,主要用于3D形状的配准。通过计算相邻帧的点云的匹配关系,然后最小化点对之间的欧氏距离,从而计算得出一个刚体变换。这样会有一个问题,就是相邻帧的误差会在扫描过程中不断累积,也就是常说的累计误差。

为了消除累计误差问题,有frame-to-model的相机跟踪方法,即每次将当前帧已经重建的整个模型进行配准,而不是和前一帧进行配准。这种方法一定程度上减少了相机跟踪时的漂移,但是没有彻底解决累计误差的问题,即相机位姿估计的误差随着时间仍然在积累,这种积累起来的漂移会导致回环最后无法闭合。

因此就有研究提出全局位姿优化的方法,以下是相关研究:

Henry P, Krainin M, Herbst E, Ren X F, Fox D. RGB-D mapping: using depth cameras for dense 3D modeling of indoor environments//Experimental Robotics. Berlin, Heidelberg, Springer Berlin Heidelberg, 2014, 477–491 提出关键帧的概念,每当累计误差大于阈值时,选取当前帧为关键帧进行回环检测,使用位姿图以及稀疏BA进行位姿联合优化

Whelan T, Leutenegger S, Salas Moreno R, Glocker B, Davison A. ElasticFusion: dense SLAM without A pose graph. In: Robotics: Science and Systems XI, Robotics: Science and Systems Foundation, 2015 使用深度信息和颜色信息进行全局位姿估计

除了上述的配准过程,匹配点对也是相机跟踪中重要的一步,可根据使用的点的多少划分为稀疏的和稠密的方法:稀疏方法仅使用特征点进行匹配,而稠密的方法使用所有点进行匹配。

·稀疏点对匹配:SIFT、SURF、ORB。BundleFusion使用SIFT进行粗配准,然后使用稠密的方法进行精配准

·稠密点对匹配:传统的点对匹配方法耗时太长,投影数据关联算法较快。

·其主要过程是:将输入的三维点坐标,根据相机位姿投影至目标深度图的像素,然后取最近邻的像素对应的三维点,作为输入点的对应的目标点。衡量输入点与目标点的距离有点到点、点到面等不同计算方法,其中点到面为计算两点在法向量上的投影距离,这种方法收敛更快。除了距离误差,还有引入光度误差等其他距离衡量的做法。

Lefloch D, Kluge M, Sarbolandi H, Weyrich T, Kolb A. Comprehensive use of curvature for robust and accurate online surface reconstruction. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017 引入曲率,作为匹配点对的标准

3.3 深度图的融合

·立体表示的深度图融合:当前帧的TSDF和全局的TSDF进行加权求和即可

·面片表示的深度图融合:当前帧的每个顶点和法向量以及半径,要融入全局的模型中,主要包含三个步骤:

  • ·将当前3D模型中的顶点投影到当前帧相机的图像平面中,寻找匹配点对关系

    • ·如果找到了匹配点对,那么最可靠的点和新的点进行加权平均

    • ·如果没找到,那么新的点将加入全局模型,作为一个不稳定点

    • ·随着处理的帧数越来越多,全局模型会清理外点

3.4 动态场景的三维重建

动态场景的重建的关键问题是设计快速鲁棒的非刚体配准算法,以处理场景中的非刚体运动

·立体表示的相关工作:

Newcombe R A, Fox D, Seitz S M. DynamicFusion: Reconstruction and tracking of non-rigid scenes in real-time. In: 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA, IEEE, 2015 DynamicFusion是首个使用单个深度相机的输入实时重建含非刚体变换的场景的方法,主要问题是不能解决拓扑变化

Guo K W, Xu F, Yu T, Liu X Y, Dai Q H, Liu Y B. Real-time geometry, albedo and motion reconstruction using a single RGBD camera. ACM Transactions on Graphics, 2017, 36(4): 1 考虑阴影信息,引入反照率,提高重建的精确度

·表面表示的相关工作:

Keller M, Lefloch D, Lambers M, Izadi S, Weyrich T, Kolb A. Real-time 3D reconstruction in dynamic scenes using point-based fusion. In: 2013 International Conference on 3D Vision. Seattle, WA, USA, IEEE, 2013, 1–8 用前景分割的方法处理动态场景,将前景从全局模型中删除,使得前景物体不影响相机跟踪以及模型重建

Gao W, Tedrake R. SurfelWarp: efficient non-volumetric single view dynamic reconstruction. In: Robotics: Science and Systems XIV. Robotics: Science and Systems Foundation, 2018 利用变形场,将当前帧与已有模型进行对齐

3.5 场景理解

·室内场景中有很多平面,利用这些平面的几何关系的相关工作有:

Zhang Y Z, Xu W W, Tong Y Y, Zhou K. Online structure analysis for real-time indoor scene reconstruction. ACM Transactions on Graphics, 2015, 34(5): 1–13 识别标注平面,利用平面的平坦性和正交性对相机跟踪进行限制,以及融合时进行平滑

Dzitsiuk M, Sturm J, Maier R, Ma L N, Cremers D. De-noising, stabilizing and completing 3D reconstructions on-the-go using plane priors. In: 2017 IEEE International Conference on Robotics and Automation (ICRA). 对平滑的表面能够去噪

Shi Y F, Xu K, Nießner M, Rusinkiewicz S, Funkhouser T. PlaneMatch: patch coplanarity prediction for robust RGB-D reconstruction//Computer Vision–ECCV 2018. 提出预测图像块共平面性的方法,用于估计相机位姿,采用自监督学习的策略

·基于物体检测的重建的相关工作:

Salas-Moreno R F, Newcombe R A, Strasdat H, Kelly P H J, Davison A J. SLAM++: simultaneous localisation and mapping at the level of objects. In: 2013 IEEE Conference on Computer Vision and Pattern Recognition. 最早的检测物体并重建物体的方法之一

文章中还列举了一些在物体数据集中匹配形状、对物体进行分类、检索等的方案。

·基于2D图像语义分割的方案:

McCormac J, Handa A, Davison A, Leutenegger S. SemanticFusion: Dense 3D semantic mapping with convolutional neural networks. In: 2017 IEEE International Conference on Robotics and Automation 用CNN进行语义分割,将2D语义分割标签融合进3D模型

Runz M, Buffier M, Agapito L. MaskFusion: real-time recognition, tracking and reconstruction of multiple moving objects. In: 2018 IEEE International Symposium on Mixed and Augmented Reality (ISMAR). 用Mask R-CNN进行实例分割,用ElasticFusion进行物体级别重建

Hu R, Wen C, Van Kaick O, et al. Semantic object reconstruction via casual handheld scanning[J]. ACM Transactions on Graphics (TOG), 2018, 37(6): 1-12. 对物体内部各个组件进行语义分割,以指导单个物体的重建

J.L. Schonberger, M. Pollefeys, A. Geiger, T. Sattler. Semantic visual localization2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, IEEE, Salt Lake City, UT (2018) 提出融合了几何信息与语义信息的描述符

4. 纹理重建

4.1 离线纹理重建

离线纹理重建的目标是通过多视角的RGB图像,为3D模型重建出高质量、全局一致的纹理。

直接融合不同图像会造成鬼影以及过度平滑的问题,通常依靠优化算法来去除这类问题。常用的优化目标包括颜色一致性、图像与几何特征的对齐、投影图像间的互信息最大化等。这类方法可以处理相机标定过程的不准确性,但是无法处理RGB图像本身的几何失真与光学失真。

解决上述问题的相关研究有:

Zhou Q Y, Koltun V. Color map optimization for 3D reconstruction with consumer depth cameras. ACM Transactions on Graphics, 2014, 33(4): 1–10 优化每张图像的位姿,通过非刚体变换,以最大化照片一致性

Bi S, Kalantari N K, Ramamoorthi R. Patch-based optimization for image-based texture mapping. ACM Transactions on Graphics, 2017, 36(4): 1–11 基于patch的方法,即使造成很大的几何误差,也要生成高质量的纹理映射

4.2 在线纹理重建

在线纹理重建的目标是在扫描重建物体时同时生成高质量纹理,优点在于用户可以实时观测到物体的纹理,但是可能会生成质量不佳的纹理,因为不能利用所有的信息

相关研究有

Whelan T, Salas-Moreno R F, Glocker B, Davison A J, Leutenegger S. ElasticFusion: Real-time dense SLAM and light source estimation. The International Journal of Robotics Research, 2016 估计场景光源的位置方向,以避免融合仅包含高光的物体

Meilland M, Barat C, Comport A. 3D High Dynamic Range dense visual SLAM and its application to real-time object re-lighting. In: 2013 IEEE International Symposium on Mixed and Augmented Reality (ISMAR) 利用HDR图像提供更多图像细节

Xu L, Su Z, Han L, Yu T, Liu Y B, Fang L. Unstructured Fusion: realtime 4D geometry and texture reconstruction using Commercial RGBD cameras. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019 动态地图纹理方案,提高3D人体建模质量

5. 总结与未来挑战

在过去几年中,使用深度摄像机的 3D 建模发展迅速,但是基于深度摄像机的 3D 建模仍面临许多挑战。

首先,深度摄像机实际上是短距离 3D 传感器。在大型场景重建中应用它们仍然非常耗时。因此,有必要研究如何将激光扫描仪等长程传感器的数据与深度数据集成,以加快三地场景重建。在这种情况下,应开发一种多源大规模三维数据配准算法,包括点对匹配回环检测和随后的距离最小化。此外,研究主动的视觉方法,在场景中使用深度摄像头驱动机器人进行对场景进行完整的扫描也很有趣。

其次,场景中的移动对象对深度摄像机跟踪不友好。我们需要探索如何准确地将移动对象与捕获深度中的静态场景分开,以提高基于摄像机跟踪的静态场景的准确性。

第三,支持手机集成深度摄像机的应用,需要为手机硬件开发实时、节能的深度数据处理和摄像机跟踪算法。

作为一个小白,阅读这样一篇综述碰到了很多不知道的概念,所以可能本文中有些概念写得只是翻译个大概,这样一篇综述最大的意义就是给人提供很多主题和参考工作,可以根据兴趣进一步阅读相关文献,加油

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

下载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视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

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

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

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

论文解读:基于深度相机的3D建模 2020最新综述相关推荐

  1. 基于深度学习的眼底影像分析最新综述

    医学影像是深度学习取得极大成功的一个领域,而眼底图像是其中一个重要的分支.眼底图像是由单目相机捕获到的眼底的2D图像. 使用眼底图像可以用于对眼科疾病诊断分级.对病变点和重要的生物标记进行分割等等,对 ...

  2. ACL 2018 论文解读 | 基于深度强化学习的远程监督关系抽取

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  3. Nature论文解读 | 基于深度学习和心脏影像预测生存概率

    作者丨Peter 单位丨某基因科技公司生物信息工程师 研究方向丨生物信息 本文解读的文章来自今年 2 月份的 Nature 杂志新子刊 Machine Intelligence,标题为:Deep-le ...

  4. 史上最全 | 基于深度学习的3D分割综述(RGB-D/点云/体素/多目)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[分割]术交流群 后台回复[分割综述]获取语义分割.实例分割.全景分割.弱监督分割等超全 ...

  5. CVPR2020论文解读:三维语义分割3D Semantic Segmentation

    CVPR2020论文解读:三维语义分割3D Semantic Segmentation xMUDA: Cross-Modal Unsupervised Domain Adaptation for 3D ...

  6. 深度相机 物体三维重建_基于深度相机的实时物体三维重建方法与流程

    本发明涉及三维成像领域,特别是一种能够实时地对物体或人体进行三维重建的方法. 背景技术: 三维重建技术一直是计算机图形学和计算机视觉领域的热点课题.三维重建就是从输入数据中建立3D模型.随着各种面向普 ...

  7. 谈谈基于深度相机的三维重建

    三维重建(3D Reconstruction)技术一直是计算机图形学和计算机视觉领域的一个热点课题.早期的三维重建技术通常以二维图像作为输入,重建出场景中的三维模型.但是,受限于输入的数据,重建出的三 ...

  8. 基于深度相机的三维重建技术

    /*************************************************************************************************** ...

  9. 基于深度学习的命名实体识别研究综述——论文研读

    基于深度学习的命名实体识别研究综述 摘要: 0引言 1基于深度学习的命名实体识别方法 1.1基于卷积神经网络的命名实体识别方法 1.2基于循环神经网络的命名实体识别方法 1.3基于Transforme ...

最新文章

  1. Android: 启动init.rc 中service的权限问题【转】
  2. POS 收款机资料整理
  3. java gui 层次结构_javaGUI教学图形界面的层次结构.ppt
  4. 代码缺乏装饰?使用ts装饰器来装饰你的代码
  5. 浙江省工程师职称英语和计算机考试报名,浙江省工程师职称英语免考条件
  6. [1] SDK Tools安装
  7. linux signal 处理
  8. react封装函数_React 模式-将函数作为 children 传入和 render prop - 极客教程
  9. “饮水机”:形象比喻 深入浅出理解RAID
  10. 新手机出现陌生女人照片,客服:大数据时代可能性有很多
  11. lq106kf打印机设置_爱普生lq106kf
  12. FPGA实现cameralink高清相机解码
  13. deepin安装 oracle_deepin 安装oracle12c过程
  14. 如何在被保护的工作表(Worksheet)中使用Group Outlining
  15. GPU编程3--GPU内存深入了解
  16. subst ( 将任意目录挂载成虚拟磁碟机 )
  17. AndroidTV开发-实现APP开机自启动
  18. 为您创建完美商业标识的 10 款 Logo 设计软件 【已翻译100%】
  19. 51单片机仿真例程-八段数码管
  20. mac忘了密码怎么办_如果忘记Mac密码该怎么办

热门文章

  1. Python的并发并行[1] - 线程[3] - 多线程的同步控制
  2. 华为HCIP-DATACOM题库解析130-160(821)
  3. elastalert控制警报时间段
  4. 又发现一款纯js开源电子表格Luckysheet
  5. java哪些类重写equals方法_Java自定义类中重写equals方法
  6. 如何自己开发一个Android APP(3)——XML和Android
  7. 用标号法求最短路径matlab,标号法求最短路径问题
  8. AWS入门 – 开通海外账户及巧用免费套餐
  9. 8255A红绿灯c语言程序,微机原理十字路口红绿灯闪烁实验
  10. 性别符号php,树也分男女?给6万棵杨树画上性别符号,原来是因为…