董鹏辉,柯良军
(西安交通大学 电信学院,陕西 西安 710049)
三维重建技术就是获取环境中物体的三维信息,从而确定不同物体所在位置并建立相应的空间模型[1]。现阶段,计算机技术飞速发展,无论是硬件还是软件都得到了很大提升。因此,对三维重建场景绘制的规模越来越大,精度越来越高,难度则相对减小。具有高效率的三维重建技术也已经被应用在众多领域当中,其中包括城镇建模、无人作战、文物保护和地图重建等,相关的重建算法及流程也愈加完善[2]。
三维重建的发展经历了漫长的过程,早期的三维重建主要通过人工绘制来完成,该方法耗时耗力。随着社会的发展,激光扫描仪得到了广泛地应用,该方法获取物体的三维信息精度高,与真实环境相差无几。但是它构建的模型不具有纹理,无法进一步完善物体的结构。同时,激光扫描设备往往价格昂贵,维护起来较为困难。现阶段伴随着计算机技术的发展逐步有一些建模工具可以通过人机交互的方法完成建模。通过该方法建立的三维模型简单方便,大大提高了效率。另外,由于图像三维重建技术通过获取的图片来构建模型,因此它能够给出对应物体的颜色信息,从而使模型更加生动形象。无论是进行科学研究还是商业用途,通过计算机进行三维重建都是主要的方法。
基于图像的三维重建从获取多视图图像开始,逐步通过相应的算法恢复场景中物体的三维结构[3-4]。根据应用场景的不同,使用者可以对三维结构的精度以及信息丰富度进行调整,也可以针对某一部分进行优化完善。总之,基于图像的三维重建技术是当今计算机视觉领域的热门方向[5-6]。
本文从三维重建的传感器、重建流程与相关算法以及典型应用3个方面概述当前的主要成果,最后指出有待于进一步研究的问题。
基于图像的三维重建系统前端只需要图像采集设备。现如今深度摄像头作为深度视觉产品,广泛应用在AR/VR以及自动驾驶、无人机和机器人等人工智能领域。通过它获取的图像不仅可以得到场景物体的二维信息,还能够获取相应的深度,因此只要知道相机的位置就能知道场景物体在世界中所处的位置,从而一步步恢复图像当中的场景。常见的深度摄像头有:
① 基于结构光的深度摄像头:主要依赖于场景中物体的几何关系,通过三角相似性计算得到图像中物体的深度信息。拍摄时,摄像头前端的结构光发射器会发出可控制的光面、光条或光点照射到被测物体的表面,从而得到被测物体的几何信息进行后续处理。
② 基于双目视觉的深度摄像头:主要依赖于人眼的双目立体视觉成像原理。通过在摄像头前端的2个摄像头同时获取2个不同角度的图像从而通过计算来对场景中的物体进行深度感知。
③ 基于TOF飞行时间的深度摄像头:主要是依赖光线反射的时间差或者相位差来计算场景中物体的深度信息。摄像头前端的传感器可以发射出近红外光,当光线遇到被测物体时会反射从而进一步接收。通过发射与接收的时间差可以完成后续的计算过程。
不同的摄像头应用场景有很大的不同,通过研究对它们进行比较分析,结果如表1所示。
表1 摄像头性能比较
图像三维重建的整件流程如图1所示。在三维重建时,首先需要对收集到的图像除去当中无用的图片,在此基础上,对每个图片进行去噪等预处理,为后续的处理做准备。接下来,对图像进行特征点的检测与匹配,得到不同图像中相同的特征点。然后通过相机标定得到拍摄图片所用相机的内参数(焦距),再进一步计算得到基础矩阵与本质矩阵,获得特征点的三维空间位置。最后对点云进行网格化从而可将三维场景可视化地展现给用户。
图1 三维重建整体流程
摄像头获取的图像往往不能够直接使用,需要对众多图像进行预处理。通过预处理过程能够过滤图像中无用的信息,把拍摄不清晰、有残缺的图像删除掉,同时选择出有实用价值、可供后续处理的图像。该过程能够显著提高后续计算的效率,增强三维重建的实用性。图像预处理的方法很多,常见的有中值滤波、自适应加权滤波、双边滤波等各种图像滤波算法[7]。
获取有效图像后,需要进一步进行特征点的提取与匹配,从而找到场景中相同的物体进行后续的计算。通常说的特征点主要指图像中邻域变化较大的点,比如说噪声点和角点,因此进行特征点检测与匹配的关键就是在有畸变存在的情况下,正确地提取和匹配图像中的特征点。
特征点提取的方法主要有:
① 基于Harris算子的特征提取:文献[8]中提到Harris算子包含的信息量大,检测图像的范围广,当有光照存在时,该算子比较稳定,抵抗环境变化的能力也较强。
② 基于SIFT算子的特征提取算法:该算法在当今各个研究领域中应用最为广泛。它是一种局部的特征描述算子,通过寻找图像空间尺度中的极值点来确定特征点,其显著特点是特征点的尺度、位置和旋转不变量不会轻易发生改变[9-10]。该方法先建立高斯金字塔模型,找到一个领域内的像素点,通过比较像素点是否是极值点(即可判断特征点),从而将特征点提取出来。
③ 基于SURF算子的特征提取算法:Bay在文献[10]中提到了加速鲁棒算子,该算子与SIFT算子相比运算效率更快,它简化了SIFT算子,通过运用小波技术等新技术使得图像的处理速度变快。目前,SURF算子也逐步在一些计算机图像视觉领域得到了应用。
特征点匹配方法主要有:
① 归一化互相关(Normalizes Cross Correlation,NCC)特征匹配:可以不受亮度和对比度变化的影响,并且速度快。缺点是:ⓐ 图像缩放情况下无法应用;ⓑ 视角变化大不适用。
② SIFT特征匹配:主要寻找用来表述特征点的特征向量描述符。通过计算一个邻域内的特征点的梯度对该领域进行划分,进一步得到最终的128维特征向量描述符,衡量匹配程度好坏的关键就是计算特征向量描述符之间的欧式距离,欧式距离越短匹配程度越高。
③ SURF特征匹配:与SIFT特征匹配类似,主要也是通过特征点之间的欧式距离来判断匹配程度的高低。但是,SURF加入了一种新的矩阵迹来优化判断的过程,该矩阵迹通过比较正负号可以提前排除一些不相关的点,从而进一步加快匹配过程的效率。
基于图像的三维重建需要对相机进行标定。标定的主要目的就是求出相机的内部参数,最终得到内参数矩阵K。
相机标定的方法主要有:
① Tsai的2步标定方法:该方法与线性标定方法相比精度更高,主要原理是利用透视变换原理来计算摄像机的基本参数配置。这些参数可以作为后续优化算法的初始值来使用,该方法考虑了相机的径向畸变,通过优化算法来计算剩余的参数。
② 张正友的平面标定方法:该方法由张正友提出,在相机标定领域有着广泛的应用,它使得相机标定的可靠性和有效性得到了提升。其主要原理是将计算机视觉技术与传统的摄像机标定技术结合起来,使空间中的标定模板变为平面标定模板,从而简化了标定的繁琐程度。
③ 相机自标定方法:顾名思义,就是对通过传感器获取的已有信息进行计算,完成相机的标定过程。该方法灵活多变,运用起来也十分方便。现阶段根据应用场景的不同可以选择不同的自标定方法,常见的方法有:绝对对偶二次曲面标定法与分层自标定法等。
计算基础矩阵与本质矩阵是重建过程中必不可少的一部分。基础矩阵主要是确定不同图像中同一场景的几何约束关系。本质矩阵则用来确定三维点的具体位置。
Sultanov A K在文献[11]中对基础矩阵做了介绍,其中包括它的计算方法与基本性质;文献[12]提出了用于计算基础矩阵的归一化点算法,该方法能够抵抗噪声的影响,优化系数矩阵,提高计算的精度;文献[13]介绍了RANSAC算法,随机抽样一致性算法RANSAC(Random Sample Consensus)可以在一组包含“外点”的数据集中,采用不断迭代的方法,寻找最优参数模型,不符合最优模型的点,被定义为“外点”。
文献[14]依据多视图间的几何约束关系来计算本质矩阵。通过该方法得到的本质矩阵在欧式几何空间中给出。得到的基础矩阵也可以用来进一步计算本质矩阵。得到本质矩阵后可以对它进行分解得到表述不同特征的旋转矩阵与平移向量。通过这一系列数据能够获得三维点在空间中所处的位置。
通过上述步骤得到场景中物体的空间位置,三维重建的主要过程已经完成。但是这些物体空间点都是离散的,需要完善其表面信息,因此需要用到三角剖分技术进行点云的网格化。
现阶段,三角剖分技术有2种主要的方法:
① 平面投影法:主要应用投影映射原理,在得到空间点的位置后将其投影在平面上,接着对平面上的点进行剖分处理,再将剖分后的结果转移到三维结构上即可;
② 直接剖分法:比较繁琐,它直接在原始点云的基础上进行线性插值,从而完成点云网格化的过程。
剖分完成后可以得到目标场景的整体模型,为了进一步优化,可以对模型进行纹理映射从而使得建模效果更加逼真。纹理映射总体来讲就是选择一幅最为合适的图像,将图像上的纹理信息添加到三维模型当中。
三维重建是当前人工智能相关领域的重要研究方向,它在工业检测、医疗、建筑设计、航空航天和虚拟现实等领域都有广泛的应用,而基于图像的三维重建与传统的三维重建相比具有数据获取容易、采集设备简单以及场景适用范围广等优点。因此,基于图像的三维重建技术在众多领域都发展迅速。
城镇建模在当今的生产生活上发挥着重要作用。一方面,通过对城镇建模可以具体了解到城镇的布局结构,为后续的发展建设提供依据。另一方面,城镇建模可以帮助人们更为清晰地了解城市,促进城市宣传。当发生自然灾害时,救援人员还可以调看城镇的三维结构从而做出合理的部署。目前,数字化城镇已经得到了飞速发展并且广泛应用在生产生活当中。
文物保护一直以来都是历史性难题。随着科技的发展,基于图像的三维重建技术已经广泛应用在文物重建当中,并且取得了良好的效果[15]。河南省曾对新乡市辉县村舍进行了三维重建,成功还原当地的完整面貌;历史学家对新疆米兰古城进行了建模,同样起到了保护文物的重要作用。
医疗救护也是三维重建的一个重要研究领域。现阶段一些常见的扫描设备能够快速发现患者的受伤部位,从而为医生的治疗提供了技术支持。常见的有对颌面、脸部软组织和全身关节等部位进行三维重建。重建后的结果精度高,同时不会对人体造成伤害。目前三维重建技术已经广泛应用在各大医院[16]。
三维重建技术在无人作战、装备导航方面也发挥着重要作用。它有效地推进了无人作战的发展。例如,美国曾研制出四足军用机器人,它能够协助士兵作战,同时还可以用于运输物资。当作战人员迷失方向时它能够实时生成周围环境的三维场景从而提供导航[17]。此外,作战时可以对攻击目标进行捕捉并识别其三维特征,从而对目标的行为进行判断以便制定合理作战计划。
主要从传感器、工作流程以及典型应用等方面对三维重建研究成果进行了总结。虽然三维重建已经取得了很好的进展,并且在许多实际场景中应用,但是仍存在许多挑战[18]:
① 不确定情况下的三维重建。由于环境的影响,使得基于图像的三维重建成为不确定问题。阴暗潮湿、光照较差等条件都会影响重建的效果。虽然现阶段有相关技术可以对图像进行滤波处理,但是最终的结果还需进一步优化处理。
② 相机自标定问题。正如文中提到的一样,当前的相机标定主要是以自标定为主。虽然绝对对偶二次曲面标定法等方法在某些方面得到了应用,但是它们在不同程度上都存在着缺陷。如何简化标定过程,使得相机具有自主学习能力是今后的一个重要优化方向。
③ 稀疏的三维点云表面重建问题。获得三维点云结构后,需要进行稠密重建,从而使重建后的结果更加完善。现阶段有学者提出CMVS与PMVS相结合的方法进行稠密重建。如何提高重建的精度,更加清晰地恢复场景纹理,还值得进一步研究。
④ 非刚体的三维重建。当前重建算法的提出大都假设场景中的物体为刚体进行研究,但是实际情况是有许多物体都是非刚体,因此需要对算法进行优化,从而实现对非刚体的三维重建。
⑤ 动态场景的图像三维重建。相机拍摄时获取的图像往往是静态的,因此无法很好地恢复运动物体的空间位置。因此今后一个重要研究方向就是如何根据获得的图像,重建出一个动态的场景。