CN112508767A - 一种基于gpu的gmm点云配准算法 - Google Patents
一种基于gpu的gmm点云配准算法 Download PDFInfo
- Publication number
- CN112508767A CN112508767A CN202011476228.XA CN202011476228A CN112508767A CN 112508767 A CN112508767 A CN 112508767A CN 202011476228 A CN202011476228 A CN 202011476228A CN 112508767 A CN112508767 A CN 112508767A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- gpu
- axis
- search
- pose
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例中提供了一种基于GPU的GMM点云配准算法,属于计算机技术领域,具体包括,提取目标点云的XYZ坐标数据并描绘其特征信息,包括将目标点云数据存储至GPU,绘制基底直方图条目和计算高斯分布;提取源点云的XYZ坐标数据;设定位姿搜索参数;位姿搜索预处理,包括在GPU分配数组空间、分配GPU并行空间和计算得到变换点云集;层次化位姿搜索,包括分配GPU顶层搜索并行空间、计算得到搜索点云集、逐层级搜索直到找到最优位姿并输出。通过本申请的处理方案,解决了传统算法在计算时出现的过拟合和数值错误的问题,提高了GMM点云配准计算速度。
Description
技术领域
本申请涉及点云配准计算机技术领域,尤其涉及一种基于GPU的GMM点云配准算法。
背景技术
点云配准是指通过计算,求出两帧点云之间刚性变换(Rigid Transformation)的过程,即将源点云(source cloud)变换到目标点云(target cloud)相同的坐标系下:Pt=R×PS+t。其中,Pt,Ps分别是目标点云和源点云, R是旋转矩阵,t是平移向量。
在车辆定位中,点云配准任务的目标是求出将车载激光雷达扫描点云 (sourcecloud)转换至全局地图(target cloud)坐标系下的旋转矩阵和平移向量。
激光雷达被广泛运用在高级别自动驾驶方案中。与传统图像相比,激光雷达可以描述物体的深度信息,这样的特征使激光雷达可以更有效的还原物体在三维空间中的位置信息。利用这样的特征,配准任务可以根据目标和源点云中物体的位置信息完成两帧点云的配准。在实际应用中,点云配准可以辅助组合导航,如IMU,GPS,里程计对定位结果进行校准。
现有的GMM(Gaussian Mixture Maps)点云配准利用EM算法(EstimationMaximum)以Z轴为基础,在基底直方图中迭代拟合多个高斯分布对目标点云进行特征描述,再通过不同的网格分辨率完成对最优位姿的层次化搜索。
目前,传统的基于GMM的点云配准算法有以下几点不足:(1)传统GMM 采用EM算法在单个直方图当中拟合若干个高斯分布用以描绘目标点云信息,该算法可能在迭代若干次后过拟合并出现数值问题;(2)在CPU上运行该算法时需要进行高密度计算,计算速度慢,无法保证算法的低延时。
发明内容
有鉴于此,本申请实施例提供一种基于GPU的GMM点云配准算法,是一种传统GMM配准,解决传统方法中利用EM算法对目标点云进行描绘时出现的过拟合及数值异常问题,并利用GPU的并行计算架构降低点云配准任务的延时,以解决使用CPU完成点云配准任务时计算速度过慢的问题。
为了解决上述技术问题,本发明采用的技术方案为:
第一方面,本申请实施例提供一种基于GPU的GMM点云配准算法,具体包括以下步骤:
提取目标点云的XYZ坐标数据并描绘其特征信息,包括:将目标点云的XYZ坐标数据从CPU内存拷入GPU显存并分别存储;绘制基底直方图条目;基于K-Means聚类算法对所述基底直方图条目的点分类;计算所述基底直方图条目各类点的高斯分布并获得高斯分布参数;
提取源点云的XYZ坐标数据:在GPU显存中开辟数组空间,将源点云XYZ 坐标数据从CPU内存拷入GPU显存并分别储存;
设定位姿搜索参数;
位姿搜索预处理,得到经过不同航向角旋转的变换点云集并存储;
层次化位姿搜索,得到经过不同搜索组合变换的搜索点云集并输出最优位姿。
根据本申请实施例的一种具体实现方式,所述提取目标点云的XYZ坐标数据并描绘其特征信息,具体过程为:
步骤1.1:在GPU显存中开辟3个数组空间,将目标点云的XYZ坐标数据从CPU内存拷入GPU显存并将XYZ数据分别储存在所述3个数组空间中,以便在后续读取时实现对GPU内存的合并访问;
步骤1.2:在GPU上利用线束级操作完成快速归约算法,找到目标点云X,Y 数据的最大最小值;
步骤1.3:依据此边界及预设基底网格分辨率将目标点云在X,Y平面上划分成边长相等的若干基底直方图条目;
步骤1.4:为目标点云中的每一个点分配一个GPU线程,根据各个点的X,Y 坐标数据将各个点映射至所属基底直方图条目中;
步骤1.5:根据实时动态信息获取各个基底直方图的高程,并作为当前基底直方图的地面高度基准;
步骤1.6:为每一个基底直方图分配一个GPU线程,遍历基底直方图当中所有的点,根据每个点的Z轴信息以及该基底直方图的地面高度基准进行 K-Means聚类,将基底直方图中的点分为地面类和上层建筑类;
步骤1.7:为每一个基底直方图分配一个GPU线程,检查各个基底直方图中地面类和上层建筑类中点的数量;
步骤1.8:为每一个基底直方图分配一个GPU线程,根据K-Means聚类结果为每个基底直方图的地面类和上层建筑类分别计算在Z轴上的高斯分布并得到高斯分布参数;将所得到的高斯分布参数分别以连续内存形式储存在GPU 显存中,以在后续读取高斯分布参数时完成对显存的合并访问。
进一步的,在所述步骤1.1中,所述在GPU显存中开辟3个数组空间中的所述数组空间的大小为4bytes×NT,其中,NT为目标点云中点的数量。
进一步的,在所述步骤1.7和步骤1.8中,若所述某一基底直方图中的地面类或上层建筑类中点的数量少于2个,则点数少于2个的类被从其所属基底直方图中抹去,且该类对应的高斯分布参数置为零。
根据本申请实施例的一种具体实现方式,所述设定位姿搜索参数,具体过程为:
步骤3.1:分别在三个自由度X轴Y轴和航向角设置搜索范围:Xs,Ys和 Hs;
步骤3.2:设置三个自由度的基础搜索步长:Sx,Sy和Sh;
步骤3.3:设置搜索层数:L;
步骤3.4:设置GPU线程并行度参数:P,其中P≤32;
步骤3.5:设置源点云点中点的数量:Ns;
根据本申请实施例的一种具体实现方式,所述位姿搜索预处理,得到经过不同航向角旋转的变换点云集,具体过程为:
步骤4.4:将经GPU计算后的得到变换点云集Zt存储到步骤4.1中所分配的存储空间。
根据本申请实施例的一种具体实现方式,所述层次化位姿搜索,得到搜索点云集并输出最优位姿,具体过程为:
步骤5.1:分配GPU顶层搜索的并行空间,在每一个猜测航向角度下,按步长S'x=Sx×2L-1和S'y=Sy×2L-1分别搜索沿X轴和Y轴的平移,共产生个沿X 轴的搜索组合,个沿Y轴的搜索组合;在GPU三维并行空间中的X轴上分配个线程块,在Y轴上分配个线程块,在Z轴分配个线程块;并在线程块三维并行空间中的X轴上分配P×32个线程,以适配 GPU架构并提升线程复用率;经过计算得到共有个搜索点云集
步骤5.2:按照步骤5.1中分配的并行空间为每一个搜索点云集中的点计算其概率密度;利用共享内存进行线程束级归约,将各个搜索点云集中的点的概率密度加和后取对数,得到个对数概率密度,分别对应各个搜索点云集;
步骤5.3:将储存在GPU的对数概率密度拷贝到CPU中的一个向量容器中进行升序排序,将容器末尾的数据从容器中取出以得到当前使得概率密度最优的位姿变换参数;
步骤5.4:将步骤5.3得到的当前的最优位姿变换参数作为下一轮搜索的初始值,并在得到的当前的最优位姿的X轴和Y轴基础平移上加上下一层级X 轴和Y轴的搜索步长,保持对应的航向角不变,增加4组位姿变换并在下一层级继续搜索;
步骤5.5:根据步骤5.1和5.2计算新增加的4组位姿变换的对数概率密度,将计算结果拷入CPU中的向量容器;
步骤5.6:重复步骤5.3至步骤5.5,直到找到层级为1的最优位姿时停止,并输出该最优位姿作为点云配准的最优位姿。
进一步的,在所述步骤5.5中,所述根据步骤5.1和5.2计算新增加的4 组位姿变换的对数概率密度时,保持GPU三维并行空间中的X轴和线程块的三维并行空间中的X轴划分不变,将GPU三维并行空间中的Y轴上分配4个线程块和在Z轴上分配1个线程块。
进一步的,所述搜索点云集中的点的概率密度计算公式为:
其中j为基底直方图中的两个类,i为所有顶层直方图涵盖的基底直方图, z为当前线程所操作点云的Z轴坐标,w、σ和u为高斯分布参数:先验概率,标准差和平均值。
第二方面,本申请实施例提供一种点云配准的终端,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的基于GPU的GMM点云配准算法。
第三方面,本申请实施例还提供一种存储介质,包括:所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一方面所述的基于GPU的GMM点云配准算法。
本申请实施例中提供的基于GPU的GMM点云配准算法,具体包括提取目标点云的XYZ坐标数据并描绘其特征信息、提取源点云的XYZ坐标数据、设定位姿搜索参数、位姿搜索预处理和层次化位姿搜索,通过本申请的处理方案,解决了用EM算法对目标点云进行基于高斯混合分布的描述时容易出现的过拟合和数值错误的问题,并利用GPU的并行计算架构降低点云配准任务的延时,提高了点云配准计算速度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的基于GPU的GMM点云配准算法的流程图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
本申请实施例提供一种基于GPU的GMM点云配准算法,所述算法流程参见图1所示,包括以下步骤:
步骤1:提取目标点云的XYZ坐标数据并描绘其特征信息;
步骤1.1:在GPU显存中开辟3个数组空间,将目标点云的XYZ坐标数据从CPU内存拷入GPU显存并将XYZ数据分别储存在所述3个数组空间中,以便在后续读取时实现对GPU内存的合并访问;
在本申请实施列中,所述每个数组空间的大小为4bytes×NT,其中,NT为目标点云中点的数量。
步骤1.2:在GPU上利用线束级操作(WARP-Level Operation)完成快速归约算法,找到目标点云X,Y数据的最大最小值,即找到目标点云中的X坐标 Y坐标的边界值。
在本申请实施例中,所述线束级归约算法的具体操作如下:
步骤1.2.1:首先在每个线程块内分配Pt个线程,Pt需为32的倍数且32 ≤Pt≤1024;
步骤1.2.2:根据步骤1.2.1中分配的每个线程块中的线程数Pt确定线程块个数Pb,
步骤1.2.3:在GPU显存中创建一个输出缓存器,其大小为4bytes×Pb;
步骤1.2.4:在每个线程中以bx×Pt+tx为起始索引,Pb×Pt为步长,NT为循环终止条件遍历目标点云中的点,以线程为单位找出最大值,其中bx为线程块索引,tx为线程索引;将所有线程找出的最大值用GPU Warp Shuffles操作在线程块内进行比较,找出线程块内的最大值,并由该线程块中的零号线程将最大值写入步骤1.2.3中创建的输出缓存器,缓存器的写入位置有执行该操作的线程块索引bx决定;
步骤1.2.5:为每个线程块分配1024个线程,为GPU分配1个线程块,每个线程遍历输出缓存中的一个元素,再次利用Warp Shuffles操作找出该线程块内的最大值,并由零号线程输出该最大值;
步骤1.2.6:重复步骤1.2.1至步骤1.2.5三次,找出最大X,Y,Z的值;
步骤1.3:依据此边界值及预设基底网格分辨率Rx和Ry将目标点云在X,Y 平面上划分成边长相等的若干基底直方图条目,其中,Rx和Ry分别为X轴和Y 轴的预设基底网格分辨率;
步骤1.4:为目标点云中的每一个点分配一个GPU线程,根据各个点的X,Y 坐标数据将各个点映射至各自所属的基底直方图条目中;
步骤1.5:根据RTK(Real-Time Kinematic,实时动态)信息获取各个基底直方图条目的高程,并作为当前基底直方图条目的地面高度基准;
步骤1.6:为每一个基底直方图分配一个GPU线程,遍历基底直方图条目当中所有的点,根据每个点的Z轴信息以及该基底直方图条目的地面高度基准进行K-Means聚类,将基底直方图中的点分为地面类和上层建筑类;
步骤1.7:为每一个基底直方图分配一个GPU线程,检查各个基底直方图条目的地面类和上层建筑类中点的数量,若某一类中的点数量少于两个则基底从该直方图中抹去该类;
步骤1.8:为每一个基底直方图条目分配一个GPU线程,根据K-Means聚类结果为每个基底直方图条目的地面类和上层建筑类分别计算在Z轴上的高斯分布,每个基底直方图条目中的地面类和上层建筑类的高斯分布分别由各自的高斯分布参数w(prior)、σ(deviation)和u(mean)表示,若其中一类被从基底直方图抹去,则该类的所有参数w、σ和u均置零;将所得到的高斯分布参数分别以连续内存形式储存在GPU显存中,以在后续读取高斯分布参数时完成对显存的合并访问。
步骤2:提取源点云的XYZ坐标数据,在GPU显存中开辟3个数组空间,将源点云XYZ坐标数据从CPU内存拷入GPU显存并分别储存,以在后续读取时实现对GPU内存的合并访问;
步骤3:设定位姿搜索参数;
步骤3.1:分别在三个自由度X轴Y轴和航向角设置搜索范围:Xs,Ys和 Hs;
步骤3.2:设置三个自由度的基础搜索步长:Sx,Sy和Sh;
步骤3.3:设置搜索层数:L;
步骤3.4:设置GPU线程并行度参数:P,其中P≤32;
步骤3.5:设置源点云点中点的数量:Ns;
步骤4:位姿搜索预处理;
步骤4.2:在GPU三维并行空间中的X轴上分配个线程块,在Y轴上分配个线程块;其中nSM为运行算法的GPU所拥有的流处理器数量;并在线程块三维并行空间中的X轴上分配P×32个线程,以适配GPU 架构并提升线程复用率;
具体的,在计算经过不同旋转角度得到变换点云集过程中,Y轴线程块索引代表旋转角度:φcur=Sh×blcokIdx.y,其中φcur为当前线程块计算的航向角角度; X轴线程块索引、X轴线程块维度和X轴线程索引的组合代表当前点云集中单个点的索引:blockIdx.x×blockDim.x+threadId.x;
步骤4.4:将经GPU计算后的得到变换点云集Zt存储到步骤4.1中所分配的存储空间。
步骤5:层次化位姿搜索;
在GPU三维并行空间中的X轴上分配个线程块,在Y 轴上分配个线程块,在Z轴分配个线程块;并在线程块三维并行空间中的X轴上分配P×32个线程,以适配GPU架构并提升线程复用率;其中,X 轴线程块索引、X轴线程块维度和X轴线程索引的组合代表当前点云集中单个点的索引:blockIdx.x×blockDim.x+threadId.x;Y轴线程块索引对的余数:代表源点云在Y轴上的平移,即其中Ty代表源点云在Y轴上的平移,Y轴线程块索引除以的商向下取整后代表源点云在X轴上的平移,即Z轴线程块索引代表将要索引的变换点云集:t=blockIdx.z,即一个Z轴线程块涵盖一个变换点云集 Zt,t∈(blockDim.z);
步骤5.2:按照步骤5.1中分配的并行空间为每一个搜索点云集中的点计算其概率密度,具体计算时,首先根据每一个搜索点云集中的点的XY坐标按照R'x=Rx×2L-1和R'y=Ry×2L-1的网格分辨率映射至各自所属顶层直方图中,该顶层直方图由个基底直方图组成,根据公式
计算点云在顶层直方图中的概率密度,其中j为基底直方图中的两个类,i为所有顶层直方图涵盖的基底直方图,z为当前线程所操作点云的Z轴坐标;在各个搜索点云集中的点均得到其在顶层直方图的概率密度之后,利用共享内存进行线程束级归约,具体的线程束级归约算法的操作可参照前述步骤1.2.1 至步骤1.2.5,但归约目的从归约寻找最大值变为归约求和;将各个搜索点云集中的点的概率密度加和后取对数,得到个对数概率密度,分别对应各个搜索点云集;
步骤5.3:将储存在GPU的对数概率密度拷贝到CPU中的一个向量容器中进行升序排序,将容器末尾的数据从容器中取出以得到当前使得概率密度最优的位姿变换参数φh,tx和ty,其中φh为航向角,tx为沿X轴的平移,ty为沿Y轴的平移;
步骤5.4:将步骤5.3得到的当前的最优位姿变换参数作为下一轮搜索的初始值,并在得到的当前的最优位姿的X轴和Y轴基础平移上加上下一层级X 轴和Y轴的搜索步长,即所述搜索步长沿X轴和Y轴的平移分别为和保持对应的航向角不变,增加4组位姿变换并在下一层级继续搜索,所述增加的4组位姿变换为更加细致的搜索;
步骤5.5:根据步骤5.1和5.2计算新增加的4组位姿变换的对数概率密度,此时保持GPU三维并行空间中的X轴和线程块的三维并行空间中的X轴划分不变,将GPU三维并行空间中的Y轴上分配4个线程块,在Z轴上分配1 个线程块,将计算结果拷入CPU中的向量容器;
步骤5.6:重复步骤5.3至步骤5.5,直到找到层级为1的最优位姿时停止,并输出该最优位姿作为点云配准的最优位姿。
在一个实施例中,本申请提供了一种点云配准的终端,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如前述所述的基于GPU的GMM点云配准算法。
在一个实施例中,本申请提供了一种存储介质,包括:所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如前述所述的基于GPU的GMM点云配准算法,实现以下步骤:
提取目标点云的XYZ坐标数据并描绘其特征信息,包括:将目标点云的 XYZ坐标数据从CPU内存拷入GPU显存并分别存储;绘制基底直方图条目;基于K-Means聚类算法对所述基底直方图条目的点分类;计算所述基底直方图条目各类点的高斯分布并获得高斯分布参数;
提取源点云的XYZ坐标数据:在GPU显存中开辟数组空间,将源点云XYZ 坐标数据从CPU内存拷入GPU显存并分别储存;
设定位姿搜索参数;
位姿搜索预处理,得到经过不同航向角旋转的变换点云集并存储;
层次化位姿搜索,得到经过不同搜索组合变换的搜索点云集并输出最优位姿。
本申请提供的实施例针对传统基于GMM的点云配准算法具有对目标点云描绘时的过拟合和数值异常的问题以及计算速度过慢的问题,发明了一种基于 GPU的GMM点云配准算法,解决了过拟合和数值错误的问题,提高了GMM点云配准计算速度。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种基于GPU的GMM点云配准算法,其特征在于,包括以下步骤:
提取目标点云的XYZ坐标数据并描绘其特征信息,包括:将目标点云的XYZ坐标数据从CPU内存拷入GPU显存并分别存储;绘制基底直方图条目;基于K-Means聚类算法对所述基底直方图条目的点分类;计算所述基底直方图条目各类点的高斯分布并获得高斯分布参数;
提取源点云的XYZ坐标数据:在GPU显存中开辟数组空间,将源点云XYZ坐标数据从CPU内存拷入GPU显存并分别储存;
设定位姿搜索参数;
位姿搜索预处理,得到经过不同航向角旋转的变换点云集并存储;
层次化位姿搜索,得到经过不同搜索组合变换的搜索点云集并输出最优位姿。
2.根据权利要求1所述的基于GPU的GMM点云配准算法,其特征在于,所述提取目标点云的XYZ坐标数据并描绘其特征信息,包括:将目标点云的XYZ坐标数据从CPU内存拷入GPU显存并分别存储;绘制基底直方图条目;基于K-Means聚类法对所述基底直方图条目的点分类;计算所述基底直方图条目各类点的高斯分布并获得高斯分布参数,具体过程为:
步骤1.1:在GPU显存中开辟3个数组空间,将目标点云的XYZ坐标数据从CPU内存拷入GPU显存并将XYZ数据分别储存在所述3个数组空间中,以便在后续读取时实现对GPU内存的合并访问;
步骤1.2:在GPU上利用线束级操作完成快速归约算法,找到目标点云X,Y数据的最大最小值;
步骤1.3:依据此边界及预设基底网格分辨率将目标点云在X,Y平面上划分成边长相等的若干基底直方图条目;
步骤1.4:为目标点云中的每一个点分配一个GPU线程,根据各个点的X,Y坐标数据将各个点映射至所属基底直方图条目中;
步骤1.5:根据实时动态信息获取各个基底直方图的高程,并作为当前基底直方图的地面高度基准;
步骤1.6:为每一个基底直方图分配一个GPU线程,遍历基底直方图当中所有的点,根据每个点的Z轴信息以及该基底直方图的地面高度基准进行K-Means聚类,将基底直方图中的点分为地面类和上层建筑类;
步骤1.7:为每一个基底直方图分配一个GPU线程,检查各个基底直方图中地面类和上层建筑类中点的数量;
步骤1.8:为每一个基底直方图分配一个GPU线程,根据K-Means聚类结果为每个基底直方图的地面类和上层建筑类分别计算在Z轴上的高斯分布并得到高斯分布参数;将所得到的高斯分布参数分别以连续内存形式储存在GPU显存中,以在后续读取高斯分布参数时完成对显存的合并访问。
3.根据权利要求2所述的基于GPU的GMM点云配准算法,其特征在于,在步骤1.1中,所述在GPU显存中开辟3个数组空间中的所述数组空间的大小为4bytes×NT,其中,NT为目标点云中点的数量。
4.根据权利要求2所述的基于GPU的GMM点云配准算法,其特征在于,在步骤1.7和步骤1.8中,若所述某一基底直方图中的地面类或上层建筑类中点的数量少于2个,则点数少于2个的类被从其所属基底直方图中抹去,且该类对应的高斯分布参数置为零。
5.根据权利要求2-4任一项所述的基于GPU的GMM点云配准算法,其特征在于,所述设定位姿搜索参数,具体过程为:
步骤3.1:分别在三个自由度X轴Y轴和航向角设置搜索范围:Xs,Ys和Hs;
步骤3.2:设置三个自由度的基础搜索步长:Sx,Sy和Sh;
步骤3.3:设置搜索层数:L;
步骤3.4:设置GPU线程并行度参数:P,其中P≤32;
步骤3.5:设置源点云点中点的数量:Ns。
6.根据权利要求5所述的基于GPU的GMM点云配准算法,其特征在于,所述位姿搜索预处理,得到经过不同航向角旋转的变换点云集并存储,具体过程为:
步骤4.4:将经GPU计算后的得到变换点云集Zt存储到步骤4.1中所分配的存储空间。
7.根据权利要求6所述的基于GPU的GMM点云配准算法,其特征在于,所述层次化位姿搜索,得到经过不同搜索组合变换的搜索点云集并输出最优位姿,具体过程为:
步骤5.1:分配GPU顶层搜索的并行空间,在每一个猜测航向角度下,按步长S'x=Sx×2L -1和S'y=Sy×2L-1分别搜索沿X轴和Y轴的平移,共产生个沿X轴的搜索组合,个沿Y轴的搜索组合;在GPU三维并行空间中的X轴上分配个线程块,在Y轴上分配个线程块,在Z轴分配个线程块;并在线程块三维并行空间中的X轴上分配P×32个线程;经过计算得到共有个搜索点云集
步骤5.2:按照步骤5.1中分配的并行空间为每一个搜索点云集中的点计算其概率密度;利用共享内存进行线程束级归约,将各个搜索点云集中的点的概率密度加和后取对数,得到个对数概率密度,分别对应各个搜索点云集;
步骤5.3:将储存在GPU的对数概率密度拷贝到CPU中的一个向量容器中进行升序排序,将容器末尾的数据从容器中取出以得到当前使得概率密度最优的位姿变换参数;
步骤5.4:将步骤5.3得到的当前的最优位姿变换参数作为下一轮搜索的初始值,并在得到的当前的最优位姿的X轴和Y轴基础平移上加上下一层级X轴和Y轴的搜索步长,保持对应的航向角不变,增加4组位姿变换并在下一层级继续搜索;
步骤5.5:根据步骤5.1和5.2计算所述增加的4组位姿变换的对数概率密度,将计算结果拷入CPU中的向量容器;
步骤5.6:重复步骤5.3至步骤5.5,直到找到层级为1的最优位姿时停止,并输出该最优位姿作为点云配准的最优位姿。
8.根据权利要求7所述的基于GPU的GMM点云配准算法,其特征在于,在步骤5.5中,计算所述根据步骤5.1和5.2计算新增加的4组位姿变换的对数概率密度时,保持GPU三维并行空间中的X轴和线程块的三维并行空间中的X轴划分不变,将GPU三维并行空间中的Y轴上分配4个线程块和在Z轴上分配1个线程块。
11.一种点云配准的终端,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至10任一项所述的基于GPU的GMM点云配准算法。
12.一种存储介质,其特征在于,包括:所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至10任一项所述的基于GPU的GMM点云配准算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011476228.XA CN112508767B (zh) | 2020-12-14 | 2020-12-14 | 一种基于gpu的gmm点云配准方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011476228.XA CN112508767B (zh) | 2020-12-14 | 2020-12-14 | 一种基于gpu的gmm点云配准方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112508767A true CN112508767A (zh) | 2021-03-16 |
CN112508767B CN112508767B (zh) | 2023-10-13 |
Family
ID=74973530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011476228.XA Active CN112508767B (zh) | 2020-12-14 | 2020-12-14 | 一种基于gpu的gmm点云配准方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112508767B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190515A (zh) * | 2021-05-14 | 2021-07-30 | 重庆市勘测院 | 基于异构并行计算的城市级海量点云坐标转换方法 |
CN113256693A (zh) * | 2021-06-04 | 2021-08-13 | 武汉工控仪器仪表有限公司 | 基于K-means与正态分布变换的多视角配准方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107204009A (zh) * | 2017-05-23 | 2017-09-26 | 哈尔滨工业大学 | 基于仿射变换模型cpd算法的三维点云配准方法 |
CN108564605A (zh) * | 2018-04-09 | 2018-09-21 | 大连理工大学 | 一种三维测量点云优化配准方法 |
CN108917759A (zh) * | 2018-04-19 | 2018-11-30 | 电子科技大学 | 基于多层次地图匹配的移动机器人位姿纠正算法 |
CN110097582A (zh) * | 2019-05-16 | 2019-08-06 | 广西师范大学 | 一种点云优化配准与实时显示系统及工作方法 |
CN110264567A (zh) * | 2019-06-19 | 2019-09-20 | 南京邮电大学 | 一种基于标记点的实时三维建模方法 |
US20190319851A1 (en) * | 2018-04-11 | 2019-10-17 | Nvidia Corporation | Fast multi-scale point cloud registration with a hierarchical gaussian mixture |
DE102019108733A1 (de) * | 2018-04-11 | 2019-10-17 | Nvidia Corporation | Schnelle mehrskalige Punktwolkenregistrierung mit einer hierarchischen Gauß-Mischung |
CN111540015A (zh) * | 2020-04-27 | 2020-08-14 | 深圳南方德尔汽车电子有限公司 | 基于点云匹配的位姿计算方法、装置、计算机设备及存储介质 |
-
2020
- 2020-12-14 CN CN202011476228.XA patent/CN112508767B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107204009A (zh) * | 2017-05-23 | 2017-09-26 | 哈尔滨工业大学 | 基于仿射变换模型cpd算法的三维点云配准方法 |
CN108564605A (zh) * | 2018-04-09 | 2018-09-21 | 大连理工大学 | 一种三维测量点云优化配准方法 |
US20190319851A1 (en) * | 2018-04-11 | 2019-10-17 | Nvidia Corporation | Fast multi-scale point cloud registration with a hierarchical gaussian mixture |
DE102019108733A1 (de) * | 2018-04-11 | 2019-10-17 | Nvidia Corporation | Schnelle mehrskalige Punktwolkenregistrierung mit einer hierarchischen Gauß-Mischung |
CN108917759A (zh) * | 2018-04-19 | 2018-11-30 | 电子科技大学 | 基于多层次地图匹配的移动机器人位姿纠正算法 |
CN110097582A (zh) * | 2019-05-16 | 2019-08-06 | 广西师范大学 | 一种点云优化配准与实时显示系统及工作方法 |
CN110264567A (zh) * | 2019-06-19 | 2019-09-20 | 南京邮电大学 | 一种基于标记点的实时三维建模方法 |
CN111540015A (zh) * | 2020-04-27 | 2020-08-14 | 深圳南方德尔汽车电子有限公司 | 基于点云匹配的位姿计算方法、装置、计算机设备及存储介质 |
Non-Patent Citations (7)
Title |
---|
BEN ECKART 等: "Fast and Accurate Point Cloud Registration using Trees of Gaussian Mixtures", 《ARXIV》, pages 1 - 22 * |
WENTAO YUAN 等: "DeepGMR: Learning Latent Gaussian Mixture Models for Registration", 《SPRINGER》, pages 733 - 750 * |
李仁忠;杨曼;田瑜;刘阳阳;张缓缓;: "基于ISS特征点结合改进ICP的点云配准算法", 激光与光电子学进展, no. 11, pages 1 - 8 * |
李玉梅 等: "三维重建中点云配准算法研究", 《电子测量技术》, vol. 43, no. 12, pages 75 - 79 * |
李玉梅;万旺根;王旭智;: "三维重建中点云配准算法研究", 电子测量技术, no. 12 * |
王庆闪;张军;刘元盛;张鑫晨;: "基于NDT与ICP结合的点云配准算法", 计算机工程与应用, no. 07, pages 88 - 95 * |
郎萍: "ICP算法的改进及大规模点云配准方法的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 363 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190515A (zh) * | 2021-05-14 | 2021-07-30 | 重庆市勘测院 | 基于异构并行计算的城市级海量点云坐标转换方法 |
CN113190515B (zh) * | 2021-05-14 | 2022-11-29 | 重庆市勘测院 | 基于异构并行计算的城市级海量点云坐标转换方法 |
CN113256693A (zh) * | 2021-06-04 | 2021-08-13 | 武汉工控仪器仪表有限公司 | 基于K-means与正态分布变换的多视角配准方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112508767B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10964061B2 (en) | Learning-based camera pose estimation from images of an environment | |
US11037051B2 (en) | 3D plane detection and reconstruction using a monocular image | |
CN112837354B (zh) | 一种基于gpu的ndt点云配准算法、装置及电子设备 | |
CN112508767B (zh) | 一种基于gpu的gmm点云配准方法 | |
Ji et al. | A novel simplification method for 3D geometric point cloud based on the importance of point | |
JP2016161569A (ja) | オブジェクトの3d姿勢およびオブジェクトのランドマーク点の3dロケーションを求める方法、およびオブジェクトの3d姿勢およびオブジェクトのランドマークの3dロケーションを求めるシステム | |
CN112613378B (zh) | 3d目标检测方法、系统、介质及终端 | |
CN111915517B (zh) | 适用于室内光照不利环境下rgb-d相机全局定位方法 | |
WO2019237319A1 (en) | Incremental segmentation of point cloud | |
CN112700479A (zh) | 一种基于cnn点云目标检测的配准方法 | |
US20230052645A1 (en) | Multiresolution hash encoding for neural networks | |
CN116563493A (zh) | 基于三维重建的模型训练方法、三维重建方法及装置 | |
CN105139414B (zh) | 用于x光片图像数据的聚类集成方法 | |
JPWO2019040997A5 (zh) | ||
CN113159103B (zh) | 图像匹配方法、装置、电子设备以及存储介质 | |
CN116310849B (zh) | 基于三维形态特征的树木点云单体化提取方法 | |
CN112581511A (zh) | 基于近似直立扫描点云快速配准的三维重建方法及系统 | |
JP6761388B2 (ja) | 推定装置及びプログラム | |
Fickenscher et al. | Cell-based update algorithm for occupancy grid maps and hybrid map for ADAS on embedded GPUs | |
US6606584B1 (en) | Defining a neighborhood of vertices in a 3D surface mesh | |
Goshin et al. | Parallel implementation of the multi-view image segmentation algorithm using the Hough transform | |
CN116263504A (zh) | 车辆识别方法、装置、电子设备及计算机可读存储介质 | |
WO2022141494A1 (zh) | 三维点云聚类方法、装置、计算机设备和存储介质 | |
CN115131514A (zh) | 一种同时定位建图的方法、装置、系统及存储介质 | |
CN114708382A (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 |