高质量的闭环是建图必不可少的元素之一。而激光SLAM不像视觉那样可以提供细致的纹理信息,因此常常出现误检和漏检的情况。最近,看了不少关于激光SLAM闭环方法的论文,总结一下。
一、构建点云的描述子
1、Scan Context(2018)--Scan context: Egocentric spatial descriptor for place recognition within 3d point cloud map
思想:把采集到的激光点云沿着方位角方向将点云分割成一个个sector,即下图蓝色的扇形。沿着径向方向,将点云分割成一个个ring,即下图黄色圆环。一个sector和一个ring的交集称之为bin,即图中黑色区域。通过统计每个bin中点云的最大z方向值,来形成一个scan context 描述子。
上图使用高度,形成的二维投影:
缺点:代码比较轻量,跑过loam+kitti,但很容易形成假的回环。
补充:后续还有ISC方案,思想基本一致,只是将点云的Z轴高度信息换成了点云的强度信息进行编码。
2、Scan Context++(2021)--Scan context++:Structural Place Recognition Robust to Rotation and Lateral Variations in Urban Environments
思想:实际上文中是提出了计算描述子的两种方式(基于笛卡尔坐标系和基于极坐标系),来解决横向位移和旋转不变性的影响。
缺点:未开源,在实际运行的系统上不易做到自适应切换两种描述子。
3、Iris(2020)--LiDAR Iris for Loop-Closure Detection
思想:与SC类似,也是采用最近很流行的鸟瞰图,提取每个bin中的高度信息,通过傅里叶变化和LoG-Gabor滤波将它转化成一个二进制描述子。
优/缺点:描述子提取速度快,系统长时间运行,回环搜索速度下降的很厉害。
4、Imaging Lidar(2021)--Robust Place Recognition using an Imaging Lidar
思想:利用高分辨率的雷达,将采集到的点云投影成一个intensity image,然后在该图上提取ORB特征描述子,利用词袋模型法做回环检测、匹配对应的特征。最后用PnP-RANSAC算法筛除一些错误的特征匹配。
优/缺点:要求雷达线束分布均匀(垂直的分辨率一致)。不同场景重新训练字典集。数据集上效果表现不错。
5、BoW3D(2022)--BoW3D:Bag of Words for Real-Time Loop Closing in 3D LiDAR SLAM
思想:基于LinK3D特征来实现词袋模型. DBoW3D的总体结构是采用哈希表构建单词与位置的一对一直接关联。(没有实际跑过,据说效果不错,可以去github找一下跑跑看)
二、采用神经网络
1、OverlapNet(2020)--OverlapNet: Loop Closing for LiDAR-based SLAM
基于CNN的构建的神经网络模型,用于激光雷达回环检测。该模型可以在仅通过激光雷达的信息(深度图、灰度图、法线图和语义分割后的图)来判断是否发现回环,以及两帧数据之间的偏航角变化。
改进版本:OverlapTransformer(2022)
2、LCDNet(2022)--LCDNet: Deep Loop Closure Detection and Point Cloud Registration for LiDAR SLAM
将点云的帧间配准和回环检测集成的网络。论文数据来看,实际运行时间消耗太大了,但不失为一种尝试。
回环时间性能的指标:1)构建回环信息的时间 2)回环搜索的时间