一种点云数据滤波方法及装置与流程

未命名 08-22 阅读:89 评论:0


1.本发明涉及测绘技术领域,具体涉及一种点云数据滤波方法及装置。


背景技术:

2.ping 3dss测深侧扫是世界上第一款三维侧扫声呐暨超宽覆盖的浅水多波束条带测深一体化系统。它在一次测量航行中可同时获得3种数据:与传统侧扫一样的2d声呐图像;前所未有的高分辨率3d侧扫图像和世界最宽覆盖的多波束条带测深数据。3dss在水深1.5米到40米范围内,条带测深数据有效覆盖宽度可达水深的10到14倍,其工作效率明显高于多波束水深测量系统,体现在船只一条航行测量线路所能覆盖的水面宽度上,前者可以达到后者三倍以上的有效覆盖宽度,即可一个工程时间节省高达六成以上。
3.海洋环境复杂,且ping 3dss测深侧扫采用大入射角高密度模式测量,ping 3dss测深侧扫采集的点云数据往往是海量的,由于点云密度非常高,可达到每平方米十几个甚至上百个点,尤其对于大区域地形测量,所得数据量非常大。且由于水下环境复杂,测量过程不可避免存在误差,产生异常点。这些异常点往往对结果造成难以预估的影响。测深点云数据中往往存在更大比例的噪声点,目前重复性的手工数据编辑任务较为艰巨。传统滤波方法需要通过计算点云的属性值标定异常点,进而删除这些噪点,海量点云数据直接影响数据处理效率,增加了滤波的难度。


技术实现要素:

4.为了克服上述缺陷,本发明提出了一种点云数据滤波方法及装置。
5.第一方面,提供一种点云数据滤波方法,所述点云数据滤波方法包括:
6.获取点云数据,并建立所述点云数据的包围盒;
7.对所述包围盒进行空间网格划分,并获取所述空间网格中各层网格的点云数据对应的k-d树结构;
8.基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波;
9.采用区域生长算法对所述空间网格中的点云数据进行精细化滤波。
10.优选的,所述包围盒各维度的边界为点云数据各维度中的最大值和最小值。
11.优选的,所述获取所述空间网格中各层网格的点云数据对应的k-d树结构,包括:
12.步骤1.对每个维度的数据进行方差的计算,取最大方差的维度作为分割轴,标记为r;
13.步骤2.对当前数据按分割轴维度进行检索,找到中位数数据,并将其放入到当前节点上;
14.步骤3.在当前分割轴维度中,将所有小于中位数的值划分到左支中,在当前分割轴维度中,将所有大于等于中位数的值划分到右支中;
15.步骤4.更新分割轴:r=(r+1)%k;
16.步骤5.分别以左支的数据和右支的数据为当前数据返回步骤2,直至所有数据划分完毕;
17.其中,k为维度。
18.优选的,所述基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波,包括:
19.创建所述空间网格中各层网格的点云数据对应的k-d树结构的数据集p,设置空的聚类列表c,以及一个点云队列q;
20.将p中的每一个点云数据pi添加到当前队列q,在预设半径范围内搜索q中的pi附近距离小于阈值的点云数据,并将搜索到的点云数据加入至点云集pik;
21.检测云集pik中的点云数据是否存在被标记为未处理的点云数据,若是,则将该点云数据标记为已处理后添加至q中,否则,将q中的点云数据添加到聚类列表c中,并将q清空;
22.当数据集p中的所有点云数据都被标记为已处理,将聚类列表c以外的点云数据删除。
23.优选的,所述采用区域生长算法对所述空间网格中的点云数据进行精细化滤波,包括:
24.获取所述空间网格中各点云数据与其k近邻点之间的曲率;
25.选择最小曲率对应的点云数据作为种子点进行区域生长,得到生长区域;
26.滤除所述生长区域以外的点云数据。
27.进一步的,所述选择最小曲率对应的点云数据作为种子点进行区域生长,包括:
28.步骤a.以种子点为中心点,当中心点与其k近邻点之间的平均距离和法向量满足生长准则时,将中心点与其k近邻点合并在一个区域,并将该k近邻点压入堆栈;
29.步骤b.从堆栈中无放回的取出任一点作为中心点并返回步骤a,直至堆栈为空。
30.进一步的,所述生长准则包括:中心点与其k近邻点之间的法向量夹角小于法向量阈值,中心点与其k近邻点之间的平均距离小于距离阈值。
31.第二方面,提供一种点云数据滤波装置,所述点云数据滤波装置包括:
32.获取模块,用于获取点云数据,并建立所述点云数据的包围盒;
33.分析模块,用于对所述包围盒进行空间网格划分,并获取所述空间网格中各层网格的点云数据对应的k-d树结构;
34.粗滤波模块,用于基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波;
35.精细化滤波模块,用于采用区域生长算法对所述空间网格中的点云数据进行精细化滤波。
36.优选的,所述包围盒各维度的边界为点云数据各维度中的最大值和最小值。
37.优选的,所述分析模块具体用于:
38.步骤1.对每个维度的数据进行方差的计算,取最大方差的维度作为分割轴,标记为r;
39.步骤2.对当前数据按分割轴维度进行检索,找到中位数数据,并将其放入到当前节点上;
40.步骤3.在当前分割轴维度中,将所有小于中位数的值划分到左支中,在当前分割轴维度中,将所有大于等于中位数的值划分到右支中;
41.步骤4.更新分割轴:r=(r+1)%k;
42.步骤5.分别以左支的数据和右支的数据为当前数据返回步骤2,直至所有数据划分完毕;
43.其中,k为维度。
44.优选的,所述粗滤波模块具体用于:
45.创建所述空间网格中各层网格的点云数据对应的k-d树结构的数据集p,设置空的聚类列表c,以及一个点云队列q;
46.将p中的每一个点云数据pi添加到当前队列q,在预设半径范围内搜索q中的pi附近距离小于阈值的点云数据,并将搜索到的点云数据加入至点云集pik;
47.检测云集pik中的点云数据是否存在被标记为未处理的点云数据,若是,则将该点云数据标记为已处理后添加至q中,否则,将q中的点云数据添加到聚类列表c中,并将q清空;
48.当数据集p中的所有点云数据都被标记为已处理,将聚类列表c以外的点云数据删除。
49.优选的,所述模块具体用于:
50.获取所述空间网格中各点云数据与其k近邻点之间的曲率;
51.选择最小曲率对应的点云数据作为种子点进行区域生长,得到生长区域;
52.滤除所述生长区域以外的点云数据。
53.进一步的,所述选择最小曲率对应的点云数据作为种子点进行区域生长,包括:
54.步骤a.以种子点为中心点,当中心点与其k近邻点之间的平均距离和法向量满足生长准则时,将中心点与其k近邻点合并在一个区域,并将该k近邻点压入堆栈;
55.步骤b.从堆栈中无放回的取出任一点作为中心点并返回步骤a,直至堆栈为空。
56.进一步的,所述生长准则包括:中心点与其k近邻点之间的法向量夹角小于法向量阈值,中心点与其k近邻点之间的平均距离小于距离阈值。
57.第三方面,提供一种计算机设备,包括:一个或多个处理器;
58.所述处理器,用于存储一个或多个程序;
59.当所述一个或多个程序被所述一个或多个处理器执行时,实现所述的点云数据滤波方法。
60.第四方面,提供一种计算机可读存储介质,其上存有计算机程序,所述计算机程序被执行时,实现所述的点云数据滤波方法。
61.本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:
62.本发明提供了一种点云数据滤波方法及装置,包括:获取点云数据,并建立所述点云数据的包围盒;对所述包围盒进行空间网格划分,并获取所述空间网格中各层网格的点云数据对应的k-d树结构;基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波;采用区域生长算法对所述空间网格中的点云数据进行精细化滤波。本发明提供的技术方案,能够在满足工程实际应用精度的前提下,对海量点云进行合理滤波,既可以提高工程应用精度,又可以去除冗余数
据,有利于点云数据的处理及提升后续产品质量。
附图说明
63.图1是本发明实施例的点云数据滤波方法的主要步骤流程示意图;
64.图2是本发明实施例的点云数据粗滤波结果示意图;
65.图3是本发明实施例的点云数据精细化滤波结果示意图;
66.图4是本发明实施例的点云数据滤波装置的主要结构框图。
具体实施方式
67.下面结合附图对本发明的具体实施方式作进一步的详细说明。
68.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
69.如背景技术中所公开的,ping 3dss测深侧扫是世界上第一款三维侧扫声呐暨超宽覆盖的浅水多波束条带测深一体化系统。它在一次测量航行中可同时获得3种数据:与传统侧扫一样的2d声呐图像;前所未有的高分辨率3d侧扫图像和世界最宽覆盖的多波束条带测深数据。3dss在水深1.5米到40米范围内,条带测深数据有效覆盖宽度可达水深的10到14倍,其工作效率明显高于多波束水深测量系统,体现在船只一条航行测量线路所能覆盖的水面宽度上,前者可以达到后者三倍以上的有效覆盖宽度,即可一个工程时间节省高达六成以上。
70.海洋环境复杂,且ping 3dss测深侧扫采用大入射角高密度模式测量,ping 3dss测深侧扫采集的点云数据往往是海量的,由于点云密度非常高,可达到每平方米十几个甚至上百个点,尤其对于大区域地形测量,所得数据量非常大。且由于水下环境复杂,测量过程不可避免存在误差,产生异常点。这些异常点往往对结果造成难以预估的影响。测深点云数据中往往存在更大比例的噪声点,目前重复性的手工数据编辑任务较为艰巨。传统滤波方法需要通过计算点云的属性值标定异常点,进而删除这些噪点,海量点云数据直接影响数据处理效率,增加了滤波的难度。
71.为了改善上述问题,本发明提供了一种点云数据滤波方法及装置,包括:获取点云数据,并建立所述点云数据的包围盒;对所述包围盒进行空间网格划分,并获取所述空间网格中各层网格的点云数据对应的k-d树结构;基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波;采用区域生长算法对所述空间网格中的点云数据进行精细化滤波。本发明提供的技术方案,能够在满足工程实际应用精度的前提下,对海量点云进行合理滤波,既可以提高工程应用精度,又可以去除冗余数据,有利于点云数据的处理及提升后续产品质量。
72.下面对上述方案进行详细阐述。
73.实施例1
74.参阅附图1,图1是本发明的一个实施例的点云数据滤波方法的主要步骤流程示意图。
75.如图1所示,本发明实施例中的点云数据滤波方法主要包括以下步骤:
76.步骤s101:获取点云数据,并建立所述点云数据的包围盒;
77.本实施例中,点云数据可以为ping 3dss测深侧扫点云数据;
78.步骤s102:对所述包围盒进行空间网格划分,并获取所述空间网格中各层网格的点云数据对应的k-d树结构;
79.步骤s103:基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波;
80.步骤s104:采用区域生长算法对所述空间网格中的点云数据进行精细化滤波。
81.其中,所述包围盒各维度的边界为点云数据各维度中的最大值和最小值。
82.本实施例中,所述获取所述空间网格中各层网格的点云数据对应的k-d树结构,包括:
83.步骤1.对每个维度的数据进行方差的计算,取最大方差的维度作为分割轴,标记为r;
84.步骤2.对当前数据按分割轴维度进行检索,找到中位数数据,并将其放入到当前节点上;
85.步骤3.在当前分割轴维度中,将所有小于中位数的值划分到左支中,在当前分割轴维度中,将所有大于等于中位数的值划分到右支中;
86.步骤4.更新分割轴:r=(r+1)%k;
87.步骤5.分别以左支的数据和右支的数据为当前数据返回步骤2,直至所有数据划分完毕;
88.其中,k为维度。
89.本实施例中,所述基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波,包括:
90.创建所述空间网格中各层网格的点云数据对应的k-d树结构的数据集p,设置空的聚类列表c,以及一个点云队列q;
91.将p中的每一个点云数据pi添加到当前队列q,在预设半径范围内搜索q中的pi附近距离小于阈值的点云数据,并将搜索到的点云数据加入至点云集pik;
92.检测云集pik中的点云数据是否存在被标记为未处理的点云数据,若是,则将该点云数据标记为已处理后添加至q中,否则,将q中的点云数据添加到聚类列表c中,并将q清空;
93.当数据集p中的所有点云数据都被标记为已处理,将聚类列表c以外的点云数据删除。
94.在一个实施方式中,点云数据粗滤波结果示意图,如图2所示;
95.本实施例中,所述采用区域生长算法对所述空间网格中的点云数据进行精细化滤波,包括:
96.获取所述空间网格中各点云数据与其k近邻点之间的曲率;
97.选择最小曲率对应的点云数据作为种子点进行区域生长,得到生长区域;
98.滤除所述生长区域以外的点云数据。
99.在一个实施方式中,点云数据精细化滤波结果示意图,如图3所示;
100.具体的,所述选择最小曲率对应的点云数据作为种子点进行区域生长,包括:
101.步骤a.以种子点为中心点,当中心点与其k近邻点之间的平均距离和法向量满足生长准则时,将中心点与其k近邻点合并在一个区域,并将该k近邻点压入堆栈;
102.步骤b.从堆栈中无放回的取出任一点作为中心点并返回步骤a,直至堆栈为空。
103.其中,所述生长准则包括:中心点与其k近邻点之间的法向量夹角小于法向量阈值,中心点与其k近邻点之间的平均距离小于距离阈值。
104.在一个具体的实施方式中,具体实施时,构建的k-d树数据结构可以保证高效率搜索最邻近点,为点云滤波参数计算提供有力的质量保障;通过合理设计滤波准则参数及相关阈值,综合全面地实现了复杂地形的精确滤波。该方法对于不同复杂地形的测深点云数据均具有较好的适用性及鲁棒性。
105.综上所述,本发明提供了点云数据滤波方法,方法包括:基于获取ping 3dss测深侧扫测深数据,计算出测深点云坐标,快速建立k-d树数据结构,基于包围盒划分空间格网,对于空间格网自上而下去除空间中漂浮的单个或密集噪点区域,完成粗滤波;基于计算所得的海底部分所有点的法线、粗糙度等属性值,结合改进的区域生长算法进行精细滤波,从而高效完成异常数据的滤除工作。本发明有效解决了海量点云在数据显示、处理、存储和传输过程中占用太多内存资源,使得处理器速度缓慢且运算效率不高的问题,实现了ping 3dss测深侧扫点云数据的快速高效、高精度、强鲁棒性滤波效果。
106.实施例2
107.基于同一种发明构思,本发明还提供了一种点云数据滤波装置,如图4所示,所述点云数据滤波装置包括:
108.获取模块,用于获取点云数据,并建立所述点云数据的包围盒;
109.分析模块,用于对所述包围盒进行空间网格划分,并获取所述空间网格中各层网格的点云数据对应的k-d树结构;
110.粗滤波模块,用于基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波;
111.精细化滤波模块,用于采用区域生长算法对所述空间网格中的点云数据进行精细化滤波。
112.优选的,所述包围盒各维度的边界为点云数据各维度中的最大值和最小值。
113.优选的,所述分析模块具体用于:
114.步骤1.对每个维度的数据进行方差的计算,取最大方差的维度作为分割轴,标记为r;
115.步骤2.对当前数据按分割轴维度进行检索,找到中位数数据,并将其放入到当前节点上;
116.步骤3.在当前分割轴维度中,将所有小于中位数的值划分到左支中,在当前分割轴维度中,将所有大于等于中位数的值划分到右支中;
117.步骤4.更新分割轴:r=(r+1)%k;
118.步骤5.分别以左支的数据和右支的数据为当前数据返回步骤2,直至所有数据划分完毕;
119.其中,k为维度。
120.优选的,所述粗滤波模块具体用于:
121.创建所述空间网格中各层网格的点云数据对应的k-d树结构的数据集p,设置空的聚类列表c,以及一个点云队列q;
122.将p中的每一个点云数据pi添加到当前队列q,在预设半径范围内搜索q中的pi附近距离小于阈值的点云数据,并将搜索到的点云数据加入至点云集pik;
123.检测云集pik中的点云数据是否存在被标记为未处理的点云数据,若是,则将该点云数据标记为已处理后添加至q中,否则,将q中的点云数据添加到聚类列表c中,并将q清空;
124.当数据集p中的所有点云数据都被标记为已处理,将聚类列表c以外的点云数据删除。
125.优选的,所述模块具体用于:
126.获取所述空间网格中各点云数据与其k近邻点之间的曲率;
127.选择最小曲率对应的点云数据作为种子点进行区域生长,得到生长区域;
128.滤除所述生长区域以外的点云数据。
129.进一步的,所述选择最小曲率对应的点云数据作为种子点进行区域生长,包括:
130.步骤a.以种子点为中心点,当中心点与其k近邻点之间的平均距离和法向量满足生长准则时,将中心点与其k近邻点合并在一个区域,并将该k近邻点压入堆栈;
131.步骤b.从堆栈中无放回的取出任一点作为中心点并返回步骤a,直至堆栈为空。
132.进一步的,所述生长准则包括:中心点与其k近邻点之间的法向量夹角小于法向量阈值,中心点与其k近邻点之间的平均距离小于距离阈值。
133.实施例3
134.基于同一种发明构思,本发明还提供了一种计算机设备,该计算机设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor、dsp)、专用集成电路(application specificintegrated circuit,asic)、现成可编程门阵列(field-programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行计算机存储介质内一条或一条以上指令从而实现相应方法流程或相应功能,以实现上述实施例中一种点云数据滤波方法的步骤。
135.实施例4
136.基于同一种发明构思,本发明还提供了一种存储介质,具体为计算机可读存储介质(memory),所述计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可由处理器加载并执行计算
机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中一种点云数据滤波方法的步骤。
137.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
138.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
139.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
140.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
141.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

技术特征:
1.一种点云数据滤波方法,其特征在于,所述方法包括:获取点云数据,并建立所述点云数据的包围盒;对所述包围盒进行空间网格划分,并获取所述空间网格中各层网格的点云数据对应的k-d树结构;基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波;采用区域生长算法对所述空间网格中的点云数据进行精细化滤波。2.如权利要求1所述的方法,其特征在于,所述包围盒各维度的边界为点云数据各维度中的最大值和最小值。3.如权利要求1所述的方法,其特征在于,所述获取所述空间网格中各层网格的点云数据对应的k-d树结构,包括:步骤1.对每个维度的数据进行方差的计算,取最大方差的维度作为分割轴,标记为r;步骤2.对当前数据按分割轴维度进行检索,找到中位数数据,并将其放入到当前节点上;步骤3.在当前分割轴维度中,将所有小于中位数的值划分到左支中,在当前分割轴维度中,将所有大于等于中位数的值划分到右支中;步骤4.更新分割轴:r=(r+1)%k;步骤5.分别以左支的数据和右支的数据为当前数据返回步骤2,直至所有数据划分完毕;其中,k为维度。4.如权利要求1所述的方法,其特征在于,所述基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波,包括:创建所述空间网格中各层网格的点云数据对应的k-d树结构的数据集p,设置空的聚类列表c,以及一个点云队列q;将p中的每一个点云数据pi添加到当前队列q,在预设半径范围内搜索q中的pi附近距离小于阈值的点云数据,并将搜索到的点云数据加入至点云集pik;检测云集pik中的点云数据是否存在被标记为未处理的点云数据,若是,则将该点云数据标记为已处理后添加至q中,否则,将q中的点云数据添加到聚类列表c中,并将q清空;当数据集p中的所有点云数据都被标记为已处理,将聚类列表c以外的点云数据删除。5.如权利要求1所述的方法,其特征在于,所述采用区域生长算法对所述空间网格中的点云数据进行精细化滤波,包括:获取所述空间网格中各点云数据与其k近邻点之间的曲率;选择最小曲率对应的点云数据作为种子点进行区域生长,得到生长区域;滤除所述生长区域以外的点云数据。6.如权利要求5所述的方法,其特征在于,所述选择最小曲率对应的点云数据作为种子点进行区域生长,包括:步骤a.以种子点为中心点,当中心点与其k近邻点之间的平均距离和法向量满足生长准则时,将中心点与其k近邻点合并在一个区域,并将该k近邻点压入堆栈;
步骤b.从堆栈中无放回的取出任一点作为中心点并返回步骤a,直至堆栈为空。7.如权利要求6所述的方法,其特征在于,所述生长准则包括:中心点与其k近邻点之间的法向量夹角小于法向量阈值,中心点与其k近邻点之间的平均距离小于距离阈值。8.一种点云数据滤波装置,其特征在于,所述装置包括:获取模块,用于获取点云数据,并建立所述点云数据的包围盒;分析模块,用于对所述包围盒进行空间网格划分,并获取所述空间网格中各层网格的点云数据对应的k-d树结构;粗滤波模块,用于基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波;精细化滤波模块,用于采用区域生长算法对所述空间网格中的点云数据进行精细化滤波。9.如权利要求8所述的装置,其特征在于,所述包围盒各维度的边界为点云数据各维度中的最大值和最小值。10.如权利要求8所述的装置,其特征在于,所述分析模块具体用于:步骤1.对每个维度的数据进行方差的计算,取最大方差的维度作为分割轴,标记为r;步骤2.对当前数据按分割轴维度进行检索,找到中位数数据,并将其放入到当前节点上;步骤3.在当前分割轴维度中,将所有小于中位数的值划分到左支中,在当前分割轴维度中,将所有大于等于中位数的值划分到右支中;步骤4.更新分割轴:r=(r+1)%k;步骤5.分别以左支的数据和右支的数据为当前数据返回步骤2,直至所有数据划分完毕;其中,k为维度。11.如权利要求8所述的装置,其特征在于,所述粗滤波模块具体用于:创建所述空间网格中各层网格的点云数据对应的k-d树结构的数据集p,设置空的聚类列表c,以及一个点云队列q;将p中的每一个点云数据pi添加到当前队列q,在预设半径范围内搜索q中的pi附近距离小于阈值的点云数据,并将搜索到的点云数据加入至点云集pik;检测云集pik中的点云数据是否存在被标记为未处理的点云数据,若是,则将该点云数据标记为已处理后添加至q中,否则,将q中的点云数据添加到聚类列表c中,并将q清空;当数据集p中的所有点云数据都被标记为已处理,将聚类列表c以外的点云数据删除。12.如权利要求8所述的装置,其特征在于,所述模块具体用于:获取所述空间网格中各点云数据与其k近邻点之间的曲率;选择最小曲率对应的点云数据作为种子点进行区域生长,得到生长区域;滤除所述生长区域以外的点云数据。13.如权利要求12所述的装置,其特征在于,所述选择最小曲率对应的点云数据作为种子点进行区域生长,包括:步骤a.以种子点为中心点,当中心点与其k近邻点之间的平均距离和法向量满足生长准则时,将中心点与其k近邻点合并在一个区域,并将该k近邻点压入堆栈;
步骤b.从堆栈中无放回的取出任一点作为中心点并返回步骤a,直至堆栈为空。14.如权利要求13所述的装置,其特征在于,所述生长准则包括:中心点与其k近邻点之间的法向量夹角小于法向量阈值,中心点与其k近邻点之间的平均距离小于距离阈值。15.一种计算机设备,其特征在于,包括:一个或多个处理器;所述处理器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,实现如权利要求1至7中任意一项所述的点云数据滤波方法。16.一种计算机可读存储介质,其特征在于,其上存有计算机程序,所述计算机程序被执行时,实现如权利要求1至7中任意一项所述的点云数据滤波方法。

技术总结
本发明涉及测绘技术领域,具体提供了一种点云数据滤波方法及装置,包括:获取点云数据,并建立所述点云数据的包围盒;对所述包围盒进行空间网格划分,并获取所述空间网格中各层网格的点云数据对应的k-d树结构;基于所述空间网格中各层网格的点云数据对应的k-d树结构自上而下逐层对所述空间网格中各层网格的点云数据进行粗滤波;采用区域生长算法对所述空间网格中的点云数据进行精细化滤波。本发明提供的技术方案,实现了点云数据的异常点滤波,有效解决了测深异常数据滤除不彻底、滤除效率低的问题。的问题。的问题。


技术研发人员:王卫东 高兴国 张勇 蔡勇 郎需军 江峻毅 翟彬 常增亮 李斌 曲萌 马山青
受保护的技术使用者:山东电力工程咨询院有限公司 国网浙江省电力有限公司舟山供电公司 国家电网有限公司
技术研发日:2023.04.24
技术公布日:2023/8/21
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐