CN114693855B - 一种点云数据的处理方法和装置 - Google Patents

一种点云数据的处理方法和装置 Download PDF

Info

Publication number
CN114693855B
CN114693855B CN202210603347.XA CN202210603347A CN114693855B CN 114693855 B CN114693855 B CN 114693855B CN 202210603347 A CN202210603347 A CN 202210603347A CN 114693855 B CN114693855 B CN 114693855B
Authority
CN
China
Prior art keywords
point
cluster
data
point data
distance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210603347.XA
Other languages
English (en)
Other versions
CN114693855A (zh
Inventor
周勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Automotive Innovation Corp
Original Assignee
China Automotive Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Automotive Innovation Corp filed Critical China Automotive Innovation Corp
Priority to CN202210603347.XA priority Critical patent/CN114693855B/zh
Publication of CN114693855A publication Critical patent/CN114693855A/zh
Application granted granted Critical
Publication of CN114693855B publication Critical patent/CN114693855B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Graphics (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及了一种点云数据的处理方法和装置,该方法包括:根据原始点云数据中各个点数据的坐标构建对应的K维树;利用K维树搜索点数据之间的距离,并根据距离对点数据按照密度进行聚类,得到多个第一聚类簇;根据点数据之间的距离,对第一聚类簇中的点数据进行分段,得到点数据对应的至少一个子段;对子段进行线性拟合,得到第二聚类簇;将第二聚类簇按照簇之间的距离进行聚合,得到多个点集集合;将点集集合与预设的底图进行匹配,并将匹配到同一个底图元素的点集集合进行合并,得到原始点云数据对应的预处理结果。本方案多次提升数据精度,改善了众包数据的数据质量,并且减少了距离计算的时间,提高了数据处理效率。

Description

一种点云数据的处理方法和装置
技术领域
本发明涉及点云数据处理技术领域,尤其涉及一种点云数据的处理方法和装置。
背景技术
高精地图是自动驾驶时空感知需求不可或缺的元素,道路车道线数据在高精地图制作过程中扮演着极为重要的角色。由于车道线形状等道路信息会发生变化,所以通常我们需要对已有的车道线地图进行更新。
目前采集高精地图主要有以下几种方式:搭载激光雷达的专业数据采集系统、搭载专业视觉设备的众包数据采集系统以及基于普通视觉众包数据的数据采集系统。
专业采集设备精度高,数据质量好,但存在成本高昂,采集周期长,更新频率无法满足高精地图鲜度的要求的问题。普通视觉采集设备相较而言成本较低,适宜推广以采集高鲜度的数据。但普通视觉众包数据精度较低,数据质量较差,并且由于众包采集到的数据量较大,使得数据处理的时间较长,无法满足车道线地图实时更新的需求。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明第一方面提出一种点云数据的处理方法,所述方法包括:
根据原始点云数据中各个点数据的坐标构建对应的K维树;所述原始点云数据为描述线性对象的点云数据;
利用所述K维树搜索所述点数据之间的距离,并根据所述距离对所述点数据按照密度进行聚类,得到多个第一聚类簇;
根据所述点数据之间的距离,对所述第一聚类簇中的点数据进行分段,得到所述点数据对应的至少一个子段;
对所述子段进行线性拟合,并根据拟合结果剔除噪点,得到第二聚类簇;
将所述第二聚类簇按照簇之间的距离进行聚合,得到多个点集集合;
将所述点集集合与预设的底图进行匹配,并将匹配到同一个底图元素的点集集合进行合并,得到所述原始点云数据对应的预处理结果。
本发明第二方面提出一种点云数据的处理装置,所述装置包括:
K维树构建模块,用于根据原始点云数据中各个点数据的坐标构建对应的K维树;所述原始点云数据为描述线性对象的点云数据;
第一聚类簇确定模块,用于利用所述K维树搜索所述点数据之间的距离,并根据所述距离对所述点数据按照密度进行聚类,得到多个第一聚类簇;
分段模块,用于根据所述点数据之间的距离,对所述第一聚类簇中的点数据进行分段,得到所述点数据对应的至少一个子段;
拟合模块,用于对所述子段进行线性拟合,并根据拟合结果剔除噪点,得到第二聚类簇;
点集集合确定模块,用于将所述第二聚类簇按照簇之间的距离进行聚合,得到多个点集集合;
匹配模块,用于将所述点集集合与预设的底图进行匹配,并将匹配到同一个底图元素的点集集合进行合并,得到所述原始点云数据对应的预处理结果。
本发明第三方面提出一种电子设备,所述电子设备包括处理器和存储器,所述存储器种存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的点云数据的处理方法。
本发明第四方面提出一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的点云数据的处理方法。
本发明实施例具有以下有益效果:
在本发明实施例中,根据原始点云数据中各个点数据的坐标构建对应的K维树;所述原始点云数据为描述线性对象的点云数据;利用所述K维树搜索所述点数据之间的距离,并根据所述距离对所述点数据按照密度进行聚类,得到多个第一聚类簇;根据所述点数据之间的距离,对所述第一聚类簇中的点数据进行分段,得到所述点数据对应的至少一个子段;对所述子段进行线性拟合,并根据拟合结果剔除噪点,得到第二聚类簇;将所述第二聚类簇按照簇之间的距离进行聚合,得到多个点集集合;将所述点集集合与预设的底图进行匹配,并将匹配到同一个底图元素的点集集合进行合并,得到所述原始点云数据对应的预处理结果。这样,整个方案采用聚类、拟合、噪点剔除、底图匹配等过程对众包数据进行预处理,多次提升数据精度,改善了众包数据的数据质量;并且利用K维树搜索点数据之间的距离,减少了距离计算的时间,提高了数据处理效率。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其它附图。
图1为本发明实施例提供的第一种点云数据的处理方法的步骤流程图;
图2为本发明实施例提供的第二种点云数据的处理方法的步骤流程图;
图3为本发明实施例提供的第三种点云数据的处理方法的步骤流程图;
图4为本发明实施例提供的第四种点云数据的处理方法的步骤流程图;
图5为本发明实施例提供的第五种点云数据的处理方法的步骤流程图;
图6为本发明实施例提供的第六种点云数据的处理方法的步骤流程图;
图7为本发明实施例提供的一种点云数据的处理装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或无创造性的劳动可以包括更多或者更少的操作步骤。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
图1为本发明实施例提供的第一种点云数据的处理方法的步骤流程图。该方法可以包括如下步骤:
步骤101、根据原始点云数据中各个点数据的坐标构建对应的K维树;所述原始点云数据为描述线性对象的点云数据。
K维树,即kd-tree(k-dimensional,K维),是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。根据原始点云数据中各个点数据的坐标构建对应的K维树,即利用K维树结构存储点数据,这样,在查询点数据之间的距离的时候,可以减少遍历的深度,降低时间复杂度。
此外,本发明实施例中的原始点云数据为描述线性对象的点云数据,线性对象包括车道线、输电线路等细长型的对象。
在一种可能的实施方式中,在根据原始点云数据中各个点数据的坐标构建对应的K维树之前,还包括:
利用kafka任务消息从数据库中读取原始点云数据;
在本发明实施例中,众包数据被预先上传到数据库中,计算机接收kafka任务消息,从任务消息中读取当前要处理的任务,然后从数据库中根据时间和空间范围将原始点云数据切分查询,将查询到的点集作为原始数据的输入流,开启flink流式处理流程。
在一种可能的实施方式中,所述根据原始点云数据中各个点数据的坐标构建对应的K维树,包括:
利用flink流式处理框架,获取所述原始点云数据中各个点数据的坐标,并根据所述坐标构建对应的K维树。
本方案整个过程采用flink流式处理框架,避免批处理内存占用高延时较高的问题,实时处理,最大程度的保证数据的鲜度。
步骤102、利用所述K维树搜索所述点数据之间的距离,并根据所述距离对所述点数据按照密度进行聚类,得到多个第一聚类簇。
K维树的每个结点对应于一个k维超矩形区域。利用k维树可以省去对大部分数据点的搜索,从而减少搜索的计算量。
密度聚类,即基于密度的聚类,假设聚类结构能通过样本分布的紧密程度确定。密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
对于线性对象来说,不同的线性对象之间的距离有可能小于同一个线性对象上不同点之间的距离,因此不能使用距离聚类来划分,而采用密度聚类的方法更适用于线性对象。
步骤103、根据所述点数据之间的距离,对所述第一聚类簇中的点数据进行分段,得到所述点数据对应的至少一个子段。
为了更为精确的识别噪点,可以对包含较多点数据的第一聚类簇进行分段,具体地,根据点数据之间的距离,将距离较近的点数据划分到同一个子段。
步骤104、对所述子段进行线性拟合,并根据拟合结果剔除噪点,得到第二聚类簇。
具体地,为了能确切和充分地体现出数据点的规律,可以用连续曲线近似地刻画或比拟离散的数据点之间的函数关系,即分别对每个子段中的点数据进行线性拟合。
在线性拟合之后,得到拟合函数,可以将不处于拟合函数曲线上的点数据标记为噪点从第一聚类簇中进行剔除,从而第一聚类簇去除噪点后,成为第二聚类簇。
在一种可能的实施方式中,在步骤104之后,还包括:
对所述第二聚类簇中的点数据在保留起始点的条件下,按照预设的步长进行抽稀处理。步长根据数据量的大小和计量单位进行预设。
抽稀是指在保证矢量曲线形状不变的情况下,最大限度地减少数据点个数。按照预设的步长抽稀处理,是指沿连续曲线每隔一定的步长抽取一个数据点,其余数据点全部压缩掉,然后在相邻抽取数据点间用直线连续或曲线拟合逼近。
具体地,本发明实施例中的第二聚类簇可以按1米的步长进行抽稀处理,抽稀的时候保留起始点,从而保持形状同时将数据量降低。
步骤105、将所述第二聚类簇按照簇之间的距离进行聚合,得到多个点集集合。
由于不同的第二聚类簇可能属于同一个线性对象,因此,可以按照簇之间的距离对第二聚类簇进行聚合,将属于同一个线性对象的第二聚类簇放入同一个点集集合中。
步骤106、将所述点集集合与预设的底图进行匹配,并将匹配到同一个底图元素的点集集合进行合并,得到所述原始点云数据对应的预处理结果。
预设的底图可以是预先利用专业数据采集系统获取得到的,该底图可能是一段时间之前获取得到的,利用本发明中的众包数据提供的原始点云数据可以对底图进行更新。
具体地,将点集集合与预设的底图进行匹配,并将匹配到同一个底图元素的点集集合进行合并,从而得到原始点云数据对应的预处理结果。
例如,将匹配到同一条车道线的点集集合进行合并,得到车道线对应的点集集合,该集合为原始点云数据对应的预处理结果。
综上,在本发明实施例中,根据原始点云数据中各个点数据的坐标构建对应的K维树;所述原始点云数据为描述线性对象的点云数据;利用所述K维树搜索所述点数据之间的距离,并根据所述距离对所述点数据按照密度进行聚类,得到多个第一聚类簇;根据所述点数据之间的距离,对所述第一聚类簇中的点数据进行分段,得到所述点数据对应的至少一个子段;对所述子段进行线性拟合,并根据拟合结果剔除噪点,得到第二聚类簇;将所述第二聚类簇按照簇之间的距离进行聚合,得到多个点集集合;将所述点集集合与预设的底图进行匹配,并将匹配到同一个底图元素的点集集合进行合并,得到所述原始点云数据对应的预处理结果。这样,整个方案采用聚类、拟合、噪点剔除、底图匹配等过程对众包数据进行预处理,多次提升数据精度,改善了众包数据的数据质量;并且利用K维树搜索点数据之间的距离,减少了距离计算的时间,提高了数据处理效率。
在一种可能的实施例中,如图2所示,所述根据所述距离对所述点数据按照密度进行聚类,包括以下步骤201-步骤205:
步骤201、初始化点邻域距离与最小点集数量;
步骤202、对于所述K维树中的每一个目标点数据,遍历所述K维树中的其他点数据与所述目标点数据之间的第一距离,获取所述第一距离小于所述点邻域距离的点数据的数量;
步骤203、若所述数量小于所述最小点集数量,则将所述目标点数据标记为第一噪点;若所述数量大于或等于所述最小点集数量,则将所述目标点数据标记为核心点;
步骤204、将与所述核心点之间的距离小于所述点邻域距离的点数据加入根据所述核心点构建的新簇中,并对所述新簇中的点数据进行标记;
步骤205、根据所述标记的结果确定所述K维树中的点数据对应的聚类簇,得到多个第一聚类簇。
在步骤201-步骤205中,使用了DBSCAN算法进行聚类。首先,初始化点邻域距离与最小点集数量,例如,设置点邻域距离为1.5,最小点集数量为20。通过K维树的范围查询寻找和目标点数据距离小于邻域距离的邻居节点,将距离小于邻域距离的节点与目标点数据放入同一个簇。同时,查询邻居节点的邻居节点,同样将小于邻域距离的节点加入该簇,并将这些点设为已标记。最后将得到一个簇列表。通过K维树的优化,可以将聚类速度提升一个数量级。
在一种可能的实施方式中,如图3所示,所述对所述第一聚类簇中的点数据进行分段,包括以下步骤301-步骤304:
步骤301、对于所述第一聚类簇中的点数据,分别计算所有点数据的经度值的均方差和纬度值的均方差,得到第一经度均方差和第一纬度均方差;
步骤302、将所述第一经度均方差和第一纬度均方差两者中较大的均方差对应的方向确定为第一目标方向;
步骤303、将所述点数据按照所述第一目标方向对应的值进行排序,得到所述第一聚类簇对应的点列表;
步骤304、确定所述点列表中的起点和终点之间的距离,得到点列表长度,并在所述点列表长度大于预设第一长度的情况下,对所述点列表进行分段,得到所述点数据对应的至少一个子段。
步骤301-步骤304是对第一聚类簇中的点数据按照第一目标方向进行排序,以方便后面进行线性拟合和识别噪点。
具体地,分别获取第一聚类簇中的点数据的经度值和纬度值,分别计算所有经度值的均方差和纬度值的均方差,比较两种均方差的大小,并将两者中较大的均方差对应的方向确定为第一目标方向。例如,若经度均方差较大,则将经度方向确定为第一目标方向。
将第一聚类簇中的点数据按照第一目标方向的值进行排序。例如,若第一目标方向为经度方向,则可以对点数据按照经度值由小到大或由大到小的顺序进行排序,得到第一聚类簇对应的点列表。
这样,将聚类得到的乱序排列的簇处理为按照顺序进行排列的点列表,有利于后续根据起点和终点的距离确定点列表长度。
若该点列表长度大于预设的第一长度,则说明点列表过长,不利于后续对点数据进行线性拟合,因此,将点列表进行分段,从而得到点数据对应的至少一个子段。第一长度可以根据实际情况进行预设,例如可以设置为10米。
在一种可能的实施方式中,所述对所述点列表进行分段,包括以下步骤3041-步骤3043:
步骤3041、确定所述点列表长度与预设的第二参考长度的大小关系;
步骤3042、根据所述大小关系确定分段长度;
步骤3043、按照所述分段长度对所述点列表中的点数据进行分段,并使分段得到的相邻子段中有目标长度的重叠区域;所述目标长度为所述分段长度的1/2。
在步骤3041-步骤3043中,为了避免线性对象中包括角度比较大的拐弯,例如,车道线包括比较急的弯,可以将第二参考长度设置为比较短的距离,例如,对于车道线来说,第二参考长度可以设置为10米。这样,有利于把拐弯的两端划分在不同的子段中,有利于提高后续线性拟合的准确度。
比较点列表长度和第二参考长度的大小关系,根据大小关系确定分段长度。例如,若点列表长度大于第二参考长度,则可以将分段长度设置的更长一点,反之,设置的更短一点。
此外,要保证分段得到的相邻子段中有目标长度的重叠区域,这样,有利于后续根据重叠区域对两个子段进行连接。
在一种可能的实施方式中,所述根据所述大小关系确定分段长度,包括以下步骤30421-步骤30422:
步骤30421、若所述点列表长度小于所述第二参考长度,则将所述点列表长度的1/N作为分段长度;
步骤30422、若所述点列表长度大于或等于所述第二参考长度,则将预设的第二长度作为分段长度。
对于步骤30421-步骤30422,示例性地,设置第二参考长度为500米,第二长度为100米。若点列表长度小于500米,则将点列表长度的1/5作为分段长度,若点列表长度大于或等于500米,则按照100米距离对点列表进行分段,并保证相邻子段中间有分段长度1/2的重叠区域。
在一种可能的实施方式中,如图4所示,所述对所述子段进行线性拟合,并根据拟合结果剔除噪点,包括以下步骤401-步骤405:
步骤401、根据三次多项式函数对所述子段进行初次线性拟合,得到第一拟合函数;三次多项式函数为y=a+b*x+c*x^2+d*x^3,其中,x表示点数据的经度坐标,y表示点数据的纬度坐标,a,b,c,d为拟合系数。将点数据坐标的经度值和纬度值分别代入上述三次多项式,可以得到式中的a,b,c,d取值。
将a,b,c,d取值代入上述三次多项式,得到第一拟合函数。
步骤402、根据所述第一拟合函数确定所述子段中的第二噪点,并剔除所述第二噪点,得到所述子段的剩余点数据。
可以将与第一拟合函数曲线距离比较远的点数据确定为第二噪点,剔除第二噪点后,得到剩余点数据。
在一种可能的实施方式中,所述根据所述第一拟合函数确定所述子段中的第二噪点,包括以下步骤4021-步骤4023:
步骤4021、对于所述子段中的点数据,将所述点数据的经度值代入所述第一拟合函数,得到拟合纬度值;
步骤4022、确定所述点数据的实际纬度值与所述拟合纬度值之间的方差;
步骤4023、将所述方差大于目标均方差的点数据确定为第二噪点;所述目标均方差为所述子段中的各个所述点数据的实际纬度值与所述拟合纬度值之间的方差的平均值。
在步骤4021-步骤4023中,对于子段中的每一个点数据,将点数据的经度值代入第一拟合函数,得到拟合纬度值。实际纬度值是指点数据本身的纬度值。计算实际纬度值和拟合纬度值的方差,将该方差与均方差进行比较,从而确定第二噪点。
其中,目标均方差为该子段中所有点数据得到的方差的均值。
步骤403、确定所述第一拟合函数是否满足预设的目标条件。
预设的目标条件可用于衡量第一拟合函数的精度。若精度不符合要求,需要在剔除噪点后,对点数据继续进行拟合。
在一种可能的实施方式中,所述确定所述第一拟合函数是否满足预设的目标条件,包括以下步骤4031-步骤4033:
步骤4031、确定所述拟合函数的调整方差,并将所述调整方差与预设的方差阈值进行比较;
步骤4032、若所述调整方差大于或等于所述方差阈值,则确定所述第一拟合函数满足预设的目标条件;
步骤4033、若所述调整方差小于所述方差阈值,则确定所述第一拟合函数不满足所述目标条件。
在步骤4031-步骤4033中,调整方差也称为调整R方,其在R方的基础上增加了对模型参数个数的惩罚项,用来衡量拟合的性价比。调整方差的值越大,说明拟合的精度越高。
可以设置方差阈值,若调整方差大于或等于方差阈值,则第一拟合函数满足目标条件,若调整方差小于方差阈值,则第一拟合函数不满足目标条件,需要对剔除噪点后的点数据再次进行线性拟合。
步骤404、在不满足所述目标条件的情况下,对所述剩余点数据再次进行线性拟合,根据拟合得到的拟合函数确定第三噪点并去除,并对去除所述第三噪点的剩余点数据再次进行线性拟合,直到拟合得到的拟合函数满足预设的目标条件或拟合的次数达到预设的次数阈值。
再次线性拟合的步骤与第一次线性拟合的步骤相同,在得到拟合函数后,将实际经度值代入拟合函数中得到拟合纬度值,根据拟合纬度值和实际纬度值之间的方差确定第三噪点,将第三噪点去除,同时确定此次得到的拟合函数的调整方差,若调整方差仍不满足目标条件,则再一次进行线性拟合,直到拟合得到的拟合函数满足预设的目标条件,或者,拟合的次数达到预设的次数阈值。
步骤405、将满足所述目标条件时所述子段中包括的点数据确定为第二聚类簇,或,将拟合的次数达到所述次数阈值的子段中包括的点数据作为噪点从所述第一聚类簇中剔除。
当拟合函数满足目标条件时,子段中的点数据不包含噪点,将这些点数据组成的簇作为第二聚类簇,用于后续继续处理。
当拟合的次数达到预设的次数阈值,则认为该子段的点数据的质量不能满足要求,直接将该子段的点数据全部作为噪点进行剔除。
在一种可能的实施方式中,如图5所示,所述将所述第二聚类簇按照簇之间的距离进行聚合,包括:
步骤501、获取各个所述第二聚类簇的起始点的经度值和纬度值;
步骤502、确定所有的所述第二聚类簇的起始点的经度值的均方差和纬度值的均方差,得到第二经度均方差和第二纬度均方差;
步骤503、将所述第二经度均方差和第二纬度均方差两者中较大的均方差对应的方向确定为第二目标方向;
步骤504、将所述第二聚类簇按照所述第二目标方向对应的值进行排序,得到所述第二聚类簇组成的簇集合。
步骤501-步骤504,用于将所有的第二聚类簇按照第二目标方向进行排序,以有利于后续计算第二聚类簇之间的距离。
具体排序方法与对第一聚类簇中的点数据进行排序的方法类似,此处不再赘述。
步骤505、从所述第二聚类簇组成的簇集合中提取第一个第二聚类簇,并将所述第一个第二聚类簇作为初始元素,创建第一点集集合。
从簇集合中提取一个第二聚类簇,放入第一点集集合,作为第一点集集合的初始元素。
可选的,所述从所述第二聚类簇组成的簇集合中提取第一个第二聚类簇,包括:
从所述第二聚类簇组成的簇集合中提取排序为第一的第二聚类簇。
在本发明实施例中,由于步骤501-步骤504对簇集合中的第二聚类簇按照相互之间的距离进行了排序,因此,此处可以直接提取排序为第一的第二聚类簇,以方便后续获取最小距离。
步骤506、遍历所述簇集合中的各个待聚合的第二聚类簇,确定所述待聚合的第二聚类簇与所述初始元素的最小距离;
步骤507、若所述最小距离小于预设的最小距离阈值,则将所述待聚合的第二聚类簇加入所述第一点集集合;若所述最小距离大于或等于所述最小距离阈值,则利用所述待聚合的第二聚类簇创建第二点集集合,并将所述待聚合的第二聚类簇作为所述第二点集集合的初始元素;
步骤508、从所述簇集合中提取第二个第二聚类簇,并分别确定所述第二个第二聚类簇与所述第一点集集合和所述第二点集集合中的各个元素的最小距离,并利用所述最小距离确定所述第二个第二聚类簇所归属的点集集合;
步骤509、按照上述方法,得到每个所述第二聚类簇所归属的点集集合,得到多个点集集合。
在步骤506-步骤509中,将第一个第二聚类簇纳入第一点集集合后,遍历簇集合中的其他第二聚类簇,求出每个第二聚类簇与第一个第二聚类簇的距离。由于每个第二聚类簇描述一个线性对象,因此,求第二聚类簇与第一个第二聚类簇的距离,即是求两条线之间的距离,得到多个距离。从多个距离中提取最小距离,如果最小距离小于最小距离阈值,则将该第二聚类簇加入第一点集集合,否则将该第二聚类簇作为一个新的结果,创建第二点集集合。
这样,对于簇集合中的每个第二聚类簇进行上述操作,可以得到多个点集集合。每个点集集合中包括至少一个第二聚类簇,每个点集集合中的第二聚类簇均是距离相距较近的聚类簇。
在一种可能的实施方式中,如图6所示,所述底图元素为车道线,所述将所述点集集合与预设的底图进行匹配,包括:
步骤601、对所述底图中的各个车道线按照预设长度进行扩展,得到多个扩展车道线;
步骤602、确定所述点集集合中的点数据与所述多个扩展车道线是否相交;
步骤603、若存在与所述点数据相交的扩展车道线,则确定所述点集集合与所述相交的车道线匹配;
步骤604、若不存在与所述点数据相交的扩展车道线,则确定所述点集集合无匹配车道线。
在步骤601-步骤604中,底图元素为车道线,将数据库中预先存储的底图中的车道线进行扩展,例如,将各个车道线向周围扩展1米,得到扩展车道线。将各个点集集合中的点数据分别与多个扩展车道线进行匹配,看是否存在相交,若相交,则确定该点集集合与该车道线匹配。将匹配到同一条车道线的点集集合进行合并,得到该扩展车道线对应的点云数据。
若点集集合与任何一条扩展车道线都相交,则该点集集合没有匹配的车道线。将该点集集合中的点数据进行剔除。
这样,得到底图中的车道线对应的所有点云数据,将该点云数据与车道线的对应关系作为原始点云数据的预处理结果。
综上,本发明实施例提供的点云数据处理方法,使用flink大数据流式处理的方式,对多批原始点云数据进行融合、聚类、拟合、抽稀、聚合、底图匹配,对众包数据进行预处理,从而降低数据量提升精度,供后续众包更新变化决策等步骤使用。该方法在有限计算机硬件内存的条件下,实现了海量众包数据快速高效的数据预处理,解决了现有技术中众包数据量大、数据质量差的问题。
图7为本发明实施例提供的一种点云数据的处理装置的结构框图。该装置700包括:
K维树构建模块701,用于根据原始点云数据中各个点数据的坐标构建对应的K维树;所述原始点云数据为描述线性对象的点云数据;
第一聚类簇确定模块702,用于利用所述K维树搜索所述点数据之间的距离,并根据所述距离对所述点数据按照密度进行聚类,得到多个第一聚类簇;
分段模块703,用于根据所述点数据之间的距离,对所述第一聚类簇中的点数据进行分段,得到所述点数据对应的至少一个子段;
拟合模块704,用于对所述子段进行线性拟合,并根据拟合结果剔除噪点,得到第二聚类簇;
点集集合确定模块705,用于将所述第二聚类簇按照簇之间的距离进行聚合,得到多个点集集合;
匹配模块706,用于将所述点集集合与预设的底图进行匹配,并将匹配到同一个底图元素的点集集合进行合并,得到所述原始点云数据对应的预处理结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明提供的又一实施例中,还提供了一种设备,所述设备包括处理器和存储器,所述存储器种存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现本发明实施例中所述的点云数据的处理方法。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现本发明实施例中所述的点云数据的处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (17)

1.一种点云数据的处理方法,其特征在于,所述方法包括:
根据原始点云数据中各个点数据的坐标构建对应的K维树;所述原始点云数据为描述线性对象的点云数据;
利用所述K维树搜索所述点数据之间的距离,并根据所述距离对所述点数据按照密度进行聚类,得到多个第一聚类簇;
根据所述点数据之间的距离,对所述第一聚类簇中的点数据进行分段,得到所述点数据对应的至少一个子段;其中,所述至少一个子段中的点数据按照经度方向或纬度方向对应的值排序;
对所述子段进行线性拟合,并根据拟合结果剔除噪点,得到第二聚类簇;
将所述第二聚类簇按照簇之间的距离进行聚合,得到多个点集集合;
将所述点集集合与预设的底图进行匹配,并将匹配到同一个底图元素,或,同一个所述底图元素对应的扩展元素的点集集合进行合并,得到所述原始点云数据对应的预处理结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述距离对所述点数据按照密度进行聚类,包括:
初始化点邻域距离与最小点集数量;
对于所述K维树中的每一个目标点数据,遍历所述K维树中的其他点数据与所述目标点数据之间的第一距离,获取所述第一距离小于所述点邻域距离的点数据的数量;
若所述数量小于所述最小点集数量,则将所述目标点数据标记为第一噪点;若所述数量大于或等于所述最小点集数量,则将所述目标点数据标记为核心点;
将与所述核心点之间的距离小于所述点邻域距离的点数据加入根据所述核心点构建的新簇中,并对所述新簇中的点数据进行标记;
根据所述标记的结果确定所述K维树中的点数据对应的聚类簇,得到多个第一聚类簇。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一聚类簇中的点数据进行分段,包括:
对于所述第一聚类簇中的点数据,分别计算所有点数据的经度值的均方差和纬度值的均方差,得到第一经度均方差和第一纬度均方差;
将所述第一经度均方差和第一纬度均方差两者中较大的均方差对应的方向确定为第一目标方向;
将所述点数据按照所述第一目标方向对应的值进行排序,得到所述第一聚类簇对应的点列表;
确定所述点列表中的起点和终点之间的距离,得到点列表长度;
在所述点列表长度大于预设第一长度的情况下,对所述点列表进行分段,得到所述点数据对应的至少一个子段。
4.根据权利要求1所述的方法,其特征在于,所述对所述子段进行线性拟合,并根据拟合结果剔除噪点,包括:
根据三次多项式函数对所述子段进行初次线性拟合,得到第一拟合函数;根据所述第一拟合函数确定所述子段中的第二噪点,并剔除所述第二噪点,得到所述子段的剩余点数据;
确定所述第一拟合函数是否满足预设的目标条件;
在不满足所述目标条件的情况下,对所述剩余点数据再次进行线性拟合,根据拟合得到的拟合函数确定第三噪点并去除,并对去除所述第三噪点的剩余点数据再次进行线性拟合,直到拟合得到的拟合函数满足预设的目标条件或拟合的次数达到预设的次数阈值;
将满足所述目标条件时所述子段中包括的点数据确定为第二聚类簇,或,将拟合的次数达到所述次数阈值的子段中包括的点数据作为噪点从所述第一聚类簇中剔除。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一拟合函数确定所述子段中的第二噪点,包括:
对于所述子段中的点数据,将所述点数据的经度值代入所述第一拟合函数,得到拟合纬度值;
确定所述点数据的实际纬度值与所述拟合纬度值之间的方差;
将所述方差大于目标均方差的点数据确定为第二噪点;所述目标均方差为所述子段中的各个所述点数据的实际纬度值与所述拟合纬度值之间的方差的平均值。
6.根据权利要求4所述的方法,其特征在于,所述确定所述第一拟合函数是否满足预设的目标条件,包括:
确定所述拟合函数的调整方差,并将所述调整方差与预设的方差阈值进行比较;
若所述调整方差大于或等于所述方差阈值,则确定所述第一拟合函数满足预设的目标条件;
若所述调整方差小于所述方差阈值,则确定所述第一拟合函数不满足所述目标条件。
7.根据权利要求3所述的方法,其特征在于,所述对所述点列表进行分段,包括:
确定所述点列表长度与预设的第二参考长度的大小关系;
根据所述大小关系确定分段长度;
按照所述分段长度对所述点列表中的点数据进行分段,并使分段得到的相邻子段中有目标长度的重叠区域;所述目标长度为所述分段长度的1/2。
8.根据权利要求7所述的方法,其特征在于,所述根据所述大小关系确定分段长度,包括:
若所述点列表长度小于所述第二参考长度,则将所述点列表长度的1/N作为分段长度;
若所述点列表长度大于或等于所述第二参考长度,则将预设的第二长度作为分段长度。
9.根据权利要求1所述的方法,其特征在于,在得到第二聚类簇之后,还包括:
对所述第二聚类簇中的点数据在保留起始点的条件下,按照预设的步长进行抽稀处理。
10.根据权利要求1所述的方法,其特征在于,所述将所述第二聚类簇按照簇之间的距离进行聚合,包括:
从所述第二聚类簇组成的簇集合中提取第一个第二聚类簇,并将所述第一个第二聚类簇作为初始元素,创建第一点集集合;
遍历所述簇集合中的各个待聚合的第二聚类簇,确定所述待聚合的第二聚类簇与所述初始元素的最小距离;
若所述最小距离小于预设的最小距离阈值,则将所述待聚合的第二聚类簇加入所述第一点集集合;若所述最小距离大于或等于所述最小距离阈值,则利用所述待聚合的第二聚类簇创建第二点集集合,并将所述待聚合的第二聚类簇作为所述第二点集集合的初始元素;
从所述簇集合中提取第二个第二聚类簇,并分别确定所述第二个第二聚类簇与所述第一点集集合和所述第二点集集合中的各个元素的最小距离,并利用所述最小距离确定所述第二个第二聚类簇所归属的点集集合;
按照上述方法,得到每个所述第二聚类簇所归属的点集集合,得到多个点集集合。
11.根据权利要求10所述的方法,其特征在于,在从所述第二聚类簇组成的簇集合中提取第一个第二聚类簇之前,还包括:
获取各个所述第二聚类簇的起始点的经度值和纬度值;
确定所有的所述第二聚类簇的起始点的经度值的均方差和纬度值的均方差,得到第二经度均方差和第二纬度均方差;
将所述第二经度均方差和第二纬度均方差两者中较大的均方差对应的方向确定为第二目标方向;
将所述第二聚类簇按照所述第二目标方向对应的值进行排序,得到所述第二聚类簇组成的簇集合。
12.根据权利要求11所述的方法,其特征在于,所述从所述第二聚类簇组成的簇集合中提取第一个第二聚类簇,包括:
从所述第二聚类簇组成的簇集合中提取排序为第一的第二聚类簇。
13.根据权利要求1所述的方法,其特征在于,所述底图元素为车道线,所述将所述点集集合与预设的底图进行匹配,包括:
对所述底图中的各个车道线按照预设长度进行扩展,得到多个扩展车道线;
确定所述点集集合中的点数据与所述多个扩展车道线是否相交;
若存在与所述点数据相交的扩展车道线,则确定所述点集集合与所述相交的车道线匹配;
若不存在与所述点数据相交的扩展车道线,则确定所述点集集合无匹配车道线。
14.根据权利要求1所述的方法,其特征在于,在根据原始点云数据中各个点数据的坐标构建对应的K维树之前,还包括:
利用kafka任务消息从数据库中读取原始点云数据;
所述根据原始点云数据中各个点数据的坐标构建对应的K维树,包括:
利用flink流式处理框架,获取所述原始点云数据中各个点数据的坐标,并根据所述坐标构建对应的K维树。
15.一种点云数据的处理装置,其特征在于,所述装置包括:
K维树构建模块,用于根据原始点云数据中各个点数据的坐标构建对应的K维树;所述原始点云数据为描述线性对象的点云数据;
第一聚类簇确定模块,用于利用所述K维树搜索所述点数据之间的距离,并根据所述距离对所述点数据按照密度进行聚类,得到多个第一聚类簇;
分段模块,用于根据所述点数据之间的距离,对所述第一聚类簇中的点数据进行分段,得到所述点数据对应的至少一个子段;其中,所述至少一个子段中的点数据按照经度方向或纬度方向对应的值排序;
拟合模块,用于对所述子段进行线性拟合,并根据拟合结果剔除噪点,得到第二聚类簇;
点集集合确定模块,用于将所述第二聚类簇按照簇之间的距离进行聚合,得到多个点集集合;
匹配模块,用于将所述点集集合与预设的底图进行匹配,并将匹配到同一个底图元素,或,同一个所述底图元素对应的扩展元素的点集集合进行合并,得到所述原始点云数据对应的预处理结果。
16.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-14任一项所述的点云数据的处理方法。
17.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-14任一项所述的点云数据的处理方法。
CN202210603347.XA 2022-05-31 2022-05-31 一种点云数据的处理方法和装置 Active CN114693855B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210603347.XA CN114693855B (zh) 2022-05-31 2022-05-31 一种点云数据的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210603347.XA CN114693855B (zh) 2022-05-31 2022-05-31 一种点云数据的处理方法和装置

Publications (2)

Publication Number Publication Date
CN114693855A CN114693855A (zh) 2022-07-01
CN114693855B true CN114693855B (zh) 2022-09-06

Family

ID=82131250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210603347.XA Active CN114693855B (zh) 2022-05-31 2022-05-31 一种点云数据的处理方法和装置

Country Status (1)

Country Link
CN (1) CN114693855B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116257735B (zh) * 2023-05-16 2023-07-25 保定思齐智科信息科技有限公司 用于智慧城市治理的数据处理方法及系统
CN116452403B (zh) * 2023-06-16 2023-09-01 瀚博半导体(上海)有限公司 点云数据处理方法、装置、计算机设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111289998A (zh) * 2020-02-05 2020-06-16 北京汽车集团有限公司 障碍物检测方法、装置、存储介质以及车辆

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445928B2 (en) * 2017-02-11 2019-10-15 Vayavision Ltd. Method and system for generating multidimensional maps of a scene using a plurality of sensors of various types
CN111985322B (zh) * 2020-07-14 2024-02-06 西安理工大学 一种基于激光雷达的道路环境要素感知方法
CN112529044B (zh) * 2020-11-20 2022-06-28 西南交通大学 基于车载LiDAR的铁路接触网提取分类的方法
CN114359876B (zh) * 2022-03-21 2022-05-31 成都奥伦达科技有限公司 一种车辆目标识别方法及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111289998A (zh) * 2020-02-05 2020-06-16 北京汽车集团有限公司 障碍物检测方法、装置、存储介质以及车辆

Also Published As

Publication number Publication date
CN114693855A (zh) 2022-07-01

Similar Documents

Publication Publication Date Title
CN114693855B (zh) 一种点云数据的处理方法和装置
CN111192284A (zh) 一种车载激光点云分割方法及系统
CN108984785B (zh) 一种基于历史数据和增量的指纹库的更新方法及装置
CN109145129B (zh) 基于层次三元组损失函数的深度度量学习方法及其装置
CN101477529A (zh) 一种三维对象的检索方法和装置
CN107818338B (zh) 一种面向地图综合的建筑物群组模式识别的方法及系统
CN116071722A (zh) 基于路段轨迹的车道几何信息提取方法、系统、设备及介质
CN115546116A (zh) 全覆盖式岩体不连续面提取与间距计算方法及系统
CN116721001A (zh) 基于数字孪生的智慧城市资源管理方法
CN111340145B (zh) 点云数据分类方法、装置、分类设备
CN109284409B (zh) 基于大规模街景数据的图片组地理定位方法
CN108629315B (zh) 一种针对三维点云的多平面识别方法
CN114253975A (zh) 一种负载感知的路网最短路径距离计算方法及装置
CN113868434A (zh) 图数据库的数据处理方法、设备和存储介质
CN117076520A (zh) 一种基于多维索引树的高效近似查询系统及方法
CN113127485A (zh) 一种输电线路工程测量软件中线状地物的处理方法
CN117197639A (zh) 真值获取方法、装置、电子设备及存储介质
CN112215123A (zh) 一种目标检测方法、装置及存储介质
CN117253205A (zh) 一种基于移动测量系统的道路面点云快速提取方法
CN112800829B (zh) 一种基于三维测量的物体局部破损程度的识别方法
CN115631476A (zh) 一种车道数据处理方法、系统、电子设备及存储介质
CN112015937B (zh) 一种图片地理定位方法及系统
CN114913330A (zh) 点云部件分割方法、装置、电子设备与存储介质
CN115049997A (zh) 边缘车道线的生成方法、装置、电子设备及存储介质
CN113986866A (zh) 一种大规模点云数据的处理方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant