一种基于激光点云的公路横断面地面线并行生成算法的制作方法

文档序号:35047844发布日期:2023-08-06 02:26阅读:56来源:国知局
一种基于激光点云的公路横断面地面线并行生成算法的制作方法

本发明属于公路勘测设计领域,具体涉及一种基于激光点云的公路横断面地面线并行生成算法,该算法可以实现大范围区域公路横断面地面线的快速并行生成。


背景技术:

1、激光雷达测量技术(lidar)集成高精度三维激光扫描仪、定位定姿系统和高清数码相机,通过激光测距实现对现实环境的主动式测量。与其他传统测量手段相比,具有自动化程度高、受天气影响小、数据生产周期短、数据精度高等优点,可以大面积、快速、完整的获取高精度的三维空间坐标信息和纹理信息,是基础设施建设工程应用的重要数据源。

2、利用激光点云获取公路断面信息正成为主流方式。第一种方式,首先将激光点云生成规则格网数字高程模型dem,然后利用dem提取断面地面线信息,其具有数据量小、效率高、操作简单等优势,但是在激光点云转换为dem的过程中,存在精度损失,并且未能充分利用激光点云丰富完整的信息。第二种方式,是直接利用激光点云来生成公路横断面地面线,如专利技术“一种激光雷达扫描生成公路设计地表信息方法”(专利号:zl201110300875.x)。但是,激光点云的“海量性”给点云数据的后处理带来很大困难。当所需生成的断面数量较多时,当工程激光点云数量较大时,当前直接利用激光点云生成断面地面线的方法往往效率较低。

3、目前基于激光点云的公路横断面地面线生成算法主要基于cpu,面对实际工程应用中大数据量的公路断面任务和激光点云数据,存在断面地面线生成效率较低等问题。


技术实现思路

1、为了解决现有技术存在的技术问题,本发明的目的在于提供了一种基于激光点云的公路横断面地面线并行生成算法,基于cuda架构,采用科学合理的线程组织策略、存储访问策略和工作调度策略,综合利用grid-stride循环和流技术实现公路横断面地面线无数据量限制的快速生成。

2、为了达到上述目的,本发明采用如下技术措施:

3、一种基于激光点云的公路横断面地面线并行生成算法,包括以下步骤:

4、步骤1、数据预处理:主要涉及断面地面线生成前的准备工作,包括断面中桩文件读取与断面生成、断面关联激光点云分块计算等;

5、步骤2、公路断面激光点云切片并行生成:通过grid-stride循环实现激光点云无限制处理,采用宽度优先的多流技术实现激光点云数据的分段处理;

6、步骤3、基于三角网插值的公路断面地面线生成:对每个断面对应的激光点云,选取地面点构建delauney三角网,按等距离法确定待插值平面位置,定位其所在三角形,并利用线性插值算法计算其高程坐标,实现公路断面地面线生成。

7、可选地,所述步骤1中断面中桩文件读取与断面生成,具体为:

8、读取断面中桩坐标文件,按照指定的断面宽度,生成断面信息列表,用section_cpu表示,存储断面左右端点的坐标、断面直线方程参数、断面长度信息;

9、假设所读取的断面中桩文件中有n个断面,断面中桩坐标依次为(x1,y1)、(x2,y2)、……、(xn,yn);

10、对每个断面,利用其自身中桩坐标和后一个断面的中桩坐标计算路线前进方向,最后一个断面的路线前进方法直接取为倒数第二个断面的前进方向;

11、第i个断面断面中桩坐标为(xi,yi),第i+1个断面中桩坐标为(xi+1,yi+1),则路线前进方向用角度θ表示,计算公式为:

12、

13、断面方向与路线前进方向垂直,断面左端和右端对应的方向角分别为θ+90°和θ+270°,假设断面单侧的宽度为d,则第i个断面的左端点(xi_left,yi_left)、右端点(xi_right,yi_right)的坐标分别为:

14、

15、

16、该断面所对应的直线方程表示为:

17、ax+by+c=0       (4)

18、其中,a、b和c分别为直线方程的系数,b=-1,c=yi_left-a*xi_left。

19、可选地,所述步骤1中断面关联激光点云分块计算,具体为:

20、利用所有断面左右端点坐标构建凸包;

21、按固定大小进行分块处理,每个分块对应一个las格式点云文件,遍历每个分块的las格式点云文件,从其文件头中读取该分块las格式点云文件中点云平面坐标的最大最小值xmin,xmax,ymin,ymax;

22、利用坐标最大最小值构建矩形框,将断面端点构成的凸包与每个las文件的矩形框进行空间位置关系判断,当两者重叠时,表示该分块激光点云与断面文件存在关联,将其添加到关联激光点云文件列表中。

23、可选地,所述步骤2的实现具体包括:

24、步骤2.1、从关联激光点云文件列表中读取一个las激光点云文件,获取该las文件中激光点的个数、激光点坐标平移缩放参数x_offset,x_scale,y_offset,y_scale,在cpu上分配内存存储las文件中激光点的整型数据坐标,用ptcoord_cpu表示;

25、其中,x_offset,x_scale分别表示激光点平面x坐标的偏移参数和缩放参数,y_offset,y_scale分别表示激光点平面y坐标的的偏移参数和缩放参数;

26、步骤2.2、将激光点按设定大小进行分段,假设流的数量为m,m个流分别用符号stream_0,stream_1,…,stream_m表示,每个流处理一段激光点,则可以同时处理m段点云数据;

27、使用cudamalloc分配gpu内存,变量section_dev表示gpu存储的断面信息列表,coord_stream0,coord_stream1,…,coord_streamm表示每个流对应分段激光点的整型坐标,para_stream0,para_stream1,…,para_streamm表示每个流对应分段激光点坐标的平移缩放参数;

28、利用cudamemcopyasync函数,将m段点云数据、断面信息列表数据按照宽度优先方式将其拷贝到gpu设备内存中,分配gpu内存result_dev,大小为ptcount*sizeof(int),其中ptcount为激光点数量,保存输出结果,记录每个激光点归属的断面编号;

29、步骤2.3、执行断面激光点切片核函数,核函数中block数量设置为gpu设备流处理器sm数量的2倍,block中线程thread数量设置为512个,线程编号i计算式如下:

30、i=threadidx.x+blockidx.x*blockdim.x   (5)

31、其中,blockidx.x表示线程所在线程块的编号,threadidx.x表示线程在线程块内的编号,blockdim.x表示线程块在x方向的维度;

32、步骤2.4、每个线程对应一个激光点,利用传递到gpu内存中的para_stream0和coord_stream0,计算激光点的真实平面坐标x,y:

33、

34、其中,i为线程编号,coord_stream0按照x,y,z坐标顺序存储激光点的整型坐标,para_stream0按照x_offset,x_scale,y_offset,y_scale的顺序存储激光点坐标平移缩放参数,coord_stream0[i*3]表示第i个激光点对应的x整型坐标,coord_stream0[i*3+1]表示第i个激光点的y整型坐标;

35、利用section_dev获取断面信息,计算该激光点到所有断面的垂直距离,如果垂直距离小于指定的阈值并且在断面范围之内,将该断面编号赋予result_dev[i],线程编号i对应激光点,记录每个激光点对应的断面编号;

36、步骤2.5、执行完步骤2.4后,将线程编号i加上grid_stride步长,当更新后的线程编号小于激光点数量ptcount时,循环执行步骤2.4,实现激光点无限制处理;

37、步骤2.6、将result_dev中的数据从gpu复制到cpu内存,假设存储变量为result_cpu,则根据result_cpu中存储的每个激光点对应的断面编号,将该激光点归属到断面激光点列表中;

38、步骤2.7、对关联激光点云文件列表中的每一个las激光点云文件执行步骤2.1~步骤2.6,至此完成公路断面激光点云切片并行生成。

39、可选地,所述步骤3的实现具体包括:

40、步骤3.1、从断面激光点列表中取出该断面对应的激光点云,如果该激光点类别为地面类,则保留参与下一步的delauney三角网构建;

41、步骤3.2、对保留下来的地面点集,利用分治合并算法构建delauney三角网;

42、步骤3.3、根据断面直线方程,按等间距生成断面点平面位置,根据断面点平面位置定位其所在delauney三角网中的三角形,通过线性内插的方法内插其对应的高程;

43、步骤3.4、对断面上所有的断面点按步骤3.3方法计算其平面和高程坐标,完成该断面地面线的生成;

44、步骤3.5、对每条断面按照步骤3.1~步骤3.5执行,完成所有断面地面线的生成。

45、与现有的技术相比,本发明的显著优点和效果主要表现在:

46、(1)首次提出公路断面激光点云切片生成的gpu并行化算法,利用gpu成千上万个线程(thread)加速计算,获得显著的运算效率提升;

47、(2)综合利用grid-stride循环技术、宽度优先的多流技术,实现科学合理的线程组织和工作调度,实现公路断面地面线生成的并行、流式处理,算法不受激光点云和断面数量限制。

48、本发明充分利用gpu流式多处理器(streaming multiprocessors,sm)并行计算能力,每个gpu有多个sm,每个sm可以支持数百个线程并行操作,实现基于激光点云的公路横断面地面线高效生成。相比传统基于cpu的方法,运算效率提升10倍以上,有效解决了长大公路工程断面地面线快速生成的难题,展现了重大的工程应用价值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1