一种点云数据处理方法、装置、终端设备及存储介质与流程

文档序号:30137117发布日期:2022-05-21 01:59阅读:185来源:国知局
一种点云数据处理方法、装置、终端设备及存储介质与流程

1.本技术实施例涉及点云数据处理技术领域,尤其涉及一种点云数据处理方法、装置、终端设备及存储介质。


背景技术:

2.目前,植保无人机一般通过使用指定区域内的模型(如点云或者是数字表面模型)获得指定区域内的全局感知能力,从而实现跨地块的自主作业功能。
3.与点云相比,数字表面模型具有的数据格式更简单,因此使用难度较小。数字表面模型一般通过直接对点云数据进行提取得到,数字表面模型被划分为多个栅格,每个栅格描述了对应位置的单一高程值,因此在根据点云数据生成的数字表面模型中无法区分出悬空对象。此时,若在无法在数字表面模型中确定出田间电线或者电塔展臂等悬空对象,将严重影响植保无人机的航线规划,导致植保无人机无法实现跨地块的自主作业功能。


技术实现要素:

4.本发明实施例提供了一种点云数据处理方法、装置、终端设备及存储介质,解决了现有技术中基于点云数据构建的数字表面模型存在着精确度不高的技术问题。
5.第一方面,本发明实施例提供了一种点云数据处理方法,包括:
6.获取目标图像,根据目标图像生成点云数据,目标图像为对目标区域进行拍摄得到的图像;
7.对点云数据进行栅格化得到多个预设尺寸的栅格,在每个栅格中确定出基准点;
8.根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据;
9.基于目标点云数据生成目标区域对应的数字表面模型。
10.优选的,在每个栅格中确定出基准点,包括:
11.将每个栅格中连续的点云数据进行聚类得到多个点云层;
12.在多个点云层中确定出与地表相对应的地表点云层;
13.根据地表点云层中每个点的高程,在地表点云层中选取出基准点。
14.优选的,将每个栅格中连续的点云数据进行聚类得到多个点云层,包括:
15.在每个栅格中,计算连续的点云数据中每个点的第一高程,根据第一高程,将每个栅格中连续的点云数据聚类为不同的点云层。
16.优选的,在多个点云层中确定出与地表相对应的地表点云层,包括:
17.在每个点云层中,选取出第一高程小于预设值的点所在的点云层作为地表点云层。
18.优选的,根据地表点云层中每个点的高程,在地表点云层中选取出基准点,包括:
19.在地表点云层中选取出第一高程的值最大的点作为基准点。
20.优选的,根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的
点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据,包括:
21.在每个栅格中,根据每个点的第一高程、预设的高程阈值以及基准点,在点云层中筛选出目标点云层;
22.判断目标点云层是否存在类别为悬浮物的悬浮点云数据;
23.若是,标记出悬浮点云数据,将悬浮点云数据从目标点云层中剔除,以得到目标点云数据。
24.优选的,在每个栅格中,根据每个点的第一高程、预设的高程阈值以及基准点,在点云层中筛选出目标点云层,包括:
25.在每个栅格中,从每个点云层的每个点中,选取出第一高程最低的目标点,计算目标点的第一高程与基准点的第一高程之间的第一差值,判断第一差值是否大于或等于高程阈值;
26.若是,将目标点所在的点云层标记为目标点云层。
27.优选的,判断目标点云层是否存在类别为悬浮物的悬浮点云数据,包括:
28.遍历目标点云层中的每个点,对于当前所遍历的点,根据当前所遍历的点以及预设距离确定目标范围;
29.根据当前所遍历的点的第一高程以及目标范围内其他点的第一高程,判断当前所遍历的点是否为类别为悬浮物的悬浮点。
30.优选的,根据当前所遍历的点以及预设距离确定目标范围,包括:
31.以当前所遍历的点与基准点所在水平面之间的垂线作为轴线,以预设距离作为半径确定圆柱范围,将圆柱范围作为目标范围。
32.优选的,根据当前所遍历的点的第一高程以及其他点的第一高程,判断当前所遍历的点是否为类别为悬浮物的悬浮点,包括:
33.计算当前所遍历的点的第一高程与其他点的第一高程的第二差值;
34.统计第二差值大于预设阈值的其他点的数量;
35.根据数量以及目标范围内所有点的总数量,判断当前所遍历的点是否为类别为悬浮物的悬浮点。
36.优选的,根据数量以及目标范围内所有点的总数量,判断当前所遍历的点是否为类别为悬浮物的悬浮点,包括:
37.判断数量占总数量的比例是否大于预设比例,若是,则将当前所遍历的点确定为类别为悬浮物的悬浮点。
38.第二方面,本发明实施例提供了一种点云数据处理装置,包括点云生成模块、栅格化模块、剔除模块以及模型生成模块;
39.点云生成模块用于获取目标图像,根据目标图像生成点云数据,目标图像为对目标区域进行拍摄得到的图像;
40.栅格化模块用于对点云数据进行栅格化得到多个预设尺寸的栅格,在每个栅格中确定出基准点;
41.剔除模块用于根据基准点云以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据;
42.模型生成模块用于基于目标点云数据生成目标区域对应的数字表面模型。
43.第三方面,本发明实施例提供了一种终端设备,终端设备包括处理器以及存储器;
44.存储器用于存储计算机程序,并将计算机程序传输给处理器;
45.处理器用于根据计算机程序中的指令执行如第一方面的一种点云数据处理方法。
46.第四方面,本发明实施例提供了一种存储计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如第一方面的一种点云数据处理方法。
47.上述,本发明实施例提供了一种点云数据处理方法、装置、终端设备及存储介质,方法包括:获取目标图像,根据目标图像生成点云数据,目标图像为对目标区域进行拍摄得到的图像;对点云数据进行栅格化得到多个预设尺寸的栅格,在每个栅格中确定出基准点;根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据;基于目标点云数据生成目标区域对应的数字表面模型。
48.本发明实施例通过对点云数据栅格化,在每个栅格中确定出基准点,最后根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据并将其剔除,以得到目标点云数据,从而使得目标点云数据中不再具有类别为悬浮物的点云数据,后续在使用目标点云数据生成数字表面模型时,能够避免数字表面模型将悬浮物表达为与地面接触的实体的情况,提高了数字表面模型的精确度,解决了现有技术中基于点云数据构建的数字表面模型存在着精确度不高的技术问题。同时也使得植保无人机能够通过数字表面模型获得指定区域内的全局感知能力,悬浮物不会对植保无人机的航线造成干扰,实现植保无人机的跨地块的自主作业功能。
附图说明
49.图1为本发明实施例提供的一种点云数据处理方法的流程示意图。
50.图2为本发明实施例提供的对点云进行栅格化的示意图。
51.图3为本发明实施例提供的另一种点云数据处理方法的流程示意图。
52.图4为本发明实施例提供的将连续的点云数据聚类为点云层的示意图。
53.图5为本发明实施例提供的另一种点云数据处理方法的流程示意图。
54.图6为本发明实施例提供的计算第一差值的示意图。
55.图7为本发明实施例提供的确定圆柱范围的示意图。
56.图8为本发明实施例提供的另一种点云数据处理方法的流程示意图。
57.图9为本发明实施例提供的一种点云数据处理装置的结构示意图。
58.图10为本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
59.以下描述和附图充分地示出本技术的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本技术的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围
为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
60.术语解释:
61.数字表面模型(dsm,digital surface model):是指包含了地表建筑物、桥梁和树木等高度的地面高程模型。和数字高程模型(dem,digital elevation model)相比,数字高程模型只包含了地形的高程信息,并未包含其它地表信息,而数字表面模型是在数字高程模型的基础上,进一步涵盖了除地面以外的其它地表信息的高程。
62.点云(point cloud):点云是三维空间中的点的集合,每个点都被赋予一个笛卡尔坐标。点还可以被赋予其他属性,其他属性一般用于表明点是如何获得的。例如,收集数据的测量设备捕捉到点的时间,或者是该点的强度或位置误差。
63.实施例一
64.如图1所示,图1为本发明实施例提供的一种点云数据处理方法的流程图。本发明实施例提供的点云数据处理方法可以由点云数据处理设备执行,该点云数据处理设备可以通过软件和/或硬件的方式实现,该点云数据处理设备可以是两个或多个物理实体构成,也可以由一个物理实体构成。例如点云数据处理设备可以是电脑、上位机、平板等设备。方法包括以下步骤:
65.步骤101、获取目标图像,根据目标图像生成点云数据,目标图像为对目标区域进行拍摄得到的图像。
66.在本实施例中,首先获取对目标区域进行拍摄得到的目标图像。可理解,在本实施例中获取目标图像的方式可根据实际需要进行设置。示例性的,在一个实施例中,可利用航空摄影来获取目标图像,又或者是,利用rgb摄像机拍摄目标图像。
67.在获取到目标图像后,即可根据目标图像生成点云数据。例如,对于航空摄像所获取到的目标图像,可通过对目标图像进行测量结算生成点云数据,对于激光雷达以及rgb摄像机拍摄到的目标图像,可通过融合激光雷达数据以及rgb图像的方式,生成点云数据。需要进一步说明的是,点云数据中包括有每个点的笛卡尔坐标。
68.步骤102、对点云数据进行栅格化得到多个预设尺寸的栅格,在每个栅格中确定出基准点。
69.之后,进一步对点云数据进行栅格化,从而得到多个预设尺寸的栅格,例如图2所示,以便后续在对点云数据进行处理时可以将栅格作为基础单位。可理解,栅格的尺寸可预先根据进行设置,例如将点云数据划分为7x7或者5x5的栅格等。在得到栅格后,在每一个栅格中确定出基准点,基准点为在点云数据中与大地水平面上的最高点相对应的点,通过确定基准点以便于后续根据基准点来确定出与类别为悬浮物的点云数据。例如,在一个实施例中,可在每个栅格的点云数据中根据每个点的高程确定出基准点。
70.步骤103、根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据。
71.在每个栅格中确定出基准点后,即可根据预先设置的高程阈值以及每个栅格中的基准点,在每个栅格中标记出类别为悬浮物的点云数据,并将类别为悬浮物的点云数据剔除。具体的,在一个实施例中,可在栅格中计算分别计算出基准点和其他点以大地水准面作为基准面时的第一高程,计算其他点的第一高程与基准点的第一高程的差值,根据差值以及高程阈值,在每个栅格中筛选出类别为悬浮物的点云数据,并将类别为悬浮物的点云数据剔除。
72.步骤104、基于目标点云数据生成目标区域对应的数字表面模型。
73.最后,再根据筛选出来的目标点云数据,生成与目标区域相对应的数字表面模型,可理解,由于目标点云数据中不存在类别为悬浮物的点云,因此在使用目标点云数据来生成生成数字表面模型时,能够避免在数字表面模型中出现将悬浮物表达为与地面接触的实体的情况,从而提高了数字表面模型的精确度。
74.上述,本发明实施例通过对点云数据栅格化,在每个栅格中确定出基准点,最后根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据并将其剔除,得到目标点云数据,从而使得后续在使用目标点云数据生成数字表面模型时,能够避免数字表面模型将悬浮物表达为与地面接触的实体的情况,提高了数字表面模型的精确度,同时也使得植保无人机能够通过数字表面模型获得指定区域内的全局感知能力,悬浮物不会对植保无人机的航线造成干扰,实现植保无人机的跨地块的自主作业功能。
75.如图3所示,图3为本发明实施例提供的另一种点云数据处理方法的流程图。包括以下步骤:
76.步骤201、获取目标图像,根据目标图像生成点云数据,目标图像为对目标区域进行拍摄得到的图像。
77.步骤202、对点云数据进行栅格化得到多个预设尺寸的栅格。
78.步骤203、将每个栅格中连续的点云数据进行聚类得到多个点云层。
79.在一个实施例中,对点云数据进行栅格化得到多个预设尺寸的栅格后,在每个栅格中对连续的点云数据进行聚类,以得到多个点云层。对连续点云数据进行聚类的方式采用现有的聚类方法,包括但不限于euclidean cluster extraction(基于欧式距离的聚类)、region growing segmentation(区域蔓延分割)以及color-based region growing segmentation(基于颜色的区域蔓延分割)等,具体方法可根据实际需要进行选择,聚类方法的具体原理在现有文献中已多有记载,在本实施例中不再进行赘述。
80.在上述实施例的基础上,步骤203中将每个栅格中连续的点云数据进行聚类得到多个点云层具体由步骤2031执行,包括:
81.步骤2031、在每个栅格中,计算连续的点云数据中每个点的第一高程,根据第一高程,将每个栅格中连续的点云数据聚类为不同的点云层。
82.首先,在每个栅格中首先确定出大地水准面,之后,对于连续的点云数据中的每个点,计算出每个点以大地水准面作为基准面时的第一高程,之后即可根据每个点的第一高程,将每个栅格中连续的点云数据聚类为不同的点云层。通过根据第一高程对点云数据进行聚类的方式,可以将位于同一个高程范围内的点云数据聚类为一个点云层,不同点云层
体现了点云数据的高程分布情况,如图4所示,图4为点云数据的截面图。
83.步骤204、在多个点云层中确定出与地表相对应的地表点云层。
84.在每个栅格中聚类出多个点云层后,在每个栅格的多个点云层中确定出与地表相对应的地表点云层。可理解,地表点云层包含了地表的点,地表点云层一般是在垂线方向上位于最低一层的点云层,即地表点云层为每个栅格对应的多个点云层中第一高程最小的点云层。
85.在一个实施例中,步骤204中在多个点云层中确定出与地表相对应的地表点云层具体由步骤2041执行,包括:
86.步骤2041、在每个点云层中,选取出第一高程小于预设值的点所在的点云层作为地表点云层。
87.在每个点云层中,选取出第一高程小于预设值的点,将该点所在的点云层作为地表点云层。可理解,由于地表上会有一定的起伏,因此地表的点的第一高程一般位于0和稍微大于0的数之间,例如0.5。因此,在本实施例中可以将预设值设置为接近于0的数值,例如0.05。此时,若某个点的第一高程小于0.05,则可以确定出该点为地表上的点,因此将该点所在的点云层作为地表点云层。可理解,在本实施例中,预设值的具体数值可根据实际需要进行设置,在本实施例中不对预设值的具体数值进行限定。
88.步骤205、根据地表点云层中每个点的高程,在地表点云层中选取出基准点。
89.在确认出地表点云层后,进一步根据地表点云层中每个点的高程,在地表点云层的点中选取出基准点,以便后续根据基准点来筛选出类型为悬浮物的点云数据。
90.在一个实施例中,步骤205中根据地表点云层中每个点的高程,在地表点云层中选取出基准点具体由步骤2051执行,包括:
91.步骤2051、在地表点云层中选取出第一高程的值最大的点作为基准点。
92.由于地表点云层中点的第一高程在一定的高程范围内,因此,将在地表点云层中选取出第一高程的值最大的点作为基准点,可理解,基准点代表了地表点云层的最高点。
93.步骤206、根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据。
94.在每个栅格中选取出了基准点后,即可根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,并将类别为悬浮物的点云数据进行剔除。在一个实施例中,可在栅格中计算其他点云数据的第一高程与基准点的第一高程的差值,根据差值以及高程阈值,在每个栅格中筛选出目标点云层,并在目标点云层中确认是否存在类别为悬浮物的点云数据,若是,则将类别为悬浮物的点云数据剔除,得到目标点云数据,使得在后续根据目标点云数据来生成数字表面模型时,由于目标点云数据中已经剔除了类别为悬浮物的点云数据,能够避免在数字表面模型中出现将悬浮物表达为与地面接触的实体的情况,提高了数字表面模型的精确度。
95.步骤207、基于目标点云数据生成目标区域对应的数字表面模型。
96.如图5所示,图5为本发明实施例提供的另一种点云数据处理方法的流程图。包括以下步骤:
97.步骤301、获取目标图像,根据目标图像生成点云数据,目标图像为对目标区域进行拍摄得到的图像。
98.步骤302、对点云数据进行栅格化得到多个预设尺寸的栅格。
99.步骤303、在每个栅格中,计算连续的点云数据中每个点的第一高程,根据第一高程,将每个栅格中连续的点云数据聚类为不同的点云层。
100.步骤304、在多个点云层中确定出与地表相对应的地表点云层。
101.步骤305、根据地表点云层中每个点的高程,在地表点云层中选取出基准点。
102.步骤306、在每个栅格中,根据每个点的第一高程、预设的高程阈值以及基准点,在点云层中筛选出目标点云层。
103.在每个栅格中选取出基准点后,即可计算每个点的第一高程与基准点的第一高程的差值,判断差值是否大于等于预设的高程阈值,若是,则可以确定出该点所在的点云层在垂线方向上距离基准点比较远,该点云层可能是悬浮物所在的点云层,因此将该点云层确定为目标点云层。如果一个点云层中所有点的第一高程与基准点的第一高程的差值都小于高程阈值,则将该点云层保留,该点云层可以理解为需要保留的点云层,例如树冠等。可理解,在本实施例中,高程阈值的具体数值可根据实际需要进行设置,在本实施例中不对高程阈值的具体数据进行限定。
104.在上述实施例的基础上,步骤306中在每个栅格中,根据每个点的第一高程、预设的高程阈值以及基准点,在点云层中筛选出目标点云层具体由步骤3061-步骤3062执行,包括:
105.步骤3061、在每个栅格中,从每个点云层的每个点中,选取出第一高程最低的目标点,计算目标点的第一高程与基准点的第一高程之间的第一差值,判断第一差值是否大于或等于高程阈值。
106.在一个实施例中,如图6所示,图6为点云数据的截面图。在每个栅格的每个点云层的点中,选取出第一高程最低的目标点,之后在每个栅格中计算目标点的第一高程与基准点的第一高程之间的第一差值,并进一步判断第一差值是否大于或等于高程阈值。通过选取出每个点云层中第一高程最低的目标点,能够避免遍历点云层中的所有点,从而减小计算量,提高计算效率以及缩短计算时间。
107.步骤3062、若是,将目标点所在的点云层标记为目标点云层。
108.如果点云层中的第一差值大于或等于高程阈值,则将目标点所在的点云层标记为目标点云层。
109.步骤307、判断目标点云层是否存在类别为悬浮物的悬浮点云数据。
110.在每个栅格中确定出目标点云层后,进一步判断出目标点云层中是否存在有类别为悬浮物的悬浮点云数据,以便后续进一步在点云数据中剔除悬浮点云数据。
111.在上述实施例的基础上,步骤307中判断目标点云层是否存在类别为悬浮物的悬浮点云数据具体由步骤3071-步骤3072执行,具体包括:
112.步骤3071、遍历目标点云层中的每个点,对于当前所遍历的点,根据当前所遍历的点以及预设距离确定目标范围。
113.对于每个栅格中的目标点云层,遍历目标点云层中的每个点,当遍历到某个点时,以当前所遍历的点为中心点,并根据预设距离确定出目标范围。可理解,预设距离可根据实际需要进行设置,但最终确定出的目标范围需要落在栅格内。
114.在上述实施例的基础上,步骤3071中根据当前所遍历的点以及预设距离确定目标
范围具体由步骤30711执行,包括:
115.步骤30711、以当前所遍历的点与基准点所在水平面之间的垂线作为轴线,以预设距离作为半径确定圆柱范围,将圆柱范围作为目标范围。
116.在一个实施例中,如图7所示,图7为点云数据的截面图,对于当前所遍历的点,确定基准点所在的水平面,以当前所遍历的点与水平面之间的垂线作为轴线,以轴线上的点作为中心点,并以预设距离作为半径确定圆柱范围,将圆柱范围作为目标范围。
117.以上即为确认目标范围的具体过程。
118.步骤3072、根据当前所遍历的点的第一高程以及目标范围内其他点的第一高程,判断当前所遍历的点是否为类别为悬浮物的悬浮点。
119.在确认出目标范围后,根据当前所遍历的点的第一高程以及目标范围内其他点的第一高程,判断当前所遍历的点是否为类别为悬浮物的悬浮点。示例性的,在一个实施例中,通过计算当前所遍历的点的第一高程和其他点的第一高程之间的差值,确定出差值大于预设阈值的其他点的数量,最后根据数量,判断当前所遍历的点是否为类别为悬浮物的悬浮点。
120.在上述实施例的基础上,步骤3072中根据当前所遍历的点的第一高程以及其他点的第一高程,判断当前所遍历的点是否为类别为悬浮物的悬浮点具体由步骤30721-步骤30723执行,具体包括:
121.步骤30721、计算当前所遍历的点的第一高程与其他点的第一高程的第二差值。
122.首先,计算出当前所遍历的点的第一高程与其他每个点的第一高程的第二差值。示例性的,若当前所遍历的点a,目标范围内的其他点为b、c以及d,则分别计算a的第一高程与b的第一高程的第二差值、与c的第一高程的第二差值以及与d的第一高程的第二差值。
123.步骤30722、统计第二差值大于预设阈值的其他点的数量。
124.在计算出当前遍历的点与其他每个点的第二差值后,在其他点中,统计出第二差值大于预设阈值的点的数量。示例性的,若前所遍历的点a与其他点b的第一高程的第二差值,以及与其他点c的第一高程的第二差值均大于预设阈值,则此时第二差值大于预设阈值的其他点的数量为2个。
125.步骤30723、根据数量以及目标范围内所有点的总数量,判断当前所遍历的点是否为类别为悬浮物的悬浮点。
126.最后,根据第二差值大于预设阈值的其他点的数量以及目标范围内所有点的总数量,判断当前所遍历的点是否为类别为悬浮物的悬浮点。具体的,在一个实施例中,可计算数量占总数量的比例,根据比例来判断出当前所遍历的点是否为类别为悬浮物的悬浮点。
127.在上述实施例的基础上,步骤30723中根据数量以及目标范围内所有点的总数量,判断当前所遍历的点是否为类别为悬浮物的悬浮点,包括:
128.判断数量占总数量的比例是否大于预设比例,若是,则将当前所遍历的点确定为类别为悬浮物的悬浮点。
129.在一个实施例中,判断数量占总数量的比例是否大于预设比例,如果是,则将当前所遍历的点确定为类别为悬浮物的悬浮点。可理解,若当前遍历的点在目标范围内与大多数其他点在垂线方向上的距离大于预设阈值,则说明当前遍历的点的第一高程较高,且当前所遍历的点与大多数其他点之间存在的点云数据较少,因此,当前所遍历的点是悬浮物
(例如电线)的可能性很大,将当前所遍历的点确定为类别为悬浮物的悬浮点。可理解,预设比例可根据实际需要进行设置,在本实施例中不对预设比例的具体数值进行限定,示例性的,可以将预设比例设置为80%。
130.步骤308、若是,标记出悬浮点云数据,将悬浮点云数据从目标点云层中剔除,以得到目标点云数据。
131.如果目标点云层中存在悬浮点云数据,则在目标点云层标记出悬浮点云数据,并将悬浮点云数据从目标点云层中剔除,以得到目标点云数据。在遍历完每个栅格的每个目标点云层中的每个点后,汇总每个栅格中的目标点云层中所有的悬浮点,即可得到悬浮点云数据,最后在将点云数据中的悬浮点云数据剔除,即可得到目标点云数据。如果所有的目标点云层中都不存在悬浮点云数据,则不对目标点云层进行操作,结束流程。
132.步骤309、基于目标点云数据生成目标区域对应的数字表面模型。
133.上述,通过在每个栅格的每个点云层中筛选出目标点云层,并遍历目标点云层中的所有点,判断当前所遍历的点是否为类别为悬浮物的悬浮点,若是,将当前所遍历的点作为类别为悬浮物的悬浮点,待后续确定出点云数据中的所有类别为悬浮物的悬浮点后,即可得到悬浮点云数据,在点云数据中将悬浮点云数据剔除,得到目标点云数据。使得在后续根据目标点云数据来生成数字表面模型时,由于目标点云数据中已经剔除了悬浮物,能够避免在数字表面模型中出现将悬浮物表达为与地面接触的实体的情况,提高了数字表面模型的精确度。
134.如图8所示,图8为本发明实施例提供的另一种点云数据处理方法的流程图。方法包括以下步骤:
135.步骤401、获取目标图像,根据目标图像生成点云数据,目标图像为对目标区域进行拍摄得到的图像。
136.步骤402、对点云数据进行过滤。
137.在本实施例中,在得到点云数据后,进一步对点云数据进行过滤,避免点云数据中的噪点对后续分层过程造成干扰。示例性的,在一个实施例中,设置点云数据的最低高程值,计算点云数据中每一个点云以大地水准面作为基准面时的第二高程,将第二高程低于最低高程值的点云数据进行过滤。
138.步骤403、对点云数据进行栅格化得到多个预设尺寸的栅格,在每个栅格中确定出基准点。
139.步骤404、根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据。
140.步骤405、基于目标点云数据生成目标区域对应的数字表面模型。
141.上述,在得到点云数据后对点云数据进行过滤,能够避免噪点对后续分层过程造成干扰,同时能够减小计算量,提高计算效率。
142.实施例二
143.如图9所示,如图9为本发明实施例提供的一种点云数据处理装置的结构示意图,包括点云生成模块501、栅格化模块502、剔除模块503以及模型生成模块504。
144.点云生成模块501用于获取目标图像,根据目标图像生成点云数据,目标图像为对目标区域进行拍摄得到的图像。
145.栅格化模块502用于对点云数据进行栅格化得到多个预设尺寸的栅格,在每个栅格中确定出基准点。
146.剔除模块503用于根据基准点云以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据。
147.模型生成模块504用于基于目标点云数据生成目标区域对应的数字表面模型。
148.在上述实施例的基础上,栅格化模块502用于在每个栅格中确定出基准点,包括:用于将每个栅格中连续的点云数据进行聚类得到多个点云层;
149.在多个点云层中确定出与地表相对应的地表点云层;根据地表点云层中每个点的高程,在地表点云层中选取出基准点。
150.在上述实施例的基础上,栅格化模块502用于将每个栅格中连续的点云数据进行聚类得到多个点云层,包括:
151.用于在每个栅格中,计算连续的点云数据中每个点的第一高程,根据第一高程,将每个栅格中连续的点云数据聚类为不同的点云层。
152.在上述实施例的基础上,栅格化模块502用于在多个点云层中确定出与地表相对应的地表点云层,包括:
153.用于在每个点云层中,选取出第一高程小于预设值的点所在的点云层作为地表点云层。
154.在上述实施例的基础上,栅格化模块502用于根据地表点云层中每个点的高程,在地表点云层中选取出基准点,包括:
155.用于在地表点云层中选取出第一高程的值最大的点作为基准点。
156.在上述实施例的基础上,剔除模块503用于根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据,包括:
157.用于在每个栅格中,根据每个点的第一高程、预设的高程阈值以及基准点,在点云层中筛选出目标点云层;判断目标点云层是否存在目标点云数据,若是,标记出悬浮点云数据,将悬浮点云数据从目标点云层中剔除,以得到目标点云数据。
158.在上述实施例的基础上,剔除模块503用于在每个栅格中,根据每个点的第一高程、预设的高程阈值以及基准点,在点云层中筛选出目标点云层,包括:
159.用于在每个栅格中,从每个点云层的每个点中,选取出第一高程最低的目标点,计算目标点的第一高程与基准点的第一高程之间的第一差值,判断第一差值是否大于或等于高程阈值;若是,将目标点所在的点云层标记为目标点云层。
160.在上述实施例的基础上,剔除模块503用于判断目标点云层是否存在类别为悬浮物的悬浮点云数据,包括:
161.用于遍历目标点云层中的每个点,对于当前所遍历的点,根据当前所遍历的点以及预设距离确定目标范围;根据当前所遍历的点的第一高程以及目标范围内其他点的第一高程,判断当前所遍历的点是否为类别为悬浮物的悬浮点。
162.在上述实施例的基础上,剔除模块503用于根据当前所遍历的点以及预设距离确定目标范围,包括:
163.用于以当前所遍历的点与基准点所在水平面之间的垂线作为轴线,以预设距离作
为半径确定圆柱范围,将圆柱范围作为目标范围。
164.在上述实施例的基础上,剔除模块503用于根据当前所遍历的点的第一高程以及其他点的第一高程,判断当前所遍历的点是否为类别为悬浮物的悬浮点,包括:
165.用于计算当前所遍历的点的第一高程与其他点的第一高程的第二差值;统计第二差值大于预设阈值的其他点的数量;根据数量以及目标范围内所有点的总数量,判断当前所遍历的点是否为类别为悬浮物的悬浮点。
166.在上述实施例的基础上,剔除模块503用于根据数量以及目标范围内所有点的总数量,判断当前所遍历的点是否为类别为悬浮物的悬浮点,包括:
167.用于判断数量占总数量的比例是否大于预设比例,若是,则将当前所遍历的点确定为类别为悬浮物的悬浮点。
168.实施例三
169.本实施例还提供了一种终端设备,如图10所示,一种终端设备60,终端设备包括处理器600以及存储器601;
170.存储器601用于存储计算机程序602,并将计算机程序602传输给处理器;
171.处理器600用于根据计算机程序602中的指令执行上述的一种点云数据处理方法实施例中的步骤。
172.示例性的,计算机程序602可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器601中,并由处理器600执行,以完成本技术。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序602在终端设备60中的执行过程。
173.终端设备60可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备60可包括,但不仅限于,处理器600、存储器601。本领域技术人员可以理解,图10仅仅是终端设备60的示例,并不构成对终端设备60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备60还可以包括输入输出设备、网络接入设备、总线等。
174.所称处理器600可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
175.存储器601可以是终端设备60的内部存储单元,例如终端设备60的硬盘或内存。存储器601也可以是终端设备60的外部存储终端设备,例如终端设备60上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器601还可以既包括终端设备60的内部存储单元也包括外部存储设备。存储器601用于存储计算机程序以及终端设备60所需的其他程序和数据。存储器601还可以用于暂时地存储已经输出或者将要输出的数据。
176.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
177.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
178.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
179.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
180.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储计算机程序的介质。
181.实施例四
182.本发明实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种点云数据处理方法,该方法包括以下步骤:
183.获取目标图像,根据目标图像生成点云数据,目标图像为对目标区域进行拍摄得到的图像;
184.对点云数据进行栅格化得到多个预设尺寸的栅格,在每个栅格中确定出基准点;
185.根据基准点以及预设的高程阈值,在每个栅格中标记出类别为悬浮物的点云数据,将类别为悬浮物的点云数据剔除,以得到目标点云数据;
186.基于目标点云数据生成目标区域对应的数字表面模型。
187.注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1