APP下载

基于四目立体视觉的三维全自动建模

2015-12-23黄荣娟仲思东屠礼芬

计算机工程与设计 2015年2期
关键词:精简曲率立体

黄荣娟,仲思东,2,屠礼芬

(1.武汉大学 电子信息学院,湖北 武汉430072;2.武汉大学 测绘遥感信息工程国家重点实验室,湖北 武汉430079)

0 引 言

三维建模技术对世界文化遗产的传承有着不可替代的作用,因为三维模型能给人们带来最直观、逼真的视觉体验,可以再现物体或场景的原貌,且不受损坏。传统的三维建模方法在建模效率、精度及纹理真实感等方面存在一些不足[1]。例如,在工业造型中,常利用三维激光扫描技术建模[2],精度较高但价格也较昂贵,还有三维反向建模技术、侧重物体三维几何信息的测量,而在物体表面纹理信息的重建方面稍有不足。另外,还有利用计算机辅助设计进行三维建模[3],工作量较大,效率不高;基于图像渲染的建模技术,可直接根据图像进行快速建模,但在交互性等方面存在问题[4]。

鉴于上述各类三维建模方法存在的不足,本文以敦煌莫高窟内的佛像为建模对象,研究了基于四目立体视觉的三维建模方法[5]。由于点云数据量较大,因此本文着重研究了几种常见的点云精简算法[6,7],并提出了一种改进的包围盒法。实验结果表明,点云精简后,建模效率大大提高,且建模精度较高。

1 复杂场景三维模型自动生成技术

1.1 复杂场景三维模型自动生成流程

自动生成三维模型的程序流程如图1 所示,其中,提取特征点即获取并保存物体表面的三维点云数据;导入数据是将保存的三维点云数据导入计算程序中,以备后期处理;三角构网是指将导入的三维特征点以特定的法则连接成若干个三角面片,重建出物体表面的三维框架;加载纹理即是将获取的物体纹理图像映射到构建好的三维面片上,生成带有真实纹理的三维模型,最后,通过程序绘出能够平移、旋转及缩放的三维模型。

图1 三维模型自动生成流程

本实验中,提取三维特征点所用的是四目立体视觉系统,其原理将在下面讨论。提取特征点后,导入数据,然而,由于本实验提取的点云数据量过大,导致程序在三角构网环节无法正常进行,故需在导入数据之后,对点云数据进行精简,且要确保点云精简后既能高效进行后期处理,又不影响最终建模精度,这也是本文研究的重点。点云精简之后,进行三角化和纹理映射,最终获得三维模型。

1.2 四目立体视觉系统

四目立体视觉系统如图2所示,图中每个相机所拍摄的影像分别标记为“IMG1”、“IMG2”、“IMG3”、“IMG4”,物方坐标系O-XYZ中有一点P(x,y,z)在每个相机中所成的像分别为点P1,P2,P3和P4。

图2 四目立体相机布置

由图2可见,四台相机布置的特点是:相机的光轴平行,特征在立体影像之间存在透视变形,这种变形给特征匹配带来了困难,但是光轴平行布置会把这种变形减小。相机为矩形分布,同一侧的两台相机之间基线很短,但左右两边的基线较长,基线越短,特征的变形会越小,但深度测量精度会降低。相反的,基线越长,特征的变形会越大,但深度测量精度会提高。在这个系统中,短基线有利于提高特征的匹配效率,长基线有利于控制测量精度。另一方面,四台相机两两之间可构成六组双目立体影像,即由P1、P2、P3和P4这4个二维图像点可以组成六组二维图像点对,根据其中任意一组点对,可求出它们对应的空间点P(x,y,z)的三维坐标[8]。由于误差的存在,从这六组点对得出的测量结果是不一样的,最终测量结果需根据这六组立体影像的基线进行加权平均,即通过重复测量的方式减小了测量误差,因此,四目视觉系统比双目视觉系统测量精度更高。

2 点云精简

2.1 包围盒法

常用的点云精简方法有[6,7]:随机采样法、包围盒法、三角网格法、曲率采样法。本实验中,数据量较大,若采用三角网格法或曲率采样法,运算效率较低;随机采样法效率高,但精简结果过于随机,精度达不到要求;故本文对包围盒法进行了实验研究。

包围盒法的基本思路是:用一个大的立方体包围盒将点云数据恰好全部包围,将大包围盒分解为若干个大小均匀的小包围盒,选取每个小包围盒的中心点来代替整个小包围盒中的所有点,从而达到点云精简的目的。

实验结果表明,包围盒法精简点云的效率较高,且对于分布均匀的点云数据其精简效果良好,而对于分布不均匀或表面曲率较大物体的三维点云数据,其不能保证点云数据精简后重建模型的精度。本文对包围盒法进行了改进。

2.2 改进的包围盒法

改进的包围盒法程序编写的流程如图3所示。

图3 点云精简流程

首先利用点云数据X、Y、Z坐标的最大值和最小值生成一个与坐标轴平行的能包围所有点云数据的最小立方体,即大包围盒,设其长宽高分别为I、J、K,则I、J、K 的值可由下式求得

其中 (Xmax,Ymax,Zmax)和 (Xmin,Ymin,Zmin)分别为包围盒的最大坐标和最小坐标,ceiling()为向上取整函数。

设包围盒中的点集为集合M。将大包围盒均匀划分为若干个边长为CubSize的正方体小包围盒,设每个小包围盒内所有点为集合Ni,i=0,1,…,则NiM。设Ni内点的个数为k,每个点为nj∈Ni,其坐标为 (x(j),y(j),z(j)),j=1,2,…k。

图7给出了测量误差分别为σ=10m和σ=103m时算法的GDOP图.可以看出,两种测量误差条件下,算法的定位误差分布具有相似的规律,即在外辐射源和接收站所在的近场区域,定位精度最高,而随着目标远离,定位精度逐渐降低.这与仿真1中近场和远场目标的定位误差的比较情况是一致的.

对于每个集合Ni内的所有点,设用最小二乘法拟合成的平面方程为ax+by+cz=1,则由最小二乘法的定义可知,a,b,c的求解公式如下

设Ni内的任意点nj到拟合平面的距离为D(j),Ni内所有点到拟合平面的平均距离为m_Dis,则有

对于任意Ni,m_Dis的大小反映了该部分点云对应区域的曲率大小,求出其m_Dis后,Ni内点的取舍规则如下:

设置两个阈值A 和B,其中A 小于B,若m_Dis小于阈值A,说明该区域较平坦,则舍弃Ni内所有点;若m_Dis介于阈值A和B之间,说明该区域有一定曲率,则求出Ni内所有点的重心坐标,设重心坐标为(cx,cy,cz),则有

保留Ni内离重心最近的点,舍弃Ni内其它点;若m_Dis大于阈值B,说明该区域曲率较大,为提高精度,将该小包围盒再划分为边长为CubSize/2 的8 个次小包围盒,同样求出每个次小包围盒内所有点的重心坐标,将次小包围盒内离重心最近的点保留,其它点舍弃。

由原理可见,改进的包围盒法将原始的均匀采样改进为依据点云数据的曲率大小调整采样点数的非均匀采样,因而对于非均匀分布的点云数据采样精度更高。

3 实验过程及结果分析

本实验的硬件平台:Windows7 32 位操作系统,主频2.60GHz,RAM 为4.00GB。软件平台:VC++6.0编程环境。

本实验首先将CubSize设为0.04m。将点云划分为若干个边长为0.04m 的小包围盒后,通过软件调试观察得到较平坦区域的m_Dis大多在0到0.0012m 之间,而有一定曲率区域的m_Dis大致范围是在0.0012到0.0018m 之间,大于0.0018m 的则是曲率较大区域。为舍弃平坦区域的大量冗余点,又确保有少许的特征点被保留,本文将阈值A 设为0.009m,阈值B则设为0.0018m。参数设置完毕后,即进行全自动建模,建模结果在少许细节方面精度稍有欠缺,故实验采取减小CubSize的方式提高精度,将Cubsize设为0.03m,所得三维模型和实物已无明显差异。为确保建模高精度,最终将CubSize设定为0.02m。

对于所有点集Ni,其m_Dis的大小反映了该区域的曲率大小。根据m_Dis与阈值A、B 的大小关系可将Ni划分为3类:m_Dis小于阈值A 的点集,m_Dis介于阈值A、B之间的点集和m_Dis大于阈值B的点集。包围盒法和改进的包围盒法在这三类点集中采样的点数见表1。

包围盒法和改进的包围盒法精简后点云与原始点云的空间分布对比如图4所示。

(2)三角构网及纹理粘贴。在VC++软件编程环境下,利用C++程序以及OpenGL 提供的接口函数将精简后的点云三角构网[9,10],再从纹理图像中提取佛像的纹理并粘贴于已构网的空间模型上[11,12],即可生成逼真的三维佛像模型。从不同角度截取的模型组图如图5所示。

表1 改进前后包围盒法采样点数对比

图4 点云空间分布对比

图5 三维模型

实验结果分析:点云精简前后参数对比见表2,由表2可见,原始点云数据量较大,包含大量冗余点,使得三角构网无法正常进行,而精简后的点云数据量以及所占内存大大降低,使得全自动建模能够顺利、高效的完成。

表2 点云精简前后参数对比

由表1和图4可见,改进后的包围盒法与原始包围盒法相比,在曲率较小的平坦区域多舍弃了大量冗余点,而在佛身等曲率较大的区域增加了较多采样点。

实验结果表明,本文所提出的改进的包围盒法既保留了原始包围盒法运算效率高的优点,又可根据各个区域的曲率大小调整采样的点数,有效的提高了点云精简的精度,且由图5可见,最终生成的三维模型直观、逼真,建模精度较高。

4 结束语

敦煌莫高窟内场景的三维重建及保存对于世界文化遗产的传承有着重大的意义。本文以敦煌莫高窟内的佛像为建模对象,研究了基于四目立体视觉系统的三维全自动建模技术。实验验证了基于立体视觉的三维建模技术效率高、精度高的优点,为后期对敦煌莫高窟内整个场景的三维重建打下了基础。由于采集到的三维点云数据量较大,需对点云进行精简以去除大量冗余点,因而本文研究了多种点云精简方法,并提出了一种改进的包围盒法。经实验验证,该算法高效可行,点云数据精简后建模效率有较大提高,且生成的三维模型精度较高。

然而,实验还存在一些不足,在CubSize、阈值A 和阈值B的选取上,实验是通过人为的程序调试和对比实验,最终选定这3个参数的大小。在以后的研究工作中,应能够根据点云数据自身的特点,通过软件编程,实现参数和阈值的自动选取。

[1]LUAN Xidao,YING Long,XIE Yuxiang,et al.Advances in study of 3D modeling [J].Computer Science,2008,35 (2):208-211(in Chinese).[栾悉道,应龙,谢毓湘,等.三维建模技术研究进展[J].计算机科学,2008,35 (2):208-211.]

[2]YANG Ming,HUANG Qiang.Research on the application of terrestrial 3Dlaser scanning technology in historical style preservation [J].Geomatics &Spatial Information Technology,2013,36 (6):131-134 (in Chinese). [杨铭,黄强.地面3维激光扫描技术在历史风貌保护中的应用 [J].测绘与空间地理信息,2013,36 (6):131-134.]

[3]ZHANG Kaixuan.Three-dimensional modeling with CAD [J].Computer Systems & Applications,2012,21 (2):192-195(in Chinese).[张凯选.CAD 下三维建模研究 [J].计算机系统应用,2012,21 (2):192-195.]

[4]DENG Zhidong,NIU Jianjun.Three-dimensional modeling approach based on stereo vision [J].Journal of System Simulation,2007,19 (14):3258-3262 (in Chinese).[邓志东,牛建军.基于立体视觉的三维建模方法 [J].系统仿真学报,2007,19 (14):3258-3262.]

[5]JI Zheng.Research on automation technique for close-range object’s 3D reconstruction [D].Wuhan:Wuhan University,2007 (in Chinese).[季铮.近景目标三维重建的自动化方法研究 [D].武汉:武汉大学,2007.]

[6]LI Tianlan.Three-dimensional point cloud data processing and application [D].Kunming:Kunming University of Science and Technology,2011 (in Chinese).[李天兰.三维点云数据的处理与应用 [D].昆明:昆明理工大学,2011.]

[7]WANG Ru.Reduction algorithm for 3Dscattered points cloud data based on clustering plane feature [J].Computer Engineering,2011,37 (10):249-251 (in Chinese). [王茹.基于聚类平面特征的三维点云数据精简算法 [J].计算机工程,2011,37 (10):249-251.]

[8]WANG Yanxia,WANG Zhenzhou,LIU Jiaomin.Three-dimensional modeling approach based on stereo vision [J].Journal of Hebei University of Science and Technology,2008,29(3):219-222 (in Chinese). [王彦霞,王震洲,刘教民.基于双目立体视觉的三维建模算法 [J].河北科技大学学报,2008,29 (3):219-222.]

[9]YUAN Fang,TANG Jie,WU Gangshan.A geometric spread approach of 3Dreconstruction [J].Computer Technology and Development,2011,21 (10):14-18 (in Chinese). [袁方,唐杰,武港山.一种基于三维Delaunay三角化的曲面重建算法 [J].计算机技术与发展,2011,21 (10):14-18.]

[10]WANG Xianze,LI Zhongke,MA Yaqi,et al.Region growing and scattered point cloud refactoring based on Delaunay triangle subdivision [J].Journal of Sichuan Ordnance,2012,33 (5):108-111 (in Chinese).[王先泽,李忠科,马亚奇,等.基于Delaunay 三角剖分和区域生长的散乱点云重构[J].四川兵工学报,2012,33 (5):108-111.]

[11]XIAO Yuanyuan,WANG Ziniu.Research and implementation for texture mapping of OpenGL based On VC++ [J].Journal of Guizhou University (Natural Sciences),2008,25(2):158-160(in Chinese). [肖源源,王子牛.基于VC++的OpenGL纹理映射技术的研究与实现 [J].贵州大学学报(自然科学版),2008,25 (2):158-160.]

[12]Richard S Wright.OpenGL SuperBible [M].Beijing:Post&Telecom Press,2012:127-161 (in Chinese). [Richard S Wright.OpenGL超级宝典 [M].北京:人民邮电出版社,2012:127-161.]

猜你喜欢

精简曲率立体
大曲率沉管安装关键技术研究
一类双曲平均曲率流的对称与整体解
基于区域分割的多视角点云精简算法
念个立体咒
半正迷向曲率的四维Shrinking Gradient Ricci Solitons
时常精简多余物品
立体登陆
一种面向应用的流量监测精简架构设计
炫酷立体卡
Esn+1中具有至多两个不同主曲率的2-调和超曲面