利用CASCADE的交互技术实现点云数据的配准

2010-04-11 08:07吴维勇
制造业自动化 2010年14期
关键词:交互技术邻域顶点

冯 飞,丁 伟,吴维勇

FENG Fei, DING Wei, WU Wei-yong

(九江学院 信息科学与技术学院,九江 332005)

利用CASCADE的交互技术实现点云数据的配准

Data registration of base on interavtive technology with CASCADE

冯 飞,丁 伟,吴维勇

FENG Fei, DING Wei, WU Wei-yong

(九江学院 信息科学与技术学院,九江 332005)

利用CASCADE几何内核的交互技术,通过选择散乱点云图形中的特征点,使用ANN算法查找特征点的邻域点集,再利用二次曲面拟合的方法求得邻域点集的两个主方向和法方向,最后求得坐标变换,把数据统一到一个坐标系下。论文论述了该方法的基本原理以及CASCADE实现的相关技术,并通过实例证明了该方法的有效性。

交互技术;曲率;配准;CASCADE

0 引言

光学扫描仪可以在数秒钟内直接获得被测物体表面的点云数据,但因光的线性传播特性,在一个视角下扫描仪只能采集到物体某一部分表面的数据,物体整个表面的数据需要从不同视角对物体进行多次测量来完成。点云的数据配准就是将两个或者两个以上坐标系中测量得到的点云数据转换到统一的坐标系中的计算过程。

本文根据三维实体的特点,首先利用Open CASCADE提供的交互技术,通过交互的方式选择三维实体两个视角重叠分的特征点(例如:鼻子、眼睛、耳朵等特征部分)。再根据曲率能够表示特征点的局部邻域形状变化,具有平移、旋转和缩放不变性的特点,利用ANN算法搜索以特征点为中心的邻域点集,计算邻域点集法矢和两个主方向,计算出的法矢和主方向正好构成一个三维坐标系。从而通过两个视角点集所构成的坐标系来完成数据的配准。实验证明在三维实体特征比较明显和特征点选取比较准确的情况下,该方法能够非常好的实现数据的配准。

1 Open CACADE简介

Open CASCADE是由法国MatraDatavision公司推出的,面向对象的图形开发平台。它实质上是一个开源码的C++几何类库,主要提供三维表面和实体建模,可视化,数据交换和快速应用开发等方面的类库模块。使用Open CASCADE类库可以帮助开发人员快速的进行CAD/CAM/CAE,AEC和GIS以及 PDM等应用程序的开发。

1.1 Open CASCADE应用程序框架

为了帮助开发人员快速的利用Open CASCADE进行应用程序的开发,Open CASCADE提供了一个应用程序开发的框架OCAF(Open CASCADE Application Frame)。OCAF提供了应用程序结构,开发者的主要任务就是建立应用程序所需要的数据和程序接口。OCAF的应用程序数据组织方式和其他的CAD不同,在OCAF中,数据结构不是由形体驱动的,而是由参数驱动。

1.2 OCAF生成向导

Open CASCADE 提供了OCAF的生成向导可以让用户直接在VC++中生成基于MFC的多文档OCAF框架。生成向导的使用方法如下:把Open CASCADE根目录下的Tools文件夹中的OcafAPPWizard.awx文件添加到VC++CommonMSDev98Template目录里,然后就可以在VC++中利用OCAF应用程序向导自动生成基于Open CASCADE的多文档工程。

2 Open CASCADE的交互技术及其数据配准

2.1 算法执行的基本流程

光学扫描仪从两个视角扫描到实体的三维数据,系统首先读入两个视角的点云数据S={Si,i=1,2,...,k}和T={Tii,i=1,2,...,m}进行显示,用户可以利用系统提供的视角变换工具把图形的显示视角变化到最佳位置,选择图形中的特征点pnt1和pnt2(pnt1∈S,pnt2∈T)。然后,利用ANN算法搜索pnt1和pnt2两个特征点的邻域点集P={pi|pi∈S,|pi-pnt1|<δ,i<=m}和Q={qi|qi∈T,|qipnt2|<δ,i<=m},其中δ是m个点中距离特征点的最大距离。采用最小二乘法分别对点集P和Q进行二次曲面拟合确定两个曲面方程分别为:

2.2 三维点云数据在CASCADE中的显示

点云数据的在图形设备中显示主要有两种方式:一种是把每个点作为一个很小的球进行显示,在基于OpenGL的应用程序中经常采用这种方法;另一种方法是对于点云数据中的每一个点作为一种混合体的组成部分,最后对混合体进行显示。在计算机配置为“P4 2.0G RAM 2.0G”的设备上采用第一种方法显示两万多个点云数据花费时间约3分多钟,而采用第二种方法仅仅花费10秒钟左右。

在CASCADE中提供了一个TopoDS_Compound类,它是TopoDS_Shape的一个派生类。TopoDS_Compound类可以是由顶点、面或者体的联合而成的拓扑结构。在系统中采用BRep_Builder对象的Add方法把点云数据中的每个点添加到TopoDS_Compound对象中,最后对TopoDS_Compound对象进行显示。实验证明采用这个方法点云显示速度快,在进行视角平移旋转时画面比较流畅。

顶点在CASCADE中默认显示成一个十字。当系统中显示多个点的时候十字形的点显得凌乱,不方便对点云图形特征的识别。Prs3d_PointAspect类封装了三维顶点显示属性,在Prs3d_PointAspect构造函数中通过Aspect_TypeOfMarker枚举了三维顶点的显示形状。本系统在这里设置点的形状为Aspect_TOM_POINT,如图1所示。

图1 三维点云数据的显示

2.3 三维点云数据中特征点选取以及配准

在CASCADE中AIS_InteractiveObject(交互设备)类用来管理交互式图形对象,它封装了图形对象的显示模式和选择方式。通过该类的成员函数SetSelectionMode()可用来设置图形的选择方式是体、顶点、边或面等。当设置选择模式为0时,图形的选择模式为默认值,此时选择的对象为形体本身;当选择模式为1时,此时可以进行图形的顶点选择。代码如下:

myAISContext->InitSelected();//初始化选择的对象

TopoDS_Vertex aVertex; //定义一个顶点的拓扑数据结构

aVertex=TopoDS::Vertex(myAISContext->SelectedShape()); //返回选择的顶点

代码中的myAISContext是AIS_InteractiveObject类的一个对象。最后通过TopoDS_Vertex类的成员函数X(),Y(),Z()得到选择点的三维坐标。

在系统实现中,首先设置点云图形为形体选择模式,进行图形的平移变换以及视角变换,当变换到最佳位置,设置图形的选择模式为顶点选择模式,进行图形中特征点的选取,系统中通过红色的圈点进行显示。最后通过ANN算法计算特征点邻域点集,在系统中邻域点集采用锚点的方式进行显示,如图2所示。

ANN是采用C++语言编写的用于空间邻域点数据近似或者精确搜索的面向对象的C++类库程序,它是由美国Maryland大学的David等人开发的。采用ANN算法进行特征点邻域点集数据计算的程序如下:

图2 选择的特征点及其领域点集

本段程序首先构造ANN算法中的原始点云数组dataPts。程序中的TopExp_Explorer类封装了访问拓扑结构数据的工具。在系统中通过选择由点云数据构成的形体,采用TopExp_Explorer类的Init()方法可以遍历形体中的顶点、面、棱等拓扑结构。这样就避免了对读入的点云数据自己定义数据结构进行保存。

然后通过kdTree = new ANNkd_tree(ataPts,nPts,dim);构造一个搜索数据结构kdTree,通过kdTree的annkSearch()成员函数完成邻域点集的搜索,根据搜索获得的特征点集计算出特征点集的主方向和法方向,具体算法见参考文献。采用同样的方法搜索另外一个视角测量的点云数据的特征点集,最后计算出旋转矩阵和平移矩阵完成数据配准,效果图如图3所示。

图3 配准后图形效果

3 结论

本文论述了利用Open CASCADE的交互技术,通过选择不同视角下点云数据的特征点,由特征点确定邻域点集,进行二次曲面拟合,根据二次曲面曲率具有平移、旋转和缩放不变性的特征最终实现数据配准的方法。论文重点介绍了Open CASCADE的特点;三维造型的基本方法;在数据配准中点云数据显示的技巧以及点云图形中特征点拾取的实现技术。改进了基于特征的多视角点云数据配准的方法,应用算法对斯坦福大学数据bunny完成配准,在选择特征点比较精确的情况下,能够较好的完成数据的配准。但是算法对扫描数据的类型有一定的要求,当三维形体特征不太明显的情况下,很难完成数据特征点的精确选取,造成数据配置的误差较大。

[1] Besl P J,McKay N D·A method for registration of 3-D shapes[J]·IEEE Transactions on Pattern Analysis and Machine Intel-ligence,1992,14(2):239-256.

[2] 罗先波,钟约先,李仁举.三维扫描系统中的数据配准技术[J].清华大学学报,2004,8.

[3] Object libraries application framework uses guide[EB/OL].www.OpenCASCADE.org.2006.

TP391

A

1009-0134(2010)12(上)-0186-03

10.3969/j.issn.1009-0134.2010.12(上).60

2010-07-20

国家自然基金资助项目(60863012);江西省自然科学基金资助项目(0611063);江西省教育厅科技项目(GJJ08435,GJJ09346)

冯飞(1981 -),男,讲师,硕士,研究方向为图形图像处理。

猜你喜欢
交互技术邻域顶点
基于混合变邻域的自动化滴灌轮灌分组算法
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
体感交互技术在脑卒中康复中的应用
稀疏图平方图的染色数上界
虚拟交互技术系统的优势与应用分析
智能语音交互技术在媒体的应用和前景
VR交互技术在中小学拓展课程中的应用
基于邻域竞赛的多目标优化算法
基于细节点邻域信息的可撤销指纹模板生成算法