探究点云数据处理算法与实现

(整期优先)网络出版时间:2022-11-15
/ 2

探究点云数据处理算法与实现

田心思

天津赛威至正科技有限公司 300110

摘  要:基于计算机软件在开发时的相应知识进行分析,针对点云数据处理的算法进行研究和分析,提出以内存映射读取的点云数据方法为基础,根据点云数据的可视化关键的技术流程以及核心技术架构,以此来进行点云数据处理程序的开发与应用。并且也要结合试验数据对其进行分析,对程序的可行性进行验证,从而确保高级数据处理平台的良好研发工作可以有效开展,并为相应工作的有效进行奠定坚实基础。

关键词:点云;数据处理算法;实现;

我国必须要不断提升自主研发的能力和水平,打造出有着自主知识产权的专业性强的点云数据处理技术,从而为三维激光扫描工作的良好开展提供有针对性的服务。因此,下面就针对点云数据的特点进行分析,探究数据处理方法,并为程序实现提供保障。

一、点云数据存取操作

针对三维激光扫描技术的相应特点进行分析,发现其有着较快的测量速度,有着较强的自动化程度,而且针对大量的数据信息的获取可以在短时间内完成。一般情况下完成一个扫描工程就能获得G以上的数据信息,而且一些项目在完成一次操作后也可能得到几十G的信息量。整个数据量较为巨大,而对这么多的数据进行读取、分析出来,可想而知工作量是非常大的。

    在传统应用程序中,文件操作是最为基础的功能,在编程平台中也都有为其提供相应的文件处理函数的分类,实际中较为常用的就包括Win32 API中的Create File()、MFC中的CFile等。在实际应用中这些函数都能够满足很多行业操作的需求。可是针对一些特殊的应用领域中会要求能够驱动几十G甚至TB以上的数据量时,很难运用常用的函数处理方法对这些文件进行处理和分析。而在实际操作中,针对以上的大文件操作主要就是通过内存映射文件的形式来进行,主要操作过程有以下几点:

首先,通过创建符合该文件需求的内核对象,这是通过这一对象来标识磁盘中用于内存映射文件的部分。其次,再创建一个映射内核对象的文件,并让系统可以知道如何访问该文件,以及明确该文件的大小。最后,要求系统可以将该映射对象文件中的信息映射到所运行的地址空间之内,进而完成数据处理和分析工作。而在完成了对其内存映射文件进行使用后,应完成以下步骤将其清除,让系统知道从进程地址的空间当中撤消该映射内核对象的文件映像,在对映射内核对象文件进行关闭,最后再进行文件内核对象关闭的操作。

和虚拟内存相同,其内存映射文件能够实现对一个地址空间区域的保存,也能实现向该区域提交物理存储器中的内容。而两者间的区别就在于物理存储器是以一个已有磁盘中的文件为基础,不是系统页文件,如果该文件要进行映射,那么就可以对其进行访问,如同文件完成加载内存。而运用内存映射文件来进行磁盘数据文件的访问时,不用对文件进行I/O的操作,也不用对文件的内容进行缓存,直接可以对文件进行访问。由此可以勘查在点云数据处理中,有效的运用内存映射技术可以确保数据存取速度得到进一步提升,对于数据处理工作的科学开展有着一定的意义。

二、实现点云数据可视化操作

点云数据在系统中被读入之后,较为关键的工作就是进行可视化操作。主要就是运用计算机中的图形学技术来进行,当前较为有效且得到广泛认可的三维显示引擎主要有OpenGL以及Direct3D两种,下面针对这两种技术的实现过程进行有效分析。

(一)OpenCL点云数据的可视化操作

针对OpenGL来说,其属于行业领域当中运用中能够有效接纳2D/3D图形的应用程序编程接口,这一技术从诞生到当前催生出关于计算机平台和设备等优秀应用程序已经达到上千个,而且在实际应用中,也因其较强的图形功能可以有效的胜任点云处理中不同的可视化功能要求。

(二)Diret3D点云数据的可视化操作
    Diree3D也被成为D3D,属于微软公司在进行Microsoft Windows操作时其系统中开发出的3D绘图编程接口,属于DirectX中的环节,当前受到相应的显示卡所支持能够完成相应的操作。其和OpenCL都是电脑绘图软体以及电脑游戏中比较常用的绘图编程接口形式。在运用Direct3D开展点云可视化步骤时应注重以下几点工作。首先,应合理的制定绘图的参数。对于这一环节是对窗口类型进行设置,对后备的缓存交换参数进行设置,并决定是否要进行自动深度测试工作,明确绘图的窗口大小等操作。其次,有效的进行绘图设备终端的创建。在该系统当中包含较多数值的计算,也包含最小二乘拟合等相应的内容,想要确保所计算的数据精度更高,就要将CreateFlags.FpuPreserve项设置到其中。最后,进行场景的渲染操作。对于这一环节就是以循环绘制的形式                                    来进行三维场景点云数据的现实,主要就是对上一步创建终端中的参数进行反复操作,再设置参数,对显示的区域进行更新。三维点云建模(如图一所示)

IMG_256

图一,三维点云建模

三、点云数据的主要建模与实现过程

针对点云数据来说其有着离散化的特点。在对被测物体进行连续表面进行研究时,就要有离散点连成面的技术进行操作。无论是表示地形的表面或是建筑物的表面等,运用的较广的形式就是三角网。在建立三角网时,虽具有较高的复杂性,可是在建成之后其纹理映射等工作中只有很多优势的。因此在三维三角网建模操作中应注重以下几点工作。

(一)注重预处理操作

首先,要对点云数据进行自动分割的操作,使其呈现片状。其次,对这些片状点云进行拟合,并趋势平面。最后,把片状点云在趋势平面上进行投影,得到投影二维的坐标,有效的将三维问题转变为二维问题进行解决。

(二)实现三角网的连接

要先通过提取其中所有数据点中最小的外接矩形,并沿着这些矩形的对角线实现矩形划分成两个相应的超三角形。在进行三角形的定位,在由点集当中取出一个点,对于已经构建成的三角形应检索出包含了这一三角形的区域。并确定受到影响的三角形位置,再沿着待插入点位置上的三角形的三边方向开展搜索操作,由此找到外接圆处的所有三角形,而这一区域的外边界就是受影响的边界。针对这一区域内的三角形进行重构,并将受影响的三角形进行删除,在进行连接边界当中的受影响边,和待插入点形成新三角形。再循环以上几点操作,直至所有数据点都可以插入到该三角网当中。最后在对那些包含所有最小外接矩形点的三角形进行删除处理。
参考文献:

[1] 崔绍臣. 三维点云数据处理系统设计与开发[D]. 吉林大学, 2019.

[2] 蔡来良, 李儒. 点云数据处理算法与实现初步研究[C]// 2012:3.

[3] 肖贝. 激光三维扫描点云数据预处理算法的研究[D]. 武汉工程大学, 2012.