CN113722415A - 点云数据的处理方法、装置、电子设备及存储介质 - Google Patents
点云数据的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113722415A CN113722415A CN202111296660.5A CN202111296660A CN113722415A CN 113722415 A CN113722415 A CN 113722415A CN 202111296660 A CN202111296660 A CN 202111296660A CN 113722415 A CN113722415 A CN 113722415A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- cloud data
- database
- level index
- grid
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供一种点云数据的处理方法、装置、电子设备及存储介质,通过将点云数据所对应的区域划分为二维的格网,分别为每个格网内的点云数据创建不同的第二级索引,并将所有第二级索引创建整个区域的第一级索引,使得在对该区域内的点云数据进行查找等操作时,数据库可以根据第一级索引和第二级索引,以格网为单位对格网内的点云数据分别进行处理,而不用遍历所存储的所有点云数据,从而减少了数据库对点云数据进行处理时的计算量,进而提高了对点云数据的处理效率。
Description
技术领域
本申请涉及电数字数据处理技术领域,尤其涉及一种点云数据的处理方法、装置、电子设备及存储介质。
背景技术
目前,随着电子技术的不断发展,地图所能够呈现给人们的内容也越来越丰富。除了平面地图之外,3D地图、卫星地图以及实景地图的出现都给人们对于地图的感知带来了更加丰富的体验,并能够为用户以及车辆提供更多的例如辅助导航、自动驾驶等服务。
现有技术中,为了实现地图数据的制作,供应商通过地图采集车等地图采集设备对待处理区域内道路的矢量数据进行采集,地图采集车上设置的高精度雷达用于采集点云数据,随后,供应商的后台服务器可以根据地图采集设备所采集的点云数据结合图像等其他数据,共同计算得到地图数据。
采用现有技术,由于所需要处理的点云数据的数量非常庞大,供应商在对点云数据进行读取、查找以及管理等操作时的计算量较大,导致了对点云数据的处理效率较低。
发明内容
本申请提供一种点云数据的处理方法、装置、电子设备及存储介质,用于解决对点云数据进行处理时的计算量较大、处理效率较低的技术问题。
本申请第一方面提供一种点云数据的处理方法,包括:获取从第一数据库中查询目标范围内的点云数据的请求;其中,所述第一数据库中存储有多个区域内的点云数据;根据所述目标范围的位置信息,从第二数据库中查询所述目标范围所在区域的第一级索引;其中,第二数据库中存储有第一级索引和第二级索引,每个所述区域包括按照预设格网形状在经纬度平面上划分为均匀分布的多个格网,所述第二级索引用于指示所述第一数据库中存储的一个格网内的点云数据,所述第一级索引用于指示所述第二数据库中存储的一个区域内的第二级索引;根据所述目标范围的位置信息和所述第一级索引,从所述第二数据库中查询所述目标范围所在区域的至少一个第二级索引;根据所述至少一个第二级索引的指示,从所述第一数据库中获取所述目标范围内的点云数据。
本申请第二方面提供一种点云数据的处理装置,包括:请求获取模块,用于获取从第一数据库中查询目标范围内的点云数据的请求;其中,所述第一数据库中存储有多个区域内的点云数据;索引获取模块,用于根据所述目标范围的位置信息,从第二数据库中查询所述目标范围所在区域的第一级索引,以及根据所述目标范围的位置信息和所述第一级索引,从所述第二数据库中查询所述目标范围所在区域的至少一个第二级索引;其中,第二数据库中存储有第一级索引和第二级索引,每个所述区域包括按照预设格网形状在经纬度平面上划分为均匀分布的多个格网,所述第二级索引用于指示所述第一数据库中存储的一个格网内的点云数据,所述第一级索引用于指示所述第二数据库中存储的一个区域内的第二级索引;点云数据获取模块,用于根据所述至少一个第二级索引的指示,从所述第一数据库中获取所述目标范围内的点云数据。
本申请第三方面提供一种电子设备,包括:处理器以及存储器;其中,存储器中存储有计算机程序,当处理器执行计算机程序时,处理器可用于执行如本申请第一方面任一项所述的点云数据的处理方法。
本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时可用于执行如本申请第一方面任一项所述的点云数据的处理方法。
综上,本申请提供的点云数据的处理方法、装置、电子设备及存储介质,通过将点云数据所对应的区域划分为二维的格网,分别为每个格网内的点云数据创建不同的第二级索引,并将所有第二级索引创建整个区域的第一级索引,使得在对该区域内的点云数据进行查找等操作时,数据库可以根据第一级索引和第二级索引,以格网为单位对格网内的点云数据分别进行处理,而不用遍历所存储的所有点云数据,从而减少了数据库对点云数据进行处理时的计算量,进而提高了对点云数据的处理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所应用的场景的示意图;
图2为本申请提供的点云数据的分布结构示意图;
图3为本申请提供的格网的划分结构示意图;
图4为本申请提供的点云数据的存储结构示意图;
图5为本申请提供的点云数据的处理方法一实施例的流程示意图;
图6为本申请提供的点云数据的处理方法一实施例的流程示意图;
图7为本申请提供的一种点云数据处理方法一实施例的流程示意图;
图8为本申请提供的一种点云数据处理方法一实施例的流程示意图;
图9为本申请提供的一种点云数据处理方法一实施例的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本申请所应用的场景的示意图,其中,本实施例应用于地图数据的供应商,利用地图采集设备采集得到点云数据后,对点云数据进行后续处理的场景中。如图1所示,供应商所设置的数据库1可用于接收并存储点云数据,随后,工作人员3可以使用电脑2获取数据库1内的点云数据,并对点云数据进行后续处理,从而实现制作地图数据。在一些实施例中,数据库1和电脑2可以分开设置,或者在另一些实施例中,数据库1和电脑2还可以通过同一个设备实现。
在上述工作人员3通过电脑2调用数据库1内存储的点云数据,并进行后续处理的过程中,电脑2根据点云数据的处理需要,将频繁地从数据库1中进行点云数据的读取、写入等操作。例如,图2为本申请提供的点云数据的分布结构示意图,如图2所示,假设地图采集设备采集了第一区域10内不同的点云数据11,图中以第一区域10内不同位置杂散分布的黑点表示第一区域10内不同位置处的点云数据11,每个点云数据11中包括该黑点所在位置处的经纬度、高程等测量数据。
则当如图1所示场景中的电脑2需要从数据库1中获取第一区域10内一定范围内的点云数据时,则需要向数据库1输入查询条件,使得数据库1根据查询条件,遍历数据库1中所存储的全部点云数据,最终查找到符合工作人员需求的点云数据。在这个过程中,数据库1所进行的点云数据的查找等处理需要对数据库1中所存储的所有点云数据进行计算,极大地增加了数据库1对点云数据进行处理的计算量,并且在计算过程中对数据库1所具有的参与计算的硬件内存要求较高,严重降低了对点云数据进行处理时的处理效率。
因此,本申请提供一种在数据库1中对点云数据进行存储的数据结构,通过将点云数据所对应的区域划分为二维的格网,并分别为每个格网内的点云数据创建不同的第二级索引,并将所有第二级索引创建整个区域的第一级索引,使得后续对该区域内的点云数据进行查找等操作时,数据库可以根据第一级索引和第二级索引,以格网为单位对格网内的点云数据分别进行处理,而不用遍历所存储的所有点云数据,从而减少了数据库对点云数据进行处理时的计算量,进而提高了对点云数据的处理效率。
具体地,图3为本申请提供的格网的划分结构示意图,示出了本申请实施例中数据库对点云数据进行存储时,在区域中对格网进行划分的结构,其中,记数据库在存储点云数据时,所获取的点云数据为第一区域10内的多个点云数据。则数据库可以将第一区域10在经纬度平面上,按照预设的格网形状,划分为均匀分布的多个格网。例如,在图3中,建立以x-y坐标轴所在平面的经纬度平面,并在x-y轴上,以边长为d的正方形格网,对整个第一区域10进行划分,可以得到第一区域内的6行(y1~y6)7列(x1~x7)共42个正方形格网。
可选地,对于如图3所示的第一区域内按照行列所划分的多个格网,可以按照先行后列的规律对其中的格网进行标号(ID)为1、2、3、4、5……,每行结束后按顺序排列下一行的格网。则对于第一区域内的任一点P(Px,Py),可以按照其与x-y坐标系的原点P0(P0x,P0y)之间的相对关系进行计算,得到其行列号col=(Px - P0x)/d,行号row=(Py - P0y)/d,进而结合总列数colcount,得到其标识信息ID=row*colcount+col。
进一步地,基于图3中所划分的格网,本申请实施例中以八叉树的数据结构,存储每个格网内的点云数据,则对于如图3所示的第一区域内的点云数据,将按照42个格网被划分为42个独立的点云文件集,每个文件集仅用于存储该格网内的点云数据。图4为本申请提供的点云数据的存储结构示意图,如图4所示,本申请提供两个数据库,记为第一数据库和第二数据库,其中,第一数据库用于存储点云数据,而第二数据库用于存储第一数据库中点云数据的索引。在一些实施例中,第一数据库和第二数据库可以是独立的数据库,或者,第一数据库和第二数据库可以是如图1所示场景中,数据库内的两个独立的存储空间。
具体地,第一数据库中的数据可以被划分为第一级数据和第二级数据,在第一级数据中,第一数据库提供多个区域的格网根节点,以图3所示的第一区域10为例,第一区域10整体的格网根节点在第一区域10内划分M个格网后,将M个格网内的点云数据进一步作为第一区域10的格网根节点的M个子节点。在第二级数据中,每个格网内的子节点以八叉树的形式存储该格网内的点云数据。结合图3和图4,对于第一区域10内第y5行、第x2列的格网子节点,通过八叉树根节点a,按照该格网内点云数据所在的经纬度、高程的三维空间,划分为八个八叉树子节点b,每个八叉树子节点b又可以进一步划分为八叉树子节点c,依次类推,可以将格网内全部点云数据映射到不同的八叉树节点内,实现通过一个八叉树根节点,对于格网内所有点云数据的存储。
如图4所示第二数据库可以通过建立第一级索引和第二级索引,分别用于指示第一数据库中所存储的第一级数据和第二级数据,使得后续可以通过第一级索引和第二级索引,实现对第一数据库中存储的不同区域格网内点云数据的查找。
在一些实施例中,第一级索引用于指示第二数据库中存储的多个第二级索引,例如,第一级索引可以包括多个不同区域的格网根节点的信息与格网根节点的对应关系,假设第一数据库中存储了p个区域的格网根节点,则第一级索引可以建立这p个格网根节点的信息(例如位置信息、表示信息等)与该格网根节点的映射关系,在该映射关系中,包括了每个格网根节点的信息与格网根节点的一一对应关系:“格网根节点的信息1-格网根节点1”、“格网根节点的信息2-格网根节点2”……“格网根节点的信息p-格网根节点p”等。
第二级索引用于指示第一数据库中存储的一个格网内的点云数据,例如,第二索引可以包括格网根节点与格网子节点的对应关系,每个格网子节点为第一数据库中一个格网内的八叉树根节点。假设第一级索引中格网根节点的信息1对应的格网根节点1,则第二级索引1可以包括格网根节点1,以及格网的信息1所指示的不同格网内的八叉树的根节点的对应关系,则通过八叉树的根节点可以进一步确定根节点下的八叉树叶子节点,进而确定格网根节点所指示的格网内的点云数据。在具体的实现中,第二级索引中还可以包括格网内所有点云数据的其他信息,例如,格网的标识信息,格网内点云数据的数量信息,格网内点云数据的位置信息、强度数据、GPS数据的取值信息,以及格网内点云数据的索引信息等。其中,位置信息包括:经度数据、纬度数据、高程数据等,格网内的点云数据的索引信息为八叉树形式,从而能够指示第一数据库中八叉树形式存储的格网内的点云数据。
可选地,在一种具体的实现方式中,第二级索引可以通过如下表1中的结构进行存储,后续可以通过表1中的信息对格网中的点云数据进行筛选、查找等工作。例如,可以通过格网的标识信息,从表1中查找到对应的格网内点云数据的八叉树根节点,进而确定该格网内的点云数据。
表1
存储内容的符号表示 | 数据类型 | 存储内容的描述 |
m_iId | Int | 格网的标识信息(索引号或ID) |
m_iPointCount | Int | 格网单元内点云数据的数量 |
m_iStarIndex | Int | 格网单元内首点标识信息 |
m_dMinX | double | 格网单元内最小x值 |
m_dMinY | double | 格网单元内最小y值 |
m_dMinZ | double | 格网单元内最小z值 |
m_dMaxX | double | 格网单元内最大x值 |
m_dMaxY | double | 格网单元内最大y值 |
m_dMaxZ | double | 格网单元内最大z值 |
m_dMinIntensity | double | 格网单元内最小强度值 |
m_dMaxIntensity | double | 格网单元内最大强度值 |
m_dMinGPSTime | double | 格网单元内最小GPS值 |
m_dMaxGPSTime | double | 格网单元内最大GPS值 |
m_vecOutputPnts | vector<_Point> | 格网单元内点云数据的根节点 |
m_vecOutputIndex | vector<int> | 格网单元内点云序号索引数组 |
可选地,如表1所示,第二索引信息可以通过二进制形式,以Irx格式的文件进行存储,第二索引信息的后缀可以是“.Irx”,每个第二索引信息的长度可以为92个字节。第二索引信息可以包括:格网索引号、格网单元内点云数量、格网单元内首点索引号、格网单元内最大最小坐标值(x,y,z)、格网单元内最大最小强度值、格网单元内最大最小GPS值等,可参考格网单元的信息GridInfo结构。在如图表1所示的格网索引信息中,格网索引号作为格网单元的检索标识;坐标范围、强度范围和GPS时范围用于支持不同类型条件对格网单元的筛选,从而实现格网的快速检索;格网单元内首点索引号为该格网单元内所有点云在映射点云文件中的首点位置(映射点云文件中将同一格网单元内的点云连续存储),通过首点索引号和格网单元内点云数量可以获取该格网单元在映射点云文件中实际点云数据。格网单元内点云数据的根节点可用于通过八叉树的形式,指示该格网内的点云数据。
可选地,如图4中的第二级数据,可以通过las格式的文件进行存储,las文件名可以为格网索引号,其内容为对应格网单元内的点云数据。并且由于车载激光点云文件中的点云是按照采集顺序存储,其连续数据段内的点云空间分布不规则,这导致在加载规则区域内的点云数据时需要在车载点云文件中跳跃的读取相应数据段,降低了数据的读取效率。因此在第二级数据中,对点云的排列顺序进行了修改,其修改原则为:同一格网单元内的点云存储在同一las文件中;同一格网单元内的点云随机排序。
基于本实施例上述实施例中提供的数据库中,按照格网为单位对点云数据进行存储的数据结构,本申请还提供相应的点云数据的处理方法,可用于获取到点云数据后,将所获取的点云数据按照格网为单位的数据结构在第一数据库进行存储,并创建第一级索引和第二级索引在第二数据库进行存储。图5为本申请提供的点云数据的处理方法一实施例的流程示意图,如图5所示的点云数据的处理方法可应用于如图1所示的场景中,当数据库1获取到地图采集设备所采集的点云数据后,在电脑2或者数据库1自身的控制下,对所获取的点云数据进行存储。具体地,如图5所示的点云数据的处理方法包括:
S101:获取多个点云数据,其中,多个点云数据的位置信息对应于同一个区域内。
具体地,在本实施例中,以执行主体为图1所示场景中的数据库作为示例,并结合图3所示的第一区域,在S101中,数据库可以在获取到图3中所有的点云数据后,确定其在经纬度坐标轴内所对应的第一区域。在图3中以第一区域为矩形作为示例,在其他可能的实现方式中,第一区域也可以是圆形、三角形等其他形状。
可选地,在一种具体实现方式中,当点云数据是由众包车辆等提供的,数据库并不能提前确定所接收到的多个点云数据所对应的区域,则可以根据所有点云数据中的经纬度等信息确定这些点云数据所在的第一区域。在另一种具体实现方式中,数据采集车辆在工作人员的控制下,在指定的第一区域内采集点云数据后发送给数据库,此时,数据库可以提前确定所获取的多个点云数据所对应的第一区域。
S102:按照预设网格形状,将区域在经纬度平面上划分为均匀分布的多个网格。
随后,在作为执行主体的数据库将S101中所确定的区域,按照预设格网形状划分为多个格网。结合图3所示的示例,对于矩形的第一区域10,预设格网形状可以是边长为d的正方形,则可以将第一区域10沿经纬度平面的平面坐标系坐标轴方向,划分为均匀分布的正方形网格。其中,正方形的边长d可以是指定的、也可以是提前设置的,或者可以是根据当前点云数据的数量进行动态调整的。
可选地,对于S101-S102的过程,在具体实现中,数据库在获取到点云数据后,可以在首先读取点云数据的四至信息,构建最小包络矩形得到第一区域的边界。其中,该矩形区域的矩形左下角为四至信息中最小x值与最小y值对应的点,右上角为四至信息中最大x值与最大y值对应的点。随后,在格网划分完成后,可以对该格网的起点坐标P0(左下角点)、格网边长d和总列数colCount等基础信息进行记录。
S103:根据多个点云数据的位置信息和多个格网的相对位置关系,创建多个网格对应的多个第二级索引。
具体地,经过S102将第一区域划分为不同的格网之后,在S103中,数据库对每个格网内的点云数据进行分别处理,为每个格网内的点云数据创建第二级索引。其具体实现可以为表1所示,使得在第二级索引的表格内包括该格网的信息与八叉树根节点的对应关系,后续可以通过格网的信息查找到八叉树根节点进而获取到点云数据。
其中,在对每个点云数据进行处理时,分别根据当前点云数据的位置信息,与多个格网的相对位置关系,使用每个格网内的点云数据创建该格网对应的第二级索引。例如,在图3所示的示例中,在创建第y5行、第x2列的格网的第二级索引时,根据所获取的多个点云数据的位置信息,先找出该格网内的点云数据,随后根据该格网内的点云数据的信息,共同得到如表1所示的第二级索引中的信息和数据。
S104:根据S103中的多个第二级索引,创建区域内的第一级索引。
具体地,经过S103将对区域内的所有格网分别建立第二级索引之后,在S104中,数据库建立整个区域内所有格网的第一级索引,使得后续可以通过第一级索引查找到该格网内的所有第二级索引。
S105:分别通过第一数据库存储S101中所获取的多个点云数据,通过第二数据库存储S103中得到的第二级索引和S104中得到的第一级索引,其基本结构如图4所示,使得第一数据库存储数据、第二数据库用于存储索引后,后续可以通过第二数据库中的第一级索引和第二级索引,以格网为单位更加快速、有效地对第一数据库中存储的点云数据进行处理。
可选地,如图5所示的点云数据的处理方法在实际实现的过程中,作为执行主体的数据库一次获取的点云数据的数量较为庞大,对处理点云数据的内存提出了更高的要求,因此,本申请实施例在具体执行时,数据库在接收到包括多个点云数据的原始点云数据集合后,按照数据库单次的处理能力,将原始点云数据集合进行划分为不同的子集合,并通过分批次处理的思路,依次将每个子集合内的点云数据通过如图5所示的方式进行处理,在不影响点云数据处理效率的情况下,保证硬件设备不会处理超出其处理内存的点云数据量,减少对内存等硬件配置的需求。
随后,当点云数据所划分的多个不同的部分分别依次通过S102-S104创建第一级索引和第二级索引后,数据库可以将所有的第一级索引所指示的第二级索引进行合并,使得通过一个第一级索引可以指示该区域内每个格网的所有的点云数据。从而能够通过相应的全局格网信息更新、重复格网数据处理等操作,将时间消耗占比较多的点云数据读写次数降到最低,最优只需进行一次全量点云数据的读取和写出(无重复格网),最差只需进行两次全量点云数据的读取和写出(全部格网均存在重复),通常仅需对小比例的格网进行第二次的点云数据读写操作。
进一步地,当数据库通过如图5所示的方式,对获取的点云数据集合进行存储后,可以通过如图6所示的方法,对点云数据进行筛选及查找等操作。例如,图6为本申请提供的点云数据的处理方法一实施例的流程示意图,如图6所示的点云数据的处理方法可应用于如图1所示的场景中,当工作人员3通过电脑2对数据库1中的点云数据进行查询、检索,或者进行点云数据的可视化等操作时,由电脑2或者数据库1执行。具体地,如图6所示的点云数据的处理方法包括:
S201:获取从第一数据库中查询目标范围内的点云数据的请求。
确具体地,本实施例中以数据库为执行主体作为示例,则数据库可以根据电脑发送的指示信息确定此时需要查询从第一数据库中查询目标范围内的点云数据,例如,工作人员在使用电脑对一个目标范围进行点云数据的可视化渲染时,电脑可以向数据库发送查询信息,则当数据库在接收到电脑对第一区域内该目标范围的点云信息的查询信息后,确定需要查询从第一数据库中查询目标范围内的点云数据。或者,数据库可以在其他任意处理过程中,确定需要查找目标范围的点云数据后。
S202:根据目标范围的位置信息,从第二数据库中查询目标范围所在区域的第一级索引。
在一些实施例中,可以根据目标范围的经纬度等位置信息,与第二数据库中第一级索引的经纬度信息进行比对,从而确定目标范围所对应的第一级索引。可以理解的是,当目标范围的面积小于第一级索引所对应的面积,则根据目标范围的经纬度等位置信息,可以确定出该目标范围所在的区域的第一级索引;而当目标范围的面积大于第一级索引所对应的面积,则根据目标范围的经纬度等位置信息,可以确定出多个第一级索引。
S203:根据S202中确定的第一级索引,结合目标范围的位置信息,从第二数据库中进一步确定出目标范围所在区域的至少一个第二级索引。
其中,可以根据第二数据库中的第一级索引中,进一步确定第一级索引的格网对应的第二级索引。有关第一级索引的描述可以参考图4所示的实施例,不再赘述。在一些实施例中,可以根据目标范围的经纬度等位置信息,与第二数据库中第一级索引所指示的每个第二级索引的位置信息进行比对,判断第二级索引对应的位置是否在目标范围所在区域内,并最终从第一级索引指示的多个第二级索引中确定对应的位置在目标范围内的至少一个第二级索引。
S204:根据S203中确定的至少一个第二级索引的指示,从第一数据库中获取S201中所请求的目标范围内的点云数据。参考图4所示的点云数据结构,此时可以根据第二数据库中至少一个第二级索引的指示,从第一数据库中获取格网对应的八叉树根节点,进一步找到该根节点下的叶子节点,进而得到格网内的所有点云数据。
综上,在本申请如图5和图6所示的点云数据的处理方法中,通过将点云数据所对应的区域划分为二维的格网,并在每个格网内分别通过八叉树的数据结构存储并索引该格网内的点云数据,使得后续对点云数据进行查找等操作时,数据库可以根据第一级索引和第二级索引格网为单位对格网内的点云数据分别进行处理,而不用遍历所存储的所有点云数据,从而减少了对点云数据进行处理时的计算量,进而提高了对点云数据的处理效率。
其中,由于车载激光点云形态多样、分布不均、数据量大且覆盖区域广,通过第一级索引对点云数据进行水平范围的切分,利于将海量数据进行过滤,且格网单元结构简单、区域划分均匀,利于空间检索;随后通过第二级索引,针对每一个格网单元内的小数据量点云,其三维特征更加明显,利用八叉树索引可有效管理,便于快速检索。这样格网加八叉树的索引组合能够有效实现海量数据的管理,并用于动态渲染和全量数据检索。经过实现数据显示,使用本实施例如图5所示的方式创建索引时,平均创建效率可达到6s/G。
在上述如图5和如图6所示的点云数据的处理方法的基础上,本申请还提供一种上述点云数据处理方法的具体的应用方法,在实现点云数据的动态瓦片渲染,以及实现快速的全局点云数据检索等处理时,可以基于本申请提供的点云数据处理方法。下面结合附图7-图9,对本申请提供的点云数据处理方法的一种具体实现方式进行说明。
图7为本申请提供的一种点云数据处理方法一实施例的流程示意图,如图7所示的整个流程包括数据预处理和数据渲染两个阶段。其中,在数据预处理阶段,当数据库获取原始点云数据(即本申请实施例中S101中所获取的多个点云数据)后,在进行索引创建工作前,根据设备的可用运行内存和待处理数据大小,将原始点云数据划分为多个子集合,并将子集合数量确定为数据处理的批次数,保证每一批次处理时内存的低占用。随后,对于每一批次的点云数据,分别按照如图5所示的方式,进行格网信息的并行维护、映射点云文件集的并行创建,并对不同批次中出现的重复格网信息进行记录。当所有批次遍历处理完成后,根据上一流程中的重复格网信息对重复格网文件进行并行的合并处理,并根据格网信息创建格网索引文件。在数据渲染阶段,将每一批次的点云数据按照如图6所示的方式,根据视口的区域依据格网索引文件快速筛选待渲染的格网,然后在加载带渲染格网点云数据时以格网单元为单位同步创建八叉树,以满足后续对点云的快速检索,并且对所述第一网格内的点云数据进行渲染得到可视化点云数据,并通过电脑提供的显示页面,向工作人员显示渲染后的可视化点云数据。
最终,通过本实施例中如图7所示的点云数据处理方法,在数据预处理阶段基于二维平面范围创建格网索引,对海量数据进行规则划分;在数据渲染阶段,对待渲染区域格网建立其各自的八叉树索引,实现三维数据的快速检索,从而满足海量车载点云数据的动态渲染和检索编辑。并且采取映射点云文件集的方式存储每个格网单元内的点云数据,并以此为基础设计了多批次处理的动态数据管理方案,实现了索引创建各个阶段的并行处理,与格网单元相映射的点云文件集,支持索引创建过程中“点云数据的读取”、“索引信息创建”、“映射数据生成”和“重复格网合并”的并行操作,处理效率提升,因此,摆脱了海量点云索引创建对硬件处理内存的依赖,在不增加硬件成本投入的基础上保证了索引创建的高效性。
更为具体地,如图8为本申请提供的一种点云数据处理方法一实施例的流程示意图,如图8示出了图7中创建格网信息的具体实现方式,其中,作为执行主体的数据库在接收到单一批次的原始点云数据集合后,根据处理器的数量/处理器的核数N(能够并行执行任务的数量),将原始点云数据集合中的点云数据平均划分为N个子集合,记为点云数组,并在处理中创建并行的N个处理线程,分别处理这N个点云数组。将每个点云数组按照如图3所示的方式进行格网的划分,同时创建一个map容器来记录每个格网单元的信息GridInfo,该GridInfo信息具体可以通过表1实现。则在并行处理过程中,每一线程内遍历点云数据,计算每一点的格网索引并根据索引号将该点存入对应GridInfo中并更新相关信息,并同时监听线程处理进度,当所有线程处理结束后,创建该批次格网信息。
可选地,如图9为本申请提供的一种点云数据处理方法一实施例的流程示意图,如图9示出了图7中映射点云文件集创建流程的具体实现方式,其中,根据处理器核数对格网信息进行平分并创建相应处理线程;每一线程内遍历格网单元信息,根据格网信息创建点云文件公共头部分;格网内点云随机排序,按照新排序逐点更新点云记录,并生成点云文件。在上述生成点云文件的过程中,遵循原则一:保证加载同一网格单元内的点云数据时可以按顺序加载,从而提高数据读取效率。原则二:保证选取同一格网单元中任意比例的点云量,均能反应该格网单元点云的几何分布形态,利于数据的动态渲染和多层次渲染。进而实现采取映射点云文件集的方式存储每个格网单元内的点云数据,实现了索引创建各个阶段的并行处理,处理效率较传统单文件处理提高一个量级,并且在实际项目应用中,可根据需要对点云文件集进行合并,以便于数据管理和传递。
可选地,在如图7所示的示例中,在数据渲染阶段的查找点云数据的过程可以参照如图6所示的方法,其中,当数据库根据查询信息,遍历格网单元信息,确定用户正使用电脑进行待渲染的格网单元,随后通过查询第二级索引,查找映射点云数据,若点云文件集未合并,根据待渲染格网单元的索引号即可确定该格网单元对应的las文件(以索引号命名);若点云文件集已合并,可根据格网单元信息中的首点索引号和格网单元内点云数量确定合并后las文件中对应待渲染格网单元的数据字段。最终进行点云数据的读取,顺序读取点云数据,由于点云数据的存储顺序为随机排序,同一格网单元中任意比例的点云量,均能反应该格网单元点云的几何分布形态,利于数据的动态渲染和多层次渲染,因此在八叉树中,也可以不存储网格内全部的点云数据,而是存储其中任意部分的点云数据。
在前述实施例中,对本申请实施例提供的点云数据的处理方法进行了介绍,而为了实现上述本申请实施例提供的方法中的各功能,作为执行主体的设备/服务器可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
例如,本申请还提供一种点云数据的处理装置包括:请求获取模块,用于获取从第一数据库中查询目标范围内的点云数据的请求;其中,第一数据库中存储有多个区域内的点云数据;索引获取模块,用于根据目标范围的位置信息,从第二数据库中查询目标范围所在区域的第一级索引;其中,第二数据库中存储有第一级索引和第二级索引,每个区域包括按照预设格网形状在经纬度平面上划分为均匀分布的多个格网,第二级索引用于指示第一数据库中存储的一个格网内的点云数据,第一级索引用于指示第二数据库中存储的一个区域内的第二级索引;点云数据获取模块,用于根据至少一个第二级索引的指示,从第一数据库中获取目标范围内的点云数据。
具体地,点云数据的处理装置中的各模块分别执行的上述步骤的具体原理及实现方式可参考本申请前述实施例中的点云数据的处理方法,不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk (SSD))等。
本申还提供一种电子设备,包括:处理器以及存储器;其中,存储器中存储有计算机程序,当处理器执行计算机程序时,处理器可用于执行如本申请前述实施例中任一的点云数据的处理方法。
本申请还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被执行时可用于执行如本申请前述实施例中任一的点云数据的处理方法。
本申请实施例还提供一种运行指令的芯片,所述芯片用于执行如本申请前述任一实施例中由电子设备所执行的点云数据的处理方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种点云数据的处理方法,其特征在于,包括:
获取从第一数据库中查询目标范围内的点云数据的请求;其中,所述第一数据库中存储有多个区域内的点云数据;
根据所述目标范围的位置信息,从第二数据库中查询所述目标范围所在区域的第一级索引;其中,第二数据库中存储有第一级索引和第二级索引,每个所述区域包括按照预设格网形状在经纬度平面上划分为均匀分布的多个格网,所述第二级索引用于指示所述第一数据库中存储的一个格网内的点云数据,所述第一级索引用于指示所述第二数据库中存储的一个区域内的第二级索引;
根据所述目标范围的位置信息和所述第一级索引,从所述第二数据库中查询所述目标范围所在区域的至少一个第二级索引;
根据所述至少一个第二级索引的指示,从所述第一数据库中获取所述目标范围内的点云数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取多个点云数据;所述多个点云数据的位置信息在同一个区域内;
按照预设格网形状,将所述区域在经纬度平面上划分为均匀分布的多个格网;
根据所述多个点云数据的位置信息和所述多个格网的相对位置关系,创建多个第二级索引;其中,每个所述第二级索用于指示所述多个格网中一个格网内的点云数据;
根据所述多个第二级索引,创建所述区域内的第一级索引;
通过所述第一数据库存储所述多个点云数据,通过所述第二数据库存储所述第一级索引和所述多个第二级索引。
3.根据权利要求1或2所述的方法,其特征在于,
所述第二级索引包括:格网的标识信息,格网内点云数据的数量信息,格网内点云数据的位置信息、强度数据、GPS数据,以及格网内的点云数据的索引信息;其中,所述位置信息包括经度数据、纬度数据、高程数据,所述格网内的点云数据的索引信息为八叉树形式。
4.根据权利要求3所述的方法,其特征在于,根据所述第一级索引的指示和所述目标范围的位置信息,从所述第二数据库中查询所述目标范围所在区域的至少一个第二级索引,包括:
根据所述目标范围的位置信息,与所述第一级索引所指示的所述第二数据库中的多个第二级索引中的位置信息进行比对,判断所述多个第二级索引对应的位置是否处于所述目标范围内;
从所述多个第二级索引中,确定对应的位置是否处于所述目标范围内的至少一个第二级索引。
5.根据权利要求3所述的方法,其特征在于,所述根据所述至少一个第二级索引的指示,从所述第一数据库中获取所述目标范围内的点云数据,包括:
根据所述至少一个第二索引中的点云数据的索引信息的指示,从所述第一数据库中获取所述目标范围内的点云数据。
6.根据权利要求2所述的方法,其特征在于,还包括:
获取原始点云数据集合;
按照预设规则,将所述原始点云数据集合拆分为多个子集合,每个子集合包括多个点云数据;
创建每个所述子集合中多个点云数据的第一级索引和第二级索引,并通过所述第一数据库存储所述子集合中的多个点云数据,通过所述第二数据库存储所述第一级索引和所述多个第二级索引。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述第二数据库中存储的对应于相同的格网的多个第二级索引合并,并将所述多个第二级索引中相同的格网对应的点云数据合并。
8.一种点云数据的处理装置,其特征在于,包括:
请求获取模块,用于获取从第一数据库中查询目标范围内的点云数据的请求;其中,所述第一数据库中存储有多个区域内的点云数据;
索引获取模块,用于根据所述目标范围的位置信息,从第二数据库中查询所述目标范围所在区域的第一级索引,以及根据所述目标范围的位置信息和所述第一级索引,从所述第二数据库中查询所述目标范围所在区域的至少一个第二级索引;其中,第二数据库中存储有第一级索引和第二级索引,每个所述区域包括按照预设格网形状在经纬度平面上划分为均匀分布的多个格网,所述第二级索引用于指示所述第一数据库中存储的一个格网内的点云数据,所述第一级索引用于指示所述第二数据库中存储的一个区域内的第二级索引;
点云数据获取模块,用于根据所述至少一个第二级索引的指示,从所述第一数据库中获取所述目标范围内的点云数据。
9.一种电子设备,其特征在于,包括:处理器以及存储器;其中,存储器中存储有计算机程序,当处理器执行计算机程序时,处理器可用于执行如权利要求1-8任一项所述的点云数据的处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时可用于执行如权利要求1-8任一项所述的点云数据的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111296660.5A CN113722415B (zh) | 2021-11-04 | 2021-11-04 | 点云数据的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111296660.5A CN113722415B (zh) | 2021-11-04 | 2021-11-04 | 点云数据的处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113722415A true CN113722415A (zh) | 2021-11-30 |
CN113722415B CN113722415B (zh) | 2022-02-11 |
Family
ID=78686634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111296660.5A Active CN113722415B (zh) | 2021-11-04 | 2021-11-04 | 点云数据的处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113722415B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114693505A (zh) * | 2022-06-01 | 2022-07-01 | 中汽创智科技有限公司 | 一种点云数据的存储处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544249A (zh) * | 2013-10-11 | 2014-01-29 | 北京建筑大学 | 一种古建筑散乱点云空间索引的方法 |
CN106407408A (zh) * | 2016-09-22 | 2017-02-15 | 北京数字绿土科技有限公司 | 一种海量点云数据的空间索引构建方法及装置 |
US20190362000A1 (en) * | 2018-05-25 | 2019-11-28 | TmaxData Co., Ltd. | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor |
CN113190723A (zh) * | 2021-05-19 | 2021-07-30 | 云南电网有限责任公司电力科学研究院 | 一种基于网格化的点云数据检索方法 |
CN113496543A (zh) * | 2020-04-02 | 2021-10-12 | 北京京东叁佰陆拾度电子商务有限公司 | 一种点云数据筛选方法、装置、电子设备和存储介质 |
-
2021
- 2021-11-04 CN CN202111296660.5A patent/CN113722415B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544249A (zh) * | 2013-10-11 | 2014-01-29 | 北京建筑大学 | 一种古建筑散乱点云空间索引的方法 |
CN106407408A (zh) * | 2016-09-22 | 2017-02-15 | 北京数字绿土科技有限公司 | 一种海量点云数据的空间索引构建方法及装置 |
US20190362000A1 (en) * | 2018-05-25 | 2019-11-28 | TmaxData Co., Ltd. | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor |
CN113496543A (zh) * | 2020-04-02 | 2021-10-12 | 北京京东叁佰陆拾度电子商务有限公司 | 一种点云数据筛选方法、装置、电子设备和存储介质 |
CN113190723A (zh) * | 2021-05-19 | 2021-07-30 | 云南电网有限责任公司电力科学研究院 | 一种基于网格化的点云数据检索方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114693505A (zh) * | 2022-06-01 | 2022-07-01 | 中汽创智科技有限公司 | 一种点云数据的存储处理方法和装置 |
CN114693505B (zh) * | 2022-06-01 | 2022-09-06 | 中汽创智科技有限公司 | 一种点云数据的存储处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113722415B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6032467B2 (ja) | 時空間データ管理システム、時空間データ管理方法、及びそのプログラム | |
CN109165215B (zh) | 一种云环境下时空索引的构建方法、装置及电子设备 | |
CN107220285B (zh) | 面向海量轨迹点数据的时空索引构建方法 | |
CN106528787B (zh) | 一种基于海量数据多维分析的查询方法及装置 | |
CN107153711A (zh) | 地理信息数据处理方法及装置 | |
US9798808B2 (en) | Data visualization system | |
CN108205562B (zh) | 地理信息系统的定位数据存储、检索方法及其装置 | |
CN110765331A (zh) | 一种时空数据的检索方法及系统 | |
CN110287426B (zh) | 兴趣点父子关系的建立方法、装置、存储介质及处理器 | |
CN113268557B (zh) | 一种适应显示导向型可视化分析的快速的空间索引方法 | |
CN113946575A (zh) | 时空轨迹数据处理方法、装置、电子设备及存储介质 | |
CN111104457A (zh) | 基于分布式数据库的海量时空数据管理方法 | |
CN113934686A (zh) | 面向海量机载激光点云的分布式多级空间索引方法 | |
CN113722415B (zh) | 点云数据的处理方法、装置、电子设备及存储介质 | |
CN116467540B (zh) | 一种基于HBase的海量空间数据快速可视化方法 | |
CN113449052A (zh) | 空间索引的建立方法、空间区域查询方法及装置 | |
CN116186571B (zh) | 车辆聚类方法、装置、计算机设备及存储介质 | |
CN110674134B (zh) | 一种地理信息数据存储方法、查询方法及装置 | |
CN112245932A (zh) | 游戏资源的处理方法、装置以及服务端设备 | |
CN117009411A (zh) | 一种基于点云数据网格化空间存储与索引方法、装置及计算机可读存储介质 | |
CN115952252A (zh) | 数据处理方法、装置、电子设备和介质 | |
CN115718824A (zh) | 一种通过空间距离判定设备位置自动推送设备信息的方法 | |
CN110297952B (zh) | 一种基于网格索引的并行化高速铁路勘测数据检索方法 | |
CN112184900B (zh) | 高程数据的确定方法、装置及存储介质 | |
CN114116925A (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 |