1、本栏目责任编辑:李雅琪交叉与综合Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.18,No.36,December2022三维重建技术的发展与现状研究综述熊思博,王琦,刘光洁(长春师范大学 计算机科学与技术学院,吉林 长春 130032)摘要:从20世纪60年代计算机视觉开始发展至今,随着科学技
2、术的发展,三维重建技术已取得巨大的成就。例如在医学中的三维CT图像、3D游戏开发、智慧城市建设、考古中的遗迹展示、三维动画等领域,三维重建技术都有着广泛的应用。本文重点分析近年来基于深度学习方法的三维物体表面重建技术的发展与应用,根据基于点云、体素、曲面网格、隐式曲面的这四类表面表示方法进行分析与讨论,分析这四类方法的优缺点以及发展现状与前景展望。在讨论这四种表示方法的研究进展的同时,分析其所使用的神经网络模型的进展与不足。总结各个领域当中所存在的问题,以及三维重建在未来具体领域的发展前景与重难点进行分析,并列举出了三维重建技术当下的问题以及今后的发展方向。关键词:三维重建;深度学习方法;点云
3、;体素;曲面网格;隐式曲面中图分类号:TP37文献标识码:A文章编号:1009-3044(2022)36-0114-04开放科学(资源服务)标识码(OSID):三维重建技术是指对场景或物体建立起能在计算机环境下进行处理与分析的数学模型的过程。目前,建立三维物体模型的方法主要分为三种:一是通过多角度的相机拍摄,通过计算机视觉技术建立三维数学模型,也称为基于图像的三维重建;二是运用传统的几何建模技术构建三维模型,例如 Nurbs、KitBashing、布尔建模等技术方法;三是基于点云的三维重建方法,通过对物体进行扫描,生成该物体点云视角下的三维模型。图像的三维重建方法分为两种:一是基于单幅图像的三
4、维重建方法,依靠单张图像获取物体的形状、颜色、共面性等信息。该方法获取的信息有限,另一方面,单幅图像中的遮挡现象使得重建过程难度加大;二是基于多幅图像的三维重建,该方法主要是利用三角测量计算多个视角下物体的三维数据,通过对关键特征点的提取与匹配,对物体表面局部纹理进行填充与优化,恢复三维模型。基于图像的三维重建方法能够快速得到物体的三维模型,且虚拟化后的模型逼真,但是也存在着虚构场景无法重建、基于单幅图像的三维重建方法在大规模场景中伪影严重,重建效果差等问题。基于传统几何技术实现三维重建的方法发展最为成熟,现在已经广泛地应用于生产生活当中,利用该方法可以得到高精度的三维模型。但重建过程中存在对
5、物体需要进行逐一测量、操作烦琐、建模周期长等问题。基于点云的三维重建是通过移动测绘系统(Mobile Mapping System),包括相机和移动激光扫描系统,采集得到点云数据,通过点云数据恢复图像,经过计算机处理得到三维模型,模型的质量取决于点云的精细度和准确度,所以该方法的重点与难点在于如何获取高水平的点云数据、点云数据的后期降噪处理、多个点云数据的拼接。近些年得益于深度学习方法的发展与应用,基于深度学习的三维重建技术得到了充分发展并取得了一定成就。2014年,D.Eigen1首次使用CNN神经网络进行三维重建研究工作,使用三维数据的深度特征表示,依靠深度学习方法实现三维模型的构建,开启
6、了基于深度学习的三维重建方法,也为研究者们指出了未来新的研究方向。1 基于点云的表面表示方法进行三维重建点云从字面意思可以理解为“大量的点”,它是三维空间坐标系下点分布的样本集合,通过扫描仪器得到的物体表面的点数据集合被称为点云数据集,该数据集中包含有大量信息,如颜色数据、距离、点在三维空间坐标系中的位置、光反射强度等,点云数据集与点云模型如图1所示。获取原始点云数据的方法主要有LiDAR激光雷达、RGB-D相机、多传感器融合等,其中多传感器融合得到的原始点云数据最为全面,可信度较高。点云数据集从获取到的点数量上的多少可划分为稀疏点云与密集点云,两者在基于深度学习的表面重建过程与方法上有差异。
7、收稿日期:2022-09-30作者简介:熊思博(1997),男,湖南岳阳人,学士,研究方向为三维重建;王琦(1997),女,山东莱阳人,学士,研究方向为图像分割,语义分割;刘光洁(1970),女,吉林长春人,教授,博士,主要研究方向为数据挖掘。114DOI:10.14004/ki.ckt.2022.2248交叉与综合本栏目责任编辑:李雅琪Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)图1 点云数据集与点云模型1.1稀疏点云重建稀疏点云重建方法是通过输入场景或物体的多视角图像,通过sift或
8、者surf求得多对特征点,并对特征点进行检测与匹配,通过人为地标定或者从图像信息中获取相机的初始参数,然后运用SFM(Structurefrom motion)算法,输出相机位姿与稀疏点云,根据输出的相机位姿与相机初始参数运用LM算法进行捆绑优化,得到更为精确的三维点坐标,结合稀疏点云数据恢复物体或场景的三维结构。使用SFM(Structurefrom motion)算法输出相机位姿与稀疏点云容易受到图像的光照、距离等因素影响,David Lowe2在SFM算法的基础上加以改进提出了SIFT算法,在空间尺度中寻找尺度、旋转不变数,解决了以上因素的影响,使得稀疏点云重建的精度得到了大幅度提高。F
9、an3在基于PointNet架构的基础上使用点云的表面表示方法进行三维重建,为后续单幅图像的点云三维重建研究工作指出了方向,体现了深度学习方法在三维重建工作中的强大性能。1.2稠密点云重建稠密点云重建是在已经过 SFM(Structure frommotion)算法处理得到稀疏点云的基础上选取全局视角图像序列生成深度图,根据深度图每个像素的深度投影到三维空间得到三维稠密点云。在稠密点云重建中对深度图的计算与生成是工作的重点也是难点。Bleyer4将立体匹配算法PatchMatch算法应用到深度图的计算当中,该方法能得到较好的像素值,但是对于表面纹理较少的物体或场景,由于算法计算过程中对信息的部
10、分丢失,使得效果不佳。Huang5提出的DeepMVS 方法通过构建包括PatchMatch匹配网络、卷内特征聚合网络、卷间特征聚合网络三部分构成的网络模型输出视差图,后期通过视差图得到深度图的办法很好地解决了处理纹理缺失表面场景的问题,但是处理速度较慢。考虑到传统点云重建三维表面过程中存在的场景丢失、重建效果受场景环境影响较大等问题,基于深度学习的稠密点云重建算法应运而生。Yao6在2019年提出了R-MVSNet算法。该方法主要是将深度图变换到深度不同的深度平面上,结合像素在不同深度平面上的概率分布得到初始深度图。R-MVSNet算法运行速度快,适用性广,可用于任意原始图像输入。利用超网络
11、(Hyper Net Works)生成三维点云的方法独辟蹊径,该方法与现有的基于深度学习的三维重建方法相反,不像其他的方法返回点云的标准表示,而是以生成的方式找到基于网络的三维对象表示,该方法可以同时找到对象及其三维表面表示。其主要思想是建立一个超网络,在点上训练基于流的模型,将点的球分布反射成三维模型。2 基于体素的表面表示方法进行三维重建基于体素的三维重建方法是通过在三维空间中描述其实体区域来表示其表面及内部形状,如图2所示。基于体素的三维重建在鲁棒性、重建效果上与传统三维重建方法相比有着自己独特的优势,但是在存储上耗费较高并且图像的二维卷积扩展到三维图像计算量大。图2 体素模型Wu7提出
12、了一个基于体素表示方法和深度学习的神经网络,用损失函数进行回归,该方法在基于深度学习的三维重建方面取得了突破性进展。在此基础之上Tatarchenko8提出了一种分割三维空间,将其递归细分为八个分叉空间的方法,在体素网格上预测更高分辨率的形状。Stutz9首次提出了一种无监督学习的三维重建方法,该方法在不降低精确度的基础上对物体的体素模型进行补全,其主要依靠深度神经网络(DNN)的数据训练和线性优化。Zhang10设计了一种使用 GAN 网络(GenerativeAdversarial Networks,GAN)三维重建方法,通过一个发生器 G(Generator)和一个鉴别器 D(Discr
13、iminator)对输入的图像进行判别与训练,随机生成三维模型,经过多次迭代最终得到精确度最高的三维模型。该方法生成的三位体素模型具有分辨率高、结构详细等优势。虽然基于体素的表面表示方法进行三维重建有其独特的优势,但受限于显存消耗、存储占用等问题,近年来基于深度学习的三维重建研究更多关注于基于点云和曲面网格的神经网络。PointNet模型很大程度上解决了深度学习中基于体素的表面表示方法的问题,在此之后基于深度学习的三维重建训练和结果输出大都基于点云和曲面网格。3 基于曲面网格的表面表示方法进行三维重建基于曲面网格的表面表示方法目前使用最多的是投影网格测量法,投影网格测量法的主要流程是将网格投影
14、到被测物体上,记录下此时的网格成像(称为测量图像),计算出每个网格的深度,建立三维坐标115本栏目责任编辑:李雅琪交叉与综合Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)系来重建三维曲面。相比于点云和体素的表面表示方法进行三维重建,基于曲面网格的表面表示方法进行三维重建能够避免显存占用问题,同时具有高精准度,高适应性等特点,并且可以呈现更好的细节。在使用深度学习方法进行基于曲面网格表示的三维重建时,构建的神经网络模型通常以端到端的形式存在,通过对输入的二维图像进行网格投影得到深度、特征点等
15、信息,构建形变网络,通过形变网格与池化层为椭球网格提供深度、特征点等信息,完成对输入图像的三维模型重建工作,该神经网络中的节点即为形变网格中的顶点。近年来使用深度学习方法构建曲面网格实现三维重建取得了不错的进展,Simonyan11设计了一个VGG网络(Very Deep Convolutional Networks),通过小卷积核代替大卷积核,加深神经网络深度,提高了三维重建模型的精度。Pixel2mesh12模型是一种端到端的深度学习架构,采用由粗糙到精细的变换策略,将输入的图像通过特征提取转换为椭球网格,经过神经网络的逐步变形将椭球网格重建为物体的三维模型,整个变形过程稳定,信息损失小,
16、提高了重建的精度。4 基于隐式曲面的表面表示方法进行三维重建在数学与计算机图像学中,隐式曲面是一种重要的表示方式,基于隐式曲面的表面表示方法进行三维重建主要是通过构建隐式曲面函数,通过函数来表示物体的二维或三维形状。由于隐式曲面函数的构建灵活,且能够表示任意复杂的物体,适用于图像的检测、变形、运算等方面。近年来在三维重建领域,由于隐式曲面函数能够很好地解决点云散乱模型,许多研究者开始关注在深度学习方法中构建隐式曲面函数来解决三维重建的问题。现有的隐式曲面重建方法中,较为经典的重构方法有小波曲面重建算法、RBF曲面重建算法、Poisson曲面重建算法、MPU曲面重建算法等。在此基础之上,Jiang13引入了一种将隐式解码器用作在模型上计算代码解码后提高匹配度的优化组件,该方法比稀疏点云实现重建具有更好的效果,适用性更广,可扩展性强。Chen14的团队提出了一种IM-NET的方法,该方法通过VAE+GAN的深度学习训练网络,在输入单视图实现三维建模过程中使用一种新的隐式曲面函数解码器替换传统的重建方式,在重建效果和时间上取得了较好的效果。IF-Nets网络模型是近两年非常火热的研究热点,其