CSDN中关于立三维重构的介绍层出不穷,CNKI中也有各类综述对三维重构进行总结,撰写这篇博客仅作为本人对该类博客、论文的总结学习,加深自身学习的印象、作为学习的笔记。如有错误的地方,欢迎指正。
首先要了解立体匹配算法,首先要知道立体匹配算法主要具体应用于什么方向。
三维重构又被称为三维重建,百度百科中对它的定义为:指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。
在计算机视觉中, 三维重建是指根据单视图或者多视图的图像重建三维信息的过程. 由于单视频的信息不完全,因此三维重建需要利用经验知识. 而多视图的三维重建(类似人的双目定位)相对比较容易, 其方法是先对摄像机进行标定, 即计算出摄像机的图象坐标系与世界坐标系的关系.然后利用多个二维图象中的信息重建出三维信息。
个人认为,三维重构就是通过计算机视觉技术,将现实世界中物体的三维信息获取到计算机中的过程,使物体的三维信息能够通过点云、网格等形式,显示或是储存在计算机中。(如点云的pcd格式文件保存形式、以及利用Gemagic等软件进行点云的可视化处理等。)
三维数据需要通过三维重建技术获得。广义三维重建是指通过测量工具与解算方法,获取目标局部点、三维坐标、面三维结构乃至整体三维模型;狭义三维重建指通过重建技术,获取包括结构、纹理、尺度等的目标完整三维信息。
在阅读文献的过程中,文献提到了三维重构被广泛应用于无人驾驶、物体导航、无人机避障、医学诊断、逆向工程、文物保护、精密仪器测量等方面。提到的这些方面的应用虽然能够给人一种模糊的印象,但是还是不够具体。因此在此,我想尝试揭开他的神秘面纱。
三维重构在这两种领域的应用主要在于三维地图的构建,具有代表性的是SLAM中的建图、以及视觉测距等。(SLAM,即定位与地图构建。问题可描述为:将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边移动一边逐步绘制出此环境完全的地图,所谓完全的地图(a consistent map)是指不受障碍行进到房间可进入的每个角落。)其中机器人的主体由无人机、无人汽车、移动机器人等替换。
其中一种解决无人机避障问题的方法是对无人机到障碍物的距离进行测量。 其中可运用视觉避障方法从二维的图像中获取三维信息,获得障碍物的深度图像。在避障的过程中,利用SLAM获得了场景模型,在机载计算机里用算法去搜索优化的避障路径。
其中无人机的避障方式可参考博客:https://blog.csdn.net/weixin_42229404/article/details/81227148
三维重建在SLAM中主要是视觉SLAM应用,主要利用外部传感器获知环境信息。其中相机是常用的传感器之一,相机又分为三种,分别为:单目相机、双目相机、RGB-D相机等。
单目相机对于三维信息的提取效果较差,因此主要使用双目相机与RGB-D相机。其中双目相机则是通过左右眼图像的差异来判断场景中物体的远近,能直接提取完整的特征数据,但是计算量复杂。而RGB-D相机,可同时获取图像彩色信息和深度信息,是一种实用的获取三维信息的工具。视觉传感器很好地利用了丰富的环境信息,实现了从早期二维地图到三维地图的转化,丰富了地图信息,但是在现实环境下还存在很大的鲁棒性和高适应能力技术挑战。
医学图像三维重建技术主要应用于面绘制、体绘制、医学三维可视化系统等方面。主要是计算机断层扫描(CT)、核磁共振(MRI)、超声波等医学成像技术的发展,使得感兴趣区域CT、MRI图像的三维重建成为可能。
利用重建软件,如中国科学院开发的一款用于医学图像数据的分析和处理的软件3DMed,可以处理各种医学图像,包括计算机断层扫描图像,磁共振成像和原始格式图像。以MRI为例,如可以通过研究对获取的MRI图像进行分割、三维建模和显示,可以辅助医生对疾病的判断和制定治疗的方案。与双目视觉重构相比,获取图像的方式较为不同。
运用在测量的三维重构方法属于非接触式测量方法,比起三坐标测量机等接触式测量方法更能满足各类不同的测量需求。其中三维重构方法又分为主动式测量与被动式测量方法。主动式测量是利用投射结构光等(如编码结构光、散斑等),运用直接三角法进行重构测量。而被动式测量法可基于不同视角的测量法,通过不同角度获取图像,根据视差恢复待测物体的三维信息,其基本原理是双目交会测量。
双目交会测量使用两台相机从不同角度对待测目标进行拍摄,在相机内、外参数标定基础上,通过对匹配点对进行空间立体交会,获得目标点云,进而进行相关测量。目前图像匹配方法发展成熟,因此双目交会对材质、颜色等物面性质及背景光等环境因素要求较低,适合对大型三维物体如建筑物等的测量。双目交会测量精度主要受匹配精度、基高比、相机标定精度等因素制约,因此测量精度较低,同时难以实现实时测量,重建与测量范围不能覆盖整个待测物体,目前只有在一些特定场合得到应用。
三维重构的步骤主要分为:图像获取、摄像机标定、特征提取、立体匹配、三维重构等方面。
(1)图像获取
在进行图像处理之前,要使用摄像机获取三维物体的二维图形。光照条件、相机的几何特性等对后续的图像处理造成很大的影响。其中,摄像机的传感器又分为CMOS与CCD,CCD传感器的成像质量比CMOS的更好,但是成本更高。
首先要对相机进行二次开发,而后搭建出双目视觉平台,而双目相机的关系又主要分为平行光轴与相交光轴两种,将在之后对它们进行讨论。
(2)摄像机标定
通过摄像机标定来建立有效的成像模型,求解出摄像机的内外参数,这样就可以结合图像的匹配结果得到空间中的三维点坐标,从而达到进行三维重建的目的。目前最常使用棋盘格,利用张氏标定法进行标定。
(3)特征提取
特征主要包括特征点、特征线和区域。大多数情况下都是以特征点为匹配基元,特征点以何种形式提取与用何种匹配策略紧密联系。因此在进行特征点的提取时需要先确定用哪种匹配方法。匹配算法又包括全局立体匹配算法与局部立体匹配算法。之后会进行讨论。
(4)立体匹配
立体匹配是指根据所提取的特征来建立图像对之间的一种对应关系,也就是将同一物理空间点在两幅不同图像中的成像点进行一一对应起来。在进行匹配时要注意场景中一些因素的干扰,比如光照条件、噪声干扰、景物几何形状畸变、表面物理特性以及摄像机机特性等诸多变化因素。
(5)三维重建
有了比较精确的匹配结果,结合摄像机标定的内外参数,就可以恢复出三维场景信息。由于三维重建精度受匹配精度,摄像机的内外参数误差等因素的影响,因此首先需要做好前面几个步骤的工作,使得各个环节的精度高,误差小,这样才能设计出一个比较精确的立体视觉系统。
之后可以对重构输出的点云数据进行后处理,如去噪处理、表面重建等。