文章:LIR-LIVO: A Lightweight,Robust LiDAR/Vision/Inertial Odometry with Illumination-Resilient Deep Features
作者:Shujie Zhou, Zihao Wang, Xinye Dai, Weiwei Song and Shengfeng Gu
编辑:点云PCL
摘要
本文提出了 LIR-LIVO,一种轻量级且鲁棒的激光雷达-惯性-视觉里程计(LiDAR-Inertial-Visual Odometry,LIVO)系统,专为复杂光照环境和退化场景设计。该方法利用基于深度学习的抗光照变化特征,并结合 LIVO 进行精确定位。通过引入先进技术,例如基于激光雷达点云的深度关联实现特征的均匀深度分布,以及采用 SuperPoint 和 LightGlue 进行自适应特征匹配,LIR-LIVO 在保证低计算成本的同时,实现了最先进(SOTA) 的精度和鲁棒性。在 NTU-VIRAL、Hilti22 和 R3LIVE-Dataset 等基准数据集上进行了实验,结果表明,LIR-LIVO 在标准和挑战性数据集上均超越了其他 SOTA 方法。特别是在 Hilti22 数据集中,该方法在低光照环境下仍能实现稳健的位姿估计。
主要贡献
本文提出了一种轻量级、鲁棒且具备抗光照变化能力的激光雷达-惯性-视觉里程计系统(LIR-LIVO)。该系统利用基于深度学习的抗光照特征点和激光雷达-视觉深度关联,在保持低计算成本的同时,实现高鲁棒性。该方法继承了 FAST-LIO2 的直接法进行激光雷达-惯性里程计(LIO),通过优化点到平面的距离来进行状态估计。为了更有效地利用激光雷达点云辅助视觉特征点的深度计算,我们采用扫描重组(scan recombination) 方法,将高频、顺序采样的激光雷达点云分割成与相机采样时间戳一致的独立扫描,从而保证激光雷达与相机的频率一致性。随后使用顺序更新算法(sequential update algorithm) 结合 LIO 和 VIO(视觉-惯性里程计)系统进行状态更新。
通过将激光雷达点与视觉特征点关联,我们能够直接获得视觉特征的精确3D位置,无需依赖视觉三角化或维护视觉特征的3D点。这不仅提高了 VIO 系统的计算效率,同时提升了视觉3D点的精度。此外关键创新在于融合CNN提取的深度视觉特征,并采用轻量级、高效的深度学习特征匹配算法,使系统在强光照变化和快速运动 场景下表现优越,从而显著增强 LIVO 在激光雷达和光照退化环境下的鲁棒性。主要贡献:
图 1. LIR-LIVO 在 Hilti22 数据集序列 “Exp16 Attic to Upper Gallery 2” 上的 3D 点云建图结果。该序列采集自牛津大学谢尔登剧院(Sheldonian Theatre)的室内环境,并被归类为“高难度”级别。
主要内容
整体架构
图 2 展示了我们系统的整体架构,该系统由两个主要模块组成:
为了同步激光雷达帧和相机帧的时间戳,采用扫描重组(Sweep recombination) 方法。因此ESIKF(扩展状态迭代卡尔曼滤波) 通过顺序更新进行状态估计,使得激光雷达更新的位姿能作为高精度先验 提供给视觉模块进行优化。视觉前端采用 SuperPoint 和 LightGlue 进行特征提取与匹配,并利用激光雷达点云直接关联特征点深度。在此过程中对特征点的深度进行筛选,以确保深度分布的均匀性。
在激光雷达点云管理方面,沿用 FAST-LIO2 的策略,采用 ikd-Tree 进行高效存储和检索。不同于传统 VIO 系统直接维护 3D 视觉地标点地图,采用滑动窗口策略,仅在每帧相机数据结构中存储 特征点及其对应深度,同时维护固定数量的相机帧。位姿估计 采用点到平面误差(point-to-plane error) 用于激光雷达位姿优化。重投影误差(reprojection error) 用于视觉位姿优化。
图 2. LIR-LIVO 框架,通过扫描重组(sweeping recombination),激光雷达帧的时间戳与相机帧的时间戳同步,实现激光雷达和视觉测量的顺序更新。视觉前端采用 SuperPoint 和 SuperGlue 进行特征提取与匹配,并对特征点的深度分布进行优化。图中黑色点表示已关联深度的选定特征点。
扫描重组(Sweep Recombination)
为了在多传感器融合系统中实现LiDAR 和相机数据的精准同步,本方法采用扫描重组技术。该方法使 LiDAR 原始点云和相机图像对齐到相同的频率,从而实现顺序一致的状态更新。具体而言重建的 LiDAR 扫描的结束时间戳与相机捕获图像的时间戳对齐,确保两种模态的时间一致性。如图 1 所示,通过拆解原始LiDAR扫描并重构以匹配相机时间戳,可实现LiDAR帧与相机帧的同步,从而在后续处理中顺利进行基于 LiDAR 和视觉数据的状态更新。
图 3. 扫描重组过程。原始 LiDAR 帧被分解并重构,以与相机帧同步。
深度关联与分布(Depth Association and Distribution)
该方法将LiDAR 点与视觉特征点的深度信息关联,在相机视野内,使用滑动窗口维护一定数量的 LiDAR 点,并投影到以相机为中心的单位球面。然后,利用 3D K-D树 进行最近邻搜索,以找到最接近的 5个LiDAR点。接着对这些点进行有效性检查,确保其满足点到平面的残差阈值(0.05m),从而避免错误匹配。在成功关联深度信息后,本方法确保特征点在多个深度范围内均匀分布,以提高视觉里程计的准确性和鲁棒性。如图 4 所示:
该方法避免了视觉特征点三角测量的需求,直接利用高精度的 LiDAR 深度信息,提高位姿估计的精度。同时,均匀分布的特征点深度确保了不同深度信息的有效利用,提高了系统的稳定性和计算效率。
图 4. 相机旋转与平移对不同深度特征点的敏感度差异
基于深度学习的视觉前端(Deep Learning-based Visual Frontend)
目前SLAM 系统通常采用光流(optical flow)进行特征点跟踪,但在剧烈光照变化的场景下表现不稳定。本方法采用深度学习算法,确保在复杂光照条件下依然能准确提取和匹配关键点。
1. SuperPoint 关键点检测与描述
本方法集成 SuperPoint 进行特征点检测和描述,该模型基于自监督学习,利用CNN提取稳定且可重复的关键点及其特征描述子。SuperPoint 在大规模数据集上训练,适应不同的光照、尺度和视角变化,在低光照或过曝场景下仍能稳定检测关键点。
2. LightGlue 特征匹配
本方法采用 LightGlue 进行特征匹配,它基于轻量级 Transformer 结构,通过粗到细(coarse-to-fine)的策略,高效剔除无关匹配点,仅保留高置信度的特征匹配。LightGlue 对光照变化、遮挡和视角变化具备良好的鲁棒性,确保帧间匹配稳定。
3. 深度学习前端的优势
在低光照的室内环境(如点光源场景)下,传统的光流跟踪和特征匹配方法容易失效,而SuperPoint + LightGlue 依然能够可靠匹配特征点。
该方法利用 ONNX + NVIDIA TensorRT 进行高效部署,并采用 16-bit 浮点运算,确保计算高效。如图 5 所示:
图 5. 所提出视觉前端的性能表现
状态更新模型
在我们的系统中,状态更新过程主要依赖于 IMU 测量的融合。相机、LiDAR 和 IMU 之间的外参和时间偏移都已经预先标定,而相机的内参也已标定。IMU 坐标系被设定为身体坐标系,全球坐标系则从第一个 IMU 坐标系的位置初始化。系统的状态更新动态模型是离散的,主要由 IMU 的测量数据驱动。通过对状态方程进行积分,可以推导出状态预测和协方差的更新。值得注意的是,我们关注的是状态误差的估计,可以应用 ESIKF 方法进行优化和更新。
测量更新模型
测量更新过程分为两个主要步骤:首先,使用 LiDAR 的点到平面残差来更新状态;其次,利用视觉重投影误差进一步优化状态。
1. LiDAR 测量更新:如图 3 所示,LiDAR 扫描数据首先被分解并重新组合,以实现与相机帧的同步。同步之后,通过反向传播修正运动失真,确保 LiDAR 点与相机帧的时间对齐。在此过程中,LiDAR 点首先被转换到 IMU 坐标系中,再通过 INS 提供的位姿将其转换到全局坐标系。假设点位于地图中五个邻近点定义的局部平面上,因此点到平面的残差为零。完成 LiDAR 测量更新后,LiDAR 点会通过外参转换到相机坐标系,为后续的视觉测量更新做准备。
2. 视觉测量更新:视觉模块使用滑动窗口机制,保持一定数量的关键帧,每个关键帧包含位姿信息、特征点、特征描述符和相应的深度信息。对于新添加的图像,是否选为关键帧由其相对于第一个关键帧的位姿变化决定。如果符合条件,特征点会通过 SuperPoint 提取,并与同时间戳的 LiDAR 点云进行深度关联。随后,通过匹配特征点并最小化重投影残差来进行位姿估计。只有当滑动窗口中的关键帧与新关键帧的视差大于 15 像素时,才会将其包括在位姿估计过程中。图 6 展示了视觉模块的估计策略。
图6. 视觉模块的框架。圆圈表示通过 SuperPoint 提取的特征点,方框表示对应的 3D 地标。实线表示通过深度关联获得的已知深度的点对。
实验结果
评估数据集
本文使用多个数据集进行性能评估,包括 FAST-LIVO-Dataset、R3LIVE-Dataset、NTU-VIRAL以及 Hilti22 。这些数据集分为两类:第一类具有参考地面真实值(ground truth),如 NTU-VIRAL 和 Hilti’22;第二类没有参考地面真实值,但其轨迹的起点和终点具有较高的一致性,如 FAST-LIVO-Dataset 和 R3LIVE-Dataset。NTU-VIRAL 数据集是使用无人机采集的,而其他三个数据集则是手持设备采集的。
所有实验均在一台消费级计算机上进行,该计算机配备 Intel Core i7-14700K 处理器、32GB 内存和 NVIDIA GeForce RTX 4080 Super GPU。
基准测试实验
本实验在 NTU-VIRAL、Hilti’22、R3LIVE-Dataset 和 FAST-LIVO-Dataset 的 20 条序列上进行评估。除了提出的 LIR-LIVO 方法,我们还对比了多个最新的开源算法,包括:
这些 SOTA(State-of-the-Art)算法均从其官方 GitHub 仓库下载,并采用推荐的室内外 LiDAR 配置。对于 SR-LIVO 和 FAST-LIVO,我们扩展了原始实现,加入了鱼眼相机模型和新的 LiDAR 数据格式。此外,在 R3LIVE 中,我们禁用了相机的实时在线内外参估计,以保证所有方法在同样的设置下进行比较。除这些改动外,所有参数(如提取的特征点数量、光流跟踪的金字塔层数、视觉观测的协方差等)均保持为原作者在源码中的默认值。
表 III 总结了不同序列的 3D 端到端误差:
计算时间分析
如 表 IV 所示,LIR-LIVO 具有较高的计算效率。其中:
深度分布影响
在 NTU-VIRAL 数据集上进行消融实验,以评估 视觉特征点的深度分布均匀性 对系统性能的影响:
总结
本研究提出了 LIR-LIVO,一种新型的 LiDAR-惯性-视觉里程计系统,旨在解决 LiDAR 信号衰减 和 复杂光照条件 下的挑战。该系统结合 LiDAR 深度关联与均匀深度分布、基于深度学习的视觉特征 以及 轻量级视觉子系统,实现高效且稳健的状态估计。基准数据集的全面评估表明,LIR-LIVO 在 LiDAR 退化环境下表现优越。未来工作将探索 集成更多传感器模态 并 优化资源受限平台的实时性能。