前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >LIR-LIVO:一种轻量级、鲁棒的激光雷达/视觉/惯性里程计,具备对光照变化具有适应性的深度特征

LIR-LIVO:一种轻量级、鲁棒的激光雷达/视觉/惯性里程计,具备对光照变化具有适应性的深度特征

作者头像
点云PCL博主
发布2025-03-07 15:24:31
发布2025-03-07 15:24:31
160
举报
文章被收录于专栏:点云PCL点云PCL

文章: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 在激光雷达和光照退化环境下的鲁棒性。主要贡献:

  • 提出了一种鲁棒、轻量级、抗光照变化的 LIVO 系统,适用于激光雷达和视觉受限环境。该系统在测量层级通过迭代卡尔曼滤波(Iterative Kalman Filter, IKF) 紧密融合激光雷达、视觉和惯性数据,其中激光雷达点云提供精确的视觉特征深度信息。
  • 采用基于深度学习的 SuperPoint 算法进行自适应视觉特征提取,并使用 LightGlue 进行高效特征匹配。这两者在剧烈光照变化场景下展现出卓越的鲁棒性,极大地增强了VIO 子系统在视觉退化环境 下的适应能力。
  • VIO子系统采用轻量级设计,并借助激光雷达深度关联,无需维护和更新视觉3D地标点及子地图。它仅在滑动窗口内保留有限数量的历史关键帧,用于构建重投影误差进行优化。此外,优化的特征点深度分布进一步提升了位姿估计的精度。
  • 系统代码已在 GitHub 开源,旨在促进社区交流并推动该领域的研究发展。

图 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 所示:

  • 远距离特征点对旋转估计更敏感,而近距离特征点更有助于平移估计。
  • 设定1m–200m 的深度范围,划分为10 个均匀区间(每个 20m),确保特征点均匀分布。
  • 在特征点稀疏的区间内,额外提取特征点,以保持均匀分布。
  • 依据场景动态调整区间大小,例如:室内最大深度通常不超过 50m,而室外一般超过 100m。

该方法避免了视觉特征点三角测量的需求,直接利用高精度的 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 数据集是使用无人机采集的,而其他三个数据集则是手持设备采集的。

  • NTU-VIRAL 采用左侧灰度相机、水平 16 通道 OS1 Gen1 LiDAR 及其内部 IMU,地面真实值由 Leica Nova MS60 MultiStation 提供。
  • Hilti’22 数据集采用左侧灰度相机、Hesai PandarXT-32 LiDAR 以及嵌入式手机级 IMU,地面真值由一种新的数据采集方法生成。
  • R3LIVE-Dataset 和 FAST-LIVO-Dataset 使用 RGB 相机、LiVOX AVIA LiDAR 传感器及其内部 IMU,未使用外部地面真实值系统。

所有实验均在一台消费级计算机上进行,该计算机配备 Intel Core i7-14700K 处理器、32GB 内存和 NVIDIA GeForce RTX 4080 Super GPU。

基准测试实验

本实验在 NTU-VIRAL、Hilti’22、R3LIVE-Dataset 和 FAST-LIVO-Dataset 的 20 条序列上进行评估。除了提出的 LIR-LIVO 方法,我们还对比了多个最新的开源算法,包括:

  • R3LIVE:一种稠密直接 LiDAR-惯性-视觉里程计系统
  • FAST-LIO2:一种直接 LiDAR-惯性里程计系统
  • FAST-LIVO:一种快速直接 LiDAR-惯性-视觉里程计系统
  • SR-LIVO:基于 R3LIVE 的扫掠重建 LiDAR-惯性-视觉里程计系统

这些 SOTA(State-of-the-Art)算法均从其官方 GitHub 仓库下载,并采用推荐的室内外 LiDAR 配置。对于 SR-LIVO 和 FAST-LIVO,我们扩展了原始实现,加入了鱼眼相机模型和新的 LiDAR 数据格式。此外,在 R3LIVE 中,我们禁用了相机的实时在线内外参估计,以保证所有方法在同样的设置下进行比较。除这些改动外,所有参数(如提取的特征点数量、光流跟踪的金字塔层数、视觉观测的协方差等)均保持为原作者在源码中的默认值。

  • LIR-LIVO 在大多数序列上获得最低的 RMS 绝对平移误差,表现优于其他 SOTA 方法。
  • NTU-VIRAL 数据集:LIR-LIVO 在“eee_01”序列上的误差仅为 0.139m,显著低于 FAST-LIO2 和 FAST-LIVO。
  • Hilti’22 数据集:LIR-LIVO 在“Exp06”序列上的误差为 0.038m,优于 SR-LIVO 和 FAST-LIVO。由于 R3LIVE 没有外部 IMU 配置,因此未在 Hilti 数据集上测试。
  • Hilti’22 数据集的部分序列(Exp14、Exp16 和 Exp18)在光照条件较差的室内环境中采集,增加了视觉前端和位姿估计的难度,导致 FAST-LIVO 和 SR-LIVO 在这些挑战性序列上表现不佳甚至失败。

表 III 总结了不同序列的 3D 端到端误差:

  • SR-LIVO 在“hku_campus_seq_00”上表现最佳
  • LIR-LIVO 在“hku_campus_seq_02”上取得 0.051m 的误差,并在“degenerate_seq_00”上表现优异
  • FAST-LIVO 在“degenerate_seq_00”上表现较差
  • R3LIVE 在“hku_park_00”等简单场景中表现良好,但整体一致性较差
  • LIR-LIVO 在大多数场景(尤其是复杂环境)中表现更稳健

计算时间分析

如 表 IV 所示,LIR-LIVO 具有较高的计算效率。其中:

  • VIO(视觉惯性里程计)子系统占据最多的计算时间,而 LIO(LiDAR-惯性里程计)子系统则较为高效。
  • 尽管前端采用了基于深度学习的方法,但借助 GPU 加速,其效率高于传统方法(如 Shi-Tomasi 角点检测和暴力匹配)。
  • 视觉前端在 VIO 子系统中占据约 三分之二 的计算时间,其中大部分时间用于滑动窗口内关键帧与新帧之间的特征匹配。
  • 计算时间基于 滑动窗口大小为 5 进行测量。

深度分布影响

在 NTU-VIRAL 数据集上进行消融实验,以评估 视觉特征点的深度分布均匀性 对系统性能的影响:

  • 在每帧图像中,我们对深度关联的特征点进行排序,并均匀下采样至 50 个点。
  • 该方法显著减少了 ESIKF(扩展平方根信息卡尔曼滤波)更新中的矩阵维度,从而提升了计算效率。
  • 表 V总结了实验结果,显示该方法在 7 条序列上取得了优于原始方法的表现。

总结

本研究提出了 LIR-LIVO,一种新型的 LiDAR-惯性-视觉里程计系统,旨在解决 LiDAR 信号衰减 和 复杂光照条件 下的挑战。该系统结合 LiDAR 深度关联与均匀深度分布、基于深度学习的视觉特征 以及 轻量级视觉子系统,实现高效且稳健的状态估计。基准数据集的全面评估表明,LIR-LIVO 在 LiDAR 退化环境下表现优越。未来工作将探索 集成更多传感器模态 并 优化资源受限平台的实时性能。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点云PCL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档