开源3D激光雷达闭环检测方法
目前主流的激光雷达闭环检测策略主要有以下几种:
-
点到点的匹配(point to point matching):经典方法如ICP、NDT及其变种。
-
关键点与描述子:从3D点云中检测关键点,然后从关键点位置提取描述子,构建词袋模型BoWs进行场景匹配,如BoW3d方法。
-
全局描述符,从点云中提取全局描述符,如ESF、FPFH、VFH、M2DP、histogram、Scan Context等。
-
深度学习方法,经典方法如PointNetVLAD、OverlapNet、SegMap等等。
下面列出几种经典的应用较多的开源方案,具体想了解某一种方法的话大家还是自己阅读论文:
一、2D histogram
论文:《A fast, complete, point cloud based loop closure for LiDAR odometry and mapping》
GitHub地址:GitHub - hku-mars/loam_livox: A robust LiDAR Odometry and Mapping (LOAM) package for Livox-LiDAR
该方法被用在loam_livox中,适用于像livox这种非重复扫描的固态激光雷达,也适用于传统的机械式激光雷达。该方法速度快,对旋转不变。
论文中使用的2D直方图是一个60×60的矩阵(在俯仰角和偏航角上都有3°的分辨率),矩阵的元素表示具有特定俯仰角θ和偏航角φ的线/面单元的数量。
为了增加2D直方图对可能噪声的鲁棒性,对每个2D直方图应用高斯模糊。
使用归一化互相关作为当前关键帧与地图中关键帧之间的相似度度量。
二、Scan Context系列
论文:《Egocentric Spatial Descriptor for Place Recognition Within 3D Point Cloud Map》
Scan Context可以说是目前最经典应用最多的激光闭环检测算法了吧,被大家广泛集成到LOAM系列的SLAM算法当中,效果也不错。近期也衍生出很多变种,如Scan Context++,Intensity Scan Context,Semantic Scan Context等。
Scan Context中保存的是点云每块区域中的最大的高度,因此势必也会丢失很多点云信息,导致它在室内使用有一定的局限性。
三、LiDAR-Iris
论文:《LiDAR Iris for Loop-Closure Detection》
GitHub地址:BigMoWangying/LiDAR-Iris: LiDAR Iris for Loop-Closure Detection(IROS 2020) (github.com)
论文描述中,该方法的提出主要是为了解决Scan Context存在的一些缺陷,一是它只利用了最大的高度,丢失了很多点云信息,二是Scan Context不具有旋转不变性,需要进行暴力匹配,三是Scan Context缺少特征提取步骤。
提出了一个LiDAR点云的全局描述符LiDAR Iris,将一块区域总结为在LiDAR-Iris图像表示上进行几次Gabor过滤和阈值操作后获得的二进制签名图像, 充分利用了点云的大部分信息。
该全局描述符具有旋转不变性,避免了暴力搜索,节约了计算资源。
四、LinK3D+BoW3D
论文:《LinK3D: Linear Keypoints Representation for 3D LiDAR Point Cloud》
《BoW3D: Bag of Words for Real-Time Loop Closing in 3D LiDAR SLAM》
GitHub地址:GitHub - YungeCui/BoW3D: [RA-L] BoW3D: Bag of Words for Real-Time Loop Closing in 3D LiDAR SLAM.
借鉴VSLAM中的词袋模型思路,提出了Link3D描述子,提取流程如下图。LinK3D的核心思想是将当前关键点描述为其相邻关键点的线性表示。首先提取鲁棒聚集关键点,然后将提取的聚集关键点输入描述符生成算法,该算法以新的关键点表示形式生成描述符。在得到描述符后,所提出的匹配算法可以快速匹配两次激光雷达扫描的描述符。
论文中提到提取LinK3D特征平均需要32毫秒,匹配两次LiDAR扫描的描述符需要8毫秒,重定位需要13毫秒。
五、OverlapNet
论文:《OverlapNet: Loop Closing for LiDAR-based SLAM》
GitHub地址:GitHub - PRBonn/OverlapNet: OverlapNet - Loop Closing for 3D LiDAR-based SLAM (chen2020rss)
OverlapNet是一种基于深度学习的闭环检测算法,并将其集成到了SuMa++当中,作者是波恩大学的Xieyuanli Chen。
OverlapNet无需先验位姿信息,旨在解决在自动驾驶中3D LiDAR SLAM 的闭环检测问题。
它不需提前知道两个雷达扫描的相对位姿,只利用范围、法向量、强度和语义(RangeNet++)等线索,使用深度神经网络直接估计两个激光雷达扫描的重叠率,以及相对偏航角。网络由两个共享权重的Legs和由Legs生成的相同特征体积对的Head组成。Overlap输出的是重叠率,Yaw输出的是偏航角。
在不同数据集上泛化性能不错。作者训练模型使用的是 KITTI 数据集,在 Ford campus 数据集上进行测试评估。实验表明该方法仍然能够比最新的方法更有效地检测闭环。
更多推荐
所有评论(0)