掌桥专利:专业的专利平台
掌桥专利
首页

应用于激光雷达单帧点云的高效KNN方法及其应用

文献发布时间:2023-06-19 19:28:50


应用于激光雷达单帧点云的高效KNN方法及其应用

技术领域

本发明涉及一种应用于激光雷达单帧点云的KNN方法及其在FPGA上的实现。

背景技术

K最邻点搜索(KNN)是从参考点云中找出最靠近目标点的K个点。在智能驾驶技术中,KNN算法被广泛地应用在目标检测、定位与建图等方面[1][2]。一般来说,KNN算法分为两个部分:建立高效的数据结构和创建快速搜索方式。尽管现有的算法在搜索方面对KNN进行了优化[3-5],但是运行速度依然不足以满足智能驾驶的高速行驶场景。同时,随着激光雷达技术的发展,点云大小成倍增加[6],导致KNN算法需要消耗更多的时间。因此,如何高效地实现KNN算法变得至关重要。

现有的技术从不同的方向对上面的问题进行了探索。KD-tree[7]是目前最为广泛使用的KNN算法,它独特地提出了树状结构,先对空间进行划分,再进行比较得到候选点所在树状节点。但是其需要不停比较得到划分边界,消耗了大量时间,导致创建数据结构时间过长。即使[3][8][9]分别从建立、搜索、功耗方面对KD-tree进行了优化,但是建立时间依旧无法满足高速场景。[5]提出一个新的数据结构DSVS,其在在建立跟搜索方面相较于前面均都得到了提升,不过其在GPU平台上能效并不理想。

参考文献

[1]Zhang,Ji,and Sanjiv Singh."LOAM:Lidar odometry and mapping inreal-time."Robotics:Science and Systems.Vol.2.No.9.2014.

[2]Shan,Tixiao,and Brendan Englot."Lego-loam:Lightweight and ground-optimized lidar odometry and mapping on variable terrain."2018 IEEE/RSJInternational Conference on Intelligent Robots and Systems(IROS).IEEE,2018.

[3]Pinkham,Reid,Shuqing Zeng,and Zhengya Zhang."Quicknn:Memory andperformance optimization of kd tree based nearest neighbor search for 3dpoint clouds."2020 IEEE International Symposium on High Performance ComputerArchitecture(HPCA).IEEE,2020.

[4]Kosuge,Atsutake,et al."An SoC-FPGA-based iterative-closest-pointaccelerator enabling faster picking robots."IEEE Transactions on IndustrialElectronics 68.4(2020):3567-3576.

[5]Sun,Hao,et al."Efficient FPGA implementation of K-nearest-neighborsearch algorithm for 3D LIDAR localization and mapping in smart vehicles."IEEE Transactions on Circuits and Systems II:Express Briefs 67.9(2020):1644-1648.

[6]Carballo,Alexander,et al."LIBRE:The multiple 3d lidar dataset."2020IEEE Intelligent Vehicles Symposium(IV).IEEE,2020.

[7]Greenspan,Michael,and Mike Yurick."Approximate kd tree search forefficient ICP."Fourth International Conference on 3-D Digital Imaging andModeling,2003.3DIM 2003.Proceedings..IEEE,2003.

[8]Li,Zonghui,Tong Wang,and Yangdong Deng."Fully parallel kd-treeconstruction for real-time ray tracing."Proceedings of the 18th meeting ofthe ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games.2014.

[9]Liu,Xingyu,et al."FastTree:A hardware KD-tree constructionacceleration engine for real-time ray tracing."2015Design,Automation&Test inEurope Conference&Exhibition(DATE).IEEE,2015.

发明内容

本发明的目的是:高效地实现KNN算法。

为了达到上述目的,本发明的一个技术方案是提供了一种应用于激光雷达单帧点云的高效KNN方法,其特征在于,包括以下步骤:

步骤1、通过激光雷达获得无序的点云数据,对于任意一个点(x,y,z)利用激光雷达的横纵分辨率将其投射到矩阵,其中,点(x,y,z)在矩阵中的横坐标h=arctan(y/x)/Δβ计算得到,点(x,y,z)在矩阵中的纵坐标

步骤2、计算点(x,y,z)到激光雷达的距离r,并依据距离r以及预先确定的不同距离维度所对应的距离范围将点(x,y,z)划分入对应的距离维度;

步骤3、将步骤1所获得的矩阵中每一列分为N

步骤4、采用步骤2计算得到每个数据块中各点所对应的距离维度,统计矩阵中每个数据块里各个距离维度上点的个数,并记录在统计表中;

步骤5、根据步骤4获得的统计表,得到不同数据块中各距离维度上第一个点的索引位置,从而得到一张索引表;

步骤6、将所有点按照步骤5所获得的索引表进行重新排列,获得有序的点云数据;

步骤7、对于同一空间中的目标点p(x

步骤701、采用步骤1所记载的方法确定目标点p(x

步骤702、根据目标范围缩小搜索范围,缩小后的矩阵的大小为[v

步骤703、获得的缩小后区域内的候选点,一一计算候选点与目标点的欧式距离并排序,获得最近K个点。

优选地,步骤2中,采用下式计算点(x,y,z)到激光雷达的距离r,

本发明的另一个技术方案是提供了一种上述的应用于激光雷达单帧点云的高效KNN方法的应用,其特征在于,通过FPGA加速上述的应用于激光雷达单帧点云的高效KNN方法。

与现有技术相比,本发明的创新之处在于:

(1)基于点云投影和距离尺度的数据结构。参考点云依据投影位置和距离雷达的距离被重新组织成新的点云集合,同时获得一个索引数组,以上组成了本方法中新的数据结构。这个结构确保了空间中相邻的点也是会被组织在相邻的存储中。

(2)高效地构建新数据结构。在投影过程中,本方法并没有采用传统的计算方式,而是根据激光点云的特性,建立查找表。通过比较的方式代替计算,实现了投影的高效。于此同时,本方法将投影矩阵进行分割,实现了并行化构建新数据结构。

(3)高效地最近点搜索方式。基于新数据结构,我们首先根据目标搜索区间,缩小搜索范围;其次创建了一个动态缓存,将候选点放在其中,进行并行化计算。

附图说明

图1为本实施例中KNN加速器的整体框图;

图2(a)至图2(c)示意了构建数据结构,其中,图2(a)示意了投射矩阵,图2(b)示意了点云俯视图,图2(c)示意了距离维度划分;

图3(a)至图3(c)示意了所获得的数据结构,其中,图3(a)示意了同一距离维度中点计数,图3(b)示意了数据结构中的索引表,图3(c)示意了点云重新排列。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

本实施例公开的一种应用于激光雷达单帧点云的高效KNN方法包括以下步骤:

步骤1、通过激光雷达获得无序的点云数据,对于任意一个点(x,y,z)利用激光雷达的横纵分辨率将其投射到矩阵,如图2(a)所示。点(x,y,z)在矩阵中的横坐标h=arctan(y/x)/Δβ计算得到,点(x,y,z)在矩阵中的纵坐标v=

步骤2、计算点(x,y,z)到激光雷达的距离

步骤3、将步骤1所获得的矩阵中每一列分为N

步骤4、采用步骤2计算得到每个数据块中各点所对应的距离维度,统计矩阵中每个数据块里各个距离维度上点的个数,并记录在统计表中,统计表中记录了不同数据块中不同距离维度上点的个数,如图3(a)所示。

步骤5、根据步骤4获得的统计表,得到不同数据块中各距离维度上第一个点的索引位置,如附图3(b)所示,从而得到一张索引表。本实施例中,若在同一个数据块的同一个距离维度上存在多个点,则将多个点中的任意一个点确定为第一个点,也可以根据接收到的点的时间,将多个点中最先接收到的点确定为第一个点。

步骤6、将所有点按照步骤5所获得的索引表进行重新排列,获得有序的点云数据,如附图3(c),从而确保了空间中相邻的点被组织在相邻的存储中。

步骤7、对于同一空间中的目标点p(x

步骤701、采用步骤1所记载的方法确定目标点p(x

步骤702、根据目标范围缩小搜索范围,缩小后的矩阵的大小为[v

步骤703、获得的缩小后区域内的候选点,一一计算候选点与目标点的欧式距离并排序,获得最近K个点。

上述方法可以被用在无人驾驶中基于激光雷达点云的定位与建图中,能够快速完成单帧点云中最近的搜索任务。并且通过FPGA加速能够让上述方法具有更好的实时性,消耗更少的能量。

技术分类

06120115927550