基于计算机视觉的三维重建技术,是指利用二幅或多幅二维图像来恢复空间物体表面的几何信息,其过程是成像过程的逆过程[1]。在三维重建发展的早期,受到计算处理能力的限制和理论研究水平的限制,真实物体的建模需要昂贵的专用设备如视觉坐标测量机等来实现,并且受灰度匹配原则的限制,单一摄像机所拍摄的两幅图像不能有太大的平移和旋转,摄像机的运动收到严格限制。本课题的研究目的就是解决该项问题,用最普通的数码设备(如手持家用数码相机)从多视角获取物体序列图像,经过普通计算单元(如PC机)的处理,确定多视图的对应点与多视图之间的几何约束关系,恢复出特征点在三维空间的坐标与每幅图像对应的摄像机在三维空间中的坐标,获得三维模型。
针对非特定环境下的三维模型重建受到背景干扰而无法达到精度的问题,提出了采用基于Grabcut的图像分割方法,该方法基于图割理论能量最小化的原则,可以较好的分离前景背景,去除图像的冗余信息。且本文用三视图进行空间点的重建,相对于传统的只用两幅图的重建算法精度更高,稳定性更好。
-
- 图像预处理
图像的获取是基于立体视觉三维模型重建的基础,在通过图像传感器(如CCD摄像机)获取图像后,考虑到光照条件、摄像机性能、视点差异等影响,我们需要对获取的图像做进一步处理。
图像预处理的目的在于:提高图像的清晰度,改善图像的视觉效果,将图像转换成一种更适合于人或机器分析处理的形式[2]。包括两个部分:1)图像的平滑、滤波及增强2)背景与目标物体的分离。
在机器视觉的应用中,为了从图像中获取世界坐标系中三维物点与像点的对应关系,计算物体的位置、形状等信息,必须建立摄像机成像的几何模型并获得其参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为摄像机标定[3]。摄像机标定确定了摄像机内部几何和光学特性(内部参数),相对世界坐标系(如图)的摄像机坐标系的三维位置和方向(外部参数),标定的精度决定了模型重建的精度,因此相机标定采用的算法至关重要。
:
1.3 特征匹配
匹配是三维模型重构中的一个核心问题,寻找两幅或多幅图像中的对应特征点,使图像间的均方误差最小化,就可以得到更精确的相对位置关系,从而对两帧图像进行匹配。现有的特征点提取方法可以分为基于模板的特征点检测,基于边缘的特征检测和基于亮度变换的三类[4]。文中SIFT特征匹配算法是一种稳定的局部特征匹配算法[5]。该算法匹配能力较强,具有优良的尺度和旋转不变性以及对光照和视角变化的鲁棒性,广泛应用于机器人视觉、三维目标重建及医学图像配准等领域。
-
- 三维重建
在进行特征点匹配并且得到相机的内外参数后,就可以从像素坐标系中的某个像素点逆向映射成世界坐标系中的点。通过特征点在图像中的匹配关系,建立方程组,求解各个特征点在世界坐标系中的坐标值,再将各个特征点按对应关系连接成相应的三维立体图,完成物体的三维重建[6]。
2系统设计
2.1图像预处理
针对图像质量退化的问题,采取基于简化脉冲耦合神经网络模型的噪声滤波及图像增强。在本节重点讨论的图像分割中,采用基于Grabcut的图像分割方法。
Grabcut是一种交互式的图像分割方法,以简单的“硬分割”代替三分图的构建,减少了人工交互部分的工作量, 是Rother等人对Graph cuts算法的改进[7]。 该方法有以下三点改进:1)采用高斯混合模型(Gaussian Mix-ture Model,GMM)来取代直方图,完成对彩色图像的目标提取。2)多次迭代估计GMM参数取代一次最小化估计完成能量最小化的过程。3)通过非完全标记的方法降低了对交互工作的要求。
Grabcut目标提取算法中每一个GMM都可以看做是一个K维协方差,在优化过程中引入向量k作为每个像素的独立GMM参数,相应的像素点上不透明度a=0或a=1,用 q表示目标/背景颜色分布的概率模型,所以图像分割分割问题转化为
Grabcut的主要步骤如下:
初始化:1)人工设置背景TB来初始化三分图。前景区域TF为空,未知区域TU取背景TB的补集。2)将背景区域像素的.a值设为0,未知区域像素的a值设为1。3)分别用α=0和α=1两个集合来初始化前景与背景的高斯混合模型。
迭代最小化:1)求出未知区域中每个像素n所对应的GMM参数,。2)由各个像素的数据切得高斯混合模型参数q,。3)利用最小能量 得到初始分割。4)重复执行步骤1),直到收敛。
用户交互编辑:1)人工交互制定图像中某些像素的a值,令其为0或1,更新三分图,执行迭代最小化中的第三步骤。2)优化:重新执行整个迭代最小化的步骤。
若用户给出的初始化信息没有得到十分满意的分割效果则进一步交互,利用更多的信息重新最小化能量,直到满意的分割结果。
宽基线条件下的特征匹配是要提取稳定的特征并进行描述,从而实现差异较大的两幅图像之间的特征匹配。
图像中SIFT特征向量生成的算法包含以下四步:1)尺度空间极值检测,确定关键点位置和所在尺度。2)通过拟合函数精确确定关键点位置和尺度,去除低对比度的点。3)通过梯度方向分布特性为每个关键点指定方向参数。4)生成SIFT特征向量。
如图左部分以关键点为中心取8×8的窗口,在每4×4的小块上计算8个方向的梯度方向直方图,即可形成一个种子点。右部分关键点由2×2共4个种子点组成,每个种子点有8个方向向量信息,实际计算过程中,为了增强匹配的稳健性,对每个关键点使用4×4共16个种子点来描述,这样对于一个关键点就可以产生128个数据,即最终形成128维的SIFT特征向量。
图所示为特征匹配的一般流程,SIFT描述子生成后,采用欧式距离作为相似性度量。
D越小,表明特征点对应距离越近,形似程度越高。匹配过程中对待匹配的点采用最近领域法搜索图像2中的特征点,找到最近的两个特征点,如果最近距离和次近距离的比值小于某个阈值,则接受这一对匹配点。据此得到的初始匹配结果后,采用RANSAC(随机抽样一致性算法)剔除误匹配。
2.4三维重建
本文采用一部数码相机从不同角度对同一物体拍3张照片,并确保同一特征点出现在3张照片中。然后通过三幅视图的图像对应计算可得到三焦点张量,与两视图几何的基本矩阵类似只与相机参数有关,相机矩阵在相差一个三维空间的射影变换下可借由三焦点张量恢复,同时确定图像之间的基本矩阵。
具体流程如下:1)从序列视图中估计二视图几何,然后连接两视图的匹配集,计算跨三幅视图的一组特征点对应。2)由至少7组非退化的对应关系计算三焦点张量。3)由三焦点张量恢复基本矩阵。4)确定两个相机的矩阵后,在相差一个射影矩阵下恢复第三个相机矩阵。5)可行性误差处理。
在得到三维坐标后,还要进行物体表面的可视化,,文中采用Delaunay三角剖分法重建出物体的三维表面。最后通过OpenGL完成纹理映射。