APP下载

点云数据处理算法与实现初步研究

2012-12-11蔡来良

测绘通报 2012年1期
关键词:通报数据处理内存

蔡来良,李 儒

(1.河南理工大学测绘与国土信息工程学院,河南焦作454003;2.西安煤航信息产业有限公司地理信息工程院,陕西西安710054)

随着测绘科技的发展,三维激光扫描技术被越来越多地用于房屋的变形监测、林木测量、工矿企业测量、输电线路测量、矿区地表移动观测站测量,地质滑坡监测、古文物建模、道路监测等[1-10]。随着该项技术的进一步深入,给数据处理也提出了新的要求。就目前来看数据处理都是基于一些通用平台,很少有针对某一领域的专用软件;同时,目前的数据处理软件都以国外软件为主体,很少有国产软件。为了进一步提高我国的自主研发水平,很有必要编制出有自主知识产权的点云数据处理平台,为更多的三维激光扫描应用提供服务。本文针对点云数据的特点,提出了基本的数据处理方法并进行了程序实现。

一、点云数据的存取

从三维激光扫描技术的特点可知,其测量速度快,自动化程度高,在很短时间就可以获取大量数据。通常一个扫描工程可获得上GB的数据,有的项目一次可以获得十几GB的数据。数据量巨大,给这些数据读取、处理、分析工作带来了挑战。

文件操作是传统应用程序最为基本的功能之一,现有流行的编程平台均提供有支持文件处理的函数和类,常用的有 Win32 API的 CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,无法再以通常的文件处理方法进行处理。目前,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的,若要使用内存映射文件,必须执行下列操作步骤:

1)创建或打开一个文件内核对象,该对象用于标识磁盘上你想用作内存映射文件的文件;

2)创建一个文件映射内核对象,告诉系统该文件的大小和如何访问该文件;

3)让系统将文件映射对象的全部或一部分映射到你的进程地址空间中。

当完成对内存映射文件的使用时,必须执行下面这些步骤将它清除:

1)告诉系统从进程的地址空间中撤消文件映射内核对象的映像;

2)关闭文件映射内核对象;

3)关闭文件内核对象。

与虚拟内存一样,内存映射文件可以用来保留一个地址空间的区域,并将物理存储器提交给该区域。它们之间的差别是,物理存储器来自一个已经位于磁盘上的文件,而不是系统的页文件。一旦该文件被映射,就可以访问它,就像整个文件已经加载内存一样。使用内存映射文件来访问磁盘上的数据文件时,可以不必对文件执行I/O操作,并且可以不必对文件内容进行缓存。

内存映射技术在点云数据处理过程的应用极大地提高了数据的存取速度,为进一步的数据处理奠定了基础。

二、点云数据的可视化

点云数据被读入系统后,最重要的工作便是对其可视化。通过计算机图形学的相关技术可知,现有的成熟三维显示引擎为OpenGL和Direct3D。下面分别介绍其技术实现过程。

1.基于OpenGL的点云数据可视化

OpenGL是行业领域中最为广泛接纳的2D/3D图形API,其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。根据其强大的图形功能,能完全胜任点云处理的各种可视化功能。其三维建模流程如图1所示。

图1 OpenGL建立三维模型的流程

2.基于Direct3D的点云数据可视化

Direct3D(D3D)是微软公司在Microsoft Windows操作系统上所开发的一套3D绘图编程接口,是DirectX的一部分,目前广为各家显示卡所支持。与OpenGL同为电脑绘图软体和电脑游戏最常使用的两套绘图编程接口之一。使用Direct3D来进行点云可视化的基本步骤如下:

1)设置绘图参数。在本步骤中主要设置的是窗口类型、后备缓存交换的参数、是否允许自动深度测试、绘图窗口的大小等。

2)创建绘图设备device。由于在整个系统中存在很多的数值计算,最小二乘拟合等,为了保证计算精度,需要设置上CreateFlags.FpuPreserve项。

3)场景渲染。在本步骤中主要通过循环绘制三维场景来显示点云数据,其实质是反复对上一步创建的device进行参数设置,更新显示区域。

三、点云数据的建模

由于点云数据的主要特点之一就是它的离散化。当需要研究被测物体的连续表面时就需要将离散的点连成面。不管是表示地形表面还是建筑物表面,目前用得最多的是三角网。三角网建立的方法虽然有一定的复杂度,但是建成后,其在纹理映射等方面有较强的优势。

三维Delaunay三角网的生成步骤如下。

(1)预处理

1)将点云数据自动分割为片状;

2)拟合出片状点云的趋势平面;

3)将片状点云投影在趋势平面上,获得投影的二维坐标,将三维问题转化为二维问题。

(2)连接三角网

1)提取包含所有数据点的最小外接矩形,沿矩形对角线将矩形划分为两个超三角形;

2)定位三角形,从点集中取出一点,在已构建的三角形中检索到包含该点的三角形;

3)确定受影响三角形,沿待插入点所在的三角形三条边的方向搜索,寻找出外接圆包含该点的所有三角形,这些三角形的外边界称为受影响边界;

4)受影响区域内三角形重构,删除所有受影响三角形,依次连接边界中每一条受影响边与待插入点构建新的三角形;

5)循环2)、3)、4)直到所有的数据点都被插入到三角网中;

6)删除包含所有包含最小外接矩形顶点的三角形。

四、系统的集成与实现

基于本文的基本算法,结合VS2010软件开发平台,研发了点云处理软件,该软件能实现一些基本的数据处理和建模功能,见图2、图3。

图2 点云的显示及交互操作

图3 点云的三维建模

五、结束语

通过算法研究,程序实现等手段,研究了点云数据处理平台。通过研究,基本上实现了点云数据的快速读取、显示和三维建模。为进一步建立更优的数据处理平台奠定了基础。

[1]蔡来良,吴侃,张舒.点云平面拟合在三维激光扫描仪变形监测中的应用[J].测绘科学,2010,35(5):231-232.

[2]戴华阳,廉旭刚,陈炎,等.三维激光扫描技术在采动区房屋变形监测中的应用[J].测绘通报,2011(11):44-46.

[3]王瑜,刘西涛,王照星,等.三维激光扫描技术在石化企业的应用[J].测绘通报,2011(11):86-87.

[4]段奇三.徕卡HDS8800三维激光扫描仪在露天矿中的应用[J].测绘通报,2011(12):79-80.

[5]李超,程浩,王芳.三维激光扫描技术在林木测量方面的应用[J].测绘通报,2011(11):86-87.

[6]周学林,魏文涛,王占超.三维激光扫描系统在舟曲重点地质灾害治理工程中的应用[J].测绘通报,2011(11):81-82.

[7]黄姗,薛勇,江涛.三维激光扫描技术在地质滑坡中的应用[J].测绘通报,2012(1):100-101.

[8]赵鑫,吴侃,蔡来良.具有先验信息的地面三维激光扫描地形测量数据去噪算法[J].大地测量与地球动力学,2011,31(4):107-111.

[9]孟志义,钱林.基于点云数据的文物精细建模[J].测绘通报,2011(12):41-43.

[10]徐进军,张毅,王海成.基于地面三维激光扫描技术的路面测量与数据处理[J].测绘通报,2011(11):34-36.

猜你喜欢

通报数据处理内存
WTO/TBT 通报
WTO/TBT 通报
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
WTO/TBT 通报
WTO/TBT 通报
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
“春夏秋冬”的内存
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
内存搭配DDR4、DDR3L还是DDR3?
基于内存的地理信息访问技术