任 栋
(上海海事大学 商船学院,上海 201306)
随着计算机技术的不断发展,模式识别技术已由二维数据图像分析向三维模型识别转变,其研究重点也由以往对单个物体的三维重塑和特征提取,转向对整体环境的三维识别.在三维数据场下,等值面抽取和绘制算法最大的挑战来自于体数据场规模与处理效率的矛盾[1].不过,数据量的增加虽然会加重计算机运行负担,但更能提高模式识别效率.在现实情况下,观测点对于环境信息提取的完整性显然不可能和医学CT相提并论,相比于完整切片式的三维重构,其往往只能取得有限的观测面数据.事实上,三维数据场数据的建立基本依托于两个因素:一是物体和观测点的距离;二是多个观测点的角度和位移.其中距离探测问题可以通过激光测距、标尺及三角定位等一系列方法解决,而多角度观测既是模型建立的需要,也是可行和必须的研究方法.本文研究自然条件下三维数据场的整体构建,并描述如何对目标区域进行精细分割.
移动立方体(marching cubes, MC)算法是一种通过对立方体的表面进行分析重建的算法.它通过提取两幅相邻切片图像形成的三维数据场构造立方体元,计算其中三角面片各顶点处的坐标和法向量,绘制出等值面,从而实现表面重建[2].
在MC算法所构建的O-xyz坐标系中,观测点观测到的数据是以空间向量形式存在的.设G1,G2为观测点.在一个切片S1上的点集都已经被观测完全时,其余多个视角对其观测并不能够起到数据加强作用;当另一切片S2因为被部分遮挡,单一观测点G1无法获得其完全点集时,相邻观测点G2补充观测能够完善该切片的数据,从而提高三维成型效率.考虑到观测点自身的向量坐标的变化以及观测点之间相对位置的改变,在三维模型建立时不能够以观测点作为基准而需要另选坐标原点.当三维数据场确定了观测点的数据坐标后不需要实时进行坐标转换,只需要定时将其位移数据考虑进去.
等值面是指空间中的一个三次曲面,用以构建三维数据场.为了保证模式识别数据可视化的实时性,本文使用面绘制技术表示物体的表面.以海上平面为例,观测点沿着水平方向360°,垂直方向±30°的数据分布如图1所示,单一观测点观测形成的空间向量坐标成圆柱形.在目标搜索中一般不讨论海面天空分界线及其上部分,所以数据处理主要集中在对海平面的空间观测.在三维坐标系中观测点位置已被确定,以1 cm为间隔单位进行数据切片,这些切片都是由圆柱体剖面数据插值得到,从而形成了初步的三维数据场.数据场中每个体元的三角面片近似构成了等值面片,见图2.
图1 圆柱体观测数据分布
图2 三维数据场和含三角面片的体元
利用VC++语言结合Matlab和Simulink的系统工具箱,将三维数据场数据传递给GUI,然后利用立方体元对象unit进行等值面绘制,得到形体对象object,对其特征运用分类器进行模式归类并加以识别.绘制流程见图3.
图3 绘制流程
本文数据集的大小为100 m×100 m×20 m,分别使用MC算法和提高区域精度MC算法进行了绘制.部分区域海面波浪的三维视图见图4.结果表明,基于面片绘制的方法在视觉上起到了较为直观的效果,在红外探测下还能显示出水体温度的差别.在配置为Intel(R) Core i53210M CPU 2.5 GHz,内存8GB DDR3,硬盘1 TB,显卡芯片NVIDIA GeForce GTX660M的计算机上,整体三维数据场在Matlab环境下单观测点数据面片绘制平均时间为5.03 s,在两个观测点时为7.41 s.分析发现,多了一个观测点之后数据量提高,运算时间加长,同时前后两者的CPU利用率分别为54%和87%.
图4 区域海面波浪
由于间隔单位跨度较大,三维数据场域形成还是较为迅速的.当对某一区域进行更加精确的绘制时,需要在观测设备软硬件的支持下对目标区域进行再次分割,分割的方法如同再构建一个间隔单位更小的三维数据场.这一数据场可以拥有自己的坐标体系,但需要和已有的坐标系在立方体元的分割和组成上相互统一,以方便两者之间的相互转换.当然,这种再分割的行为又会大量地占有计算资源.
对某一区域而言,多个观测点不仅能够为等值面的形成提供更为详细的绘制数据,而且可以从另一个角度建立新的数据.比如,新方向的切片和原有的切片互相垂直,形成的立方体元也就有所不同, 这些新的立方体元对于已构成的等值面片起到了补充和验证作用.在海面上以不同的观测点观测,按照距离远近将所得图像划分两类切片,它们的法向量互相垂直.由于方向不同,所得海面波浪切片计算出的等值面将会有很大差异.
三角片网格是等值面的一种多边形逼近形式.三角片与真正的等值面之间存在误差,这就要求三角剖分的结果不改变等值面的拓扑性质,保证其一致性和正确性[3].所以一般可以依据坐标轴的选取和数据信息观测的多少来确定一个主要方向,依据该方向划分的切片形成相应的三维数据场,数据场中立方体元所包含的三角面片被赋予较高的权值.
同时,将与这一方向垂直的切片所形成的三角面片以较低的权值加以补充.这是因为在三维立体环境下,前方物体可能会遮蔽后方物体的一部或全部,从而形成观测的阴影面,但是从另一观察面尤其是垂直面,可以观测到阴影面并将数据补充到已有的模型当中.需要注意的是,不管从哪个方向进行观测,所得到的立方体元都必须是在同一坐标系之中.
研究多观测点的另一个原因是:在实际观测搜索中,观测点往往随观测载体处于运动之中,其获得的数据坐标也必然要产生位移,事实上产生了多观测点下的数据融合问题.MC算法由于其自身所带有的三维属性可以用来进行多点观测,并在今后目标体元的变化研究中起到了积极作用.
本文的三维数据场是基于MC算法,在多个观测点多视角共同覆盖下将所要观测的整体环境作一个初步构架.同时,该数据场预留被进一步划分的空间,以满足模式识别所需要的高精度分割要求.以海上环境为例,讨论了三维数据场的形成情况.根据不同的观测角度得出的多向切片,可以互相验证并提高立方体元的数据完整度,从而得到一个适宜于模式识别的可伸缩三维数据场.这一方法为模式识别领域提供了一条新的思路,但需要进一步的探索:首先,对该方法优化,根据海上的实际情况解决其不同方向绘制体元的差异性及其运行速度问题;其次,研究观测对象随时间变化而产生的形变对三维绘制与模式识别的影响与要求.
参考文献:
[1] 张迎平,高国贤,陆一峰,等.基于区间树硬件加速索引的Marching Cubes算法[J].计算机辅助设计与图形学学报,2012,24(7):871.
[2] 钱峰,马秀丽,杨胜齐,等.移动立方体算法的研究和改进[J].计算机工程与应用,2010,46(34):177.
[3] 吕理伟,顾耀林.移动立方体算法的三重线性插值研究[J].计算机工程与应用,2005,41(32):41.