代码已开源: https://github.com/JoestarK/LiDAR-Iris
IRIS是一个实验性能比ScanContext更好的开源的激光雷达全局描述子,下图是作者通过自制的VLP-16数据集验证IRIS的回环效果。
IRIS起名来自虹膜。虹膜区域内的每个点通常会通过道格曼橡胶板模型映射为一对极坐标,激光雷达的点云同样也可以被映射为极坐标的表示。
右上是当IRIS检测到回环的时候的候选帧与匹配帧的点云极其对应的IRIS生成图。下图是运行代码单独对比两帧激光点云的IRIS实时输出:
Motivation:目前激光的全局或者局部描述子的描述能力和不变性能里仍然有所欠缺,虽然Scan-Context的提出,很大程度上缓解了这个问题,但是Scan-Context本身仍然有一些缺陷,一是它只利用了最大的高度,丢失了很多点云信息,二是Scan-Context不具有旋转不变性,需要进行暴力匹配,三是Scan-Context缺少特征提取步骤。IRIS一一解决了上述缺陷。
Contribution:
提出了一个LiDAR点云的全局描述符LiDAR Iris,将一个地方总结为在LiDAR-Iris图像表示上进行几次Gabor过滤和阈值操作后获得的二进制签名图像, 充分利用了点云的大部分信息。
该全局描述符具有旋转不变性,避免了暴力搜索,节约了计算资源。
与现有的LIDAR全局描述符相比,该描述符的性能达到了SOTA。
Content: Lidar Iris描述符的生成理论上可以分解为4个步骤: 一是离散化鸟瞰图像;二是对离散后的图像进行编码;三是生成Lidar-Iris图像;四是对图像执行二值化。执行上可以分解为三个模块,一是生成Lidar-Iris图像的表示;二是通过傅立叶变换使得Lidar-Iris具有平移不变性;三是基于LoG-Gabor滤波器的二值特征提取。
1.Lidar-Iris图像的表示的生成
首先将点云转换为鸟瞰图,过程示意图如下。具体过程是保留一个面积为k×k的正方形作为有效感应区,激光雷达的位置作为正方形的中心。以这个正方形为单位,将点云离散为80(径向) * 360(角向)的bin。
为了完整地表示点云,对每个面元内的点采用一些特征提取方法,如高度、距离、反射、环等。为简单起见,使用八位二进制代码对同一个bin内的所有点进行编码。以高度的编码方法举例,对于每一个bin内的点云集,首先按照高度的大小顺序,线性离散为8个bin,并不是每个bin都会有点,有点的bin值为1,否则为0,从而可以获得上图中的8位二进制编码。
仿照虹膜识别算法,Lidar-IRIS将激光雷达的鸟瞰图扩展为图像条,Lidar-IRIS图像的像素强度为每个bin的8位二进制数所转换的十进制数。一方面,与现有的基于直方图的全局描述符相比,所提出的编码过程不需要对每个bin中的点进行计数,从而提高了计算效率;另一方面,该编码过程是固定的,不需要像CNNs模型那样预训练。这时候的描述子尚未具有平移不变性,下面会通过傅立叶变换使得描述子具有平移不变性。
2.对于具有平移不变性Lidar-Iris的傅立叶变换
平移变化会导致基于激光雷达的闭环检测的Lidar-IRIS描述子的显著退化。为了解决这个问题,采用傅里叶变换来估计两幅Lidar-IRIS图像之间的平移。基于傅里叶变换的方案能够估计大的旋转、缩放和平移(用不到缩放)。点云的旋转对应于经过傅里叶变换后的Lidar-IRIS图像的水平平移, 点云的平移不仅对应傅里叶变换后的 LiDAR-Iris 图像的垂直平移,还会引起Lidar-IRIS图像像素强度的轻微变化, 但是Lidar-IRIS以bin为最小单位保留了点云的绝对内部结构,提高了辨别能力并且对图像像素强度的变化具有鲁棒性, 所以可以忽略由机器人在小范围内平移引起的 LiDAR-Iris 图像中强度的变化。
假设两个Lidar-IRIS图像仅仅差别一个位移:
那么这两个图像之间的傅立叶变换可以定义为:
对应的,归一化的交叉功率谱定义为:
3.基于LoG-Gabor滤波器的二值特征提取
使用LoG-Gabor滤波器从Lidar-IRIS图像中深入提取特征: LoG-Gabor滤波器可用于将Lidar-IRIS区域中的数据分解为以不同分辨率出现的分量,与传统的傅里叶变换相比,它的优势在于允许频率数据局部化,允许在相同位置和分辨率进行特征匹配。为了确保实时性,仅使用1D LoG Gabor滤波器。一维Log-Gabor滤波器的频率响应如下:
利用八个1D LoG Gabor滤波器对Lidar-IRIS图像的每一行进行卷积,其中滤波器的波长增加相同的因子,从而得到每个滤波器的实部和虚部。在下图中,第一幅图像显示了八个1D log-Gabor滤波器,第二幅图像显示了前四个滤波器卷积响应的实部和虚部:
尝试使用不同数量的LoG-Gabor滤波器进行特征提取,实验中发现四个LoG-Gabor滤波器可以在较低的计算成本下实现最佳的闭环检测精度。下图显示了使用不同数量的LoG-Gabor滤波器可以在验证集上实现的精度,其中使用四个滤波器的结果是最好的。通过简单的阈值运算,将四个滤波器的卷积响应转化为二值,从而将它们叠加到每个Lidar-IRIS图像的大型二值特征图中。上图的第三幅图像显示了激光雷达虹膜图像的一个二值特征图。
4.使用Lidar-IRIS的闭环检测
为了将Lidar-IRIS应用于闭环检测,为每个点云生成一个Lidar-IRIS的二值特征图。因此,可以保存所有关键帧获取的Lidar-IRIS二进制特征的历史数据库。当前关键帧和每个历史关键帧的Lidar-IRIS二值特征贴图之间的距离由汉明距离计算。如果获得的汉明距离小于阈值,则将其视为闭环。
5.实验结果
1)亲和矩阵可视化
第一行表示KITTI05的数据集,第二行表示作者自己采集的小规模数据集,第一列表示真值生成的亲和矩阵,第二列到第五列分别表示Lidar-IRIS,ScanContext,M2DP和ESF生成的亲和矩阵。在Lidar-IRIS和ScanContext的亲和矩阵里,颜色越重,相似度越高,在M2DP和ESF的亲和矩阵里,颜色越轻,相似度越高。
2)对应A的轨迹
左列对应于上述闭环的亲和矩阵放大和对应的轨迹,右列代表真值对应的亲和矩阵,红色蓝色黄色的框分别表示对应的检测到闭环的位置,可以看出IRIS的亲和矩阵对于回环的检测是比较敏感的。
3)准确率-召回率曲线
红色的曲线代表的是作者提出的IRIS全局描述子,绿色的是M2DP,蓝色的是ESF,浅蓝色的是Scan-Context。从左往右,每一列分别对应着KITTI00,KITTI05,KITTI08和作者采集的小规模和大规模数据集。从上往下,第一行代表的是完整的回环检测策略,第二行将回环检测问题转成一个Re-ID问题,整体的评判标准没有太大区别。可以看出,作者提出的IRIS描述子,在实验中的所有场景的回环任务和Re-ID任务中都可以取得最好的效果。
4)时间对比
主要和Scan-Context对比每帧所需要的时间,数据集是KITTI00,IRIS的时间显著少于Scan-Context。
Conclusion: Lidar-IRIS和Scan-Context的思路是比较相似的,总体上对Scan-Context进行了改进,一是改进了Scan-Context只利用了点云最大高度的问题,二是解决了Scan-Context对于平移不变性需要使用暴力搜索的问题,论文中的实验性能明显高于Scan-Context,实际效果需要运行后测试。
备注:作者也是我们「3D视觉从入门到精通」知识特邀嘉宾:一个超干货的3D视觉学习社区
原创征稿
初衷
3D视觉工坊是基于优质原创文章的自媒体平台,创始人和合伙人致力于发布3D视觉领域最干货的文章,然而少数人的力量毕竟有限,知识盲区和领域漏洞依然存在。为了能够更好地展示领域知识,现向全体粉丝以及阅读者征稿,如果您的文章是3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、硬件选型、求职分享等方向,欢迎砸稿过来~文章内容可以为paper reading、资源总结、项目实战总结等形式,公众号将会对每一个投稿者提供相应的稿费,我们支持知识有价!
投稿方式
邮箱:[email protected] 或者加下方的小助理微信,另请注明原创投稿。
▲长按加微信联系
▲长按关注公众号