Kimera实时重建的语义SLAM系统
Kimera是C++实现的一个具有实时度量的语义SLAM系统,使用的传感器有相机与IMU惯导数据来构建环境语义标注的3D网格,Kimera支持ROS运行在CPU上的高效模块化的开源方案。包含了四个模块:
快速准确的视觉-惯导里程计VIO流水线(Kimera-VIO)
基于鲁棒位姿的图优化完整SLAM实现(Kimera-RPGO)
单帧和多帧3D网格生成器(Kimera-Mesher)
语义标签的3D网格生成器(Kimera-Semantics)
github:https://github.com/MIT-SPARK/Kimera
摘要
论文提供了一个开源的C++库,用于实时度量语义视觉惯性同时定位和构图系统(SLAM)。该库超越了现有的视觉和视觉惯性SLAM库(如ORB-SLAM、VINSMono、OKVIS、ROVIO),在3D环境中中实现了网格重建和语义标记。Kimera的设计考虑了模块化,它有四个关键组件:用于快速准确状态估计的视觉惯性里程计(VIO)模块、健壮的姿态图全局轨迹估计优化器、快速网格重建的轻量级三维网格模块和密集三维度量语义重建模块。这些模块可以单独运行,也可以组合运行,因此Kimera可以很容易被修改单独作为VIO或完整的SLAM系统。Kimera是基于ROS的在CPU上实时运行,从语义标记的图像中生成一个三维度量语义网格,可以通过现代的深度学习方法获得。我们希望Kimera提供的灵活性、计算效率、健壮性和准确性将为未来的度量语义SLAM和感知研究奠定坚实的基础,并允许研究人员跨多个领域(如VIO、SLAM、3D重建)进行研究升级,在不需要从头开始的情况下,对自己的工作进行基准测试和原型开发)。
方案对比
Kimera是一个开源的C++库,用于实时度量语义SLAM。图(a)IMU速率下的视觉惯性状态估计,以及全局一致的鲁棒轨迹估计,计算出(b)可用于快速避障的场景低延迟局部网格,并构建(c)全局语义注释的3D网格,该网格准确地反映了地面真值模型(d)。
主要内容与贡献
Kimera的输入是立体图像和惯导测量值,输出有:
(1)IMU进行的有效的状态估计;
(2)全局一致的轨迹估计;
(3)多个环境网格,包括快速局部网格和基于语义标签的全局网格。
系统框图
Kimera用四个线程以不同帧率接收输入和输出(例如IMU、图像帧和关键帧)。
(1)Kimera-VIO前端,该获取立体图像和IMU数据,前端执行在线预先积分,从原始IMU数据中获得两个连续关键帧之间相对状态的简洁预积分测量值。视觉前端检测Shi-Tomasi角点,使用Lukas-Kanade跟踪器跨帧跟踪它们,找到左右立体匹配,并执行几何验证。并输出特征轨迹和预先积分的IMU测量值。并发布基于IMU帧率的状态估计值。
(2)Kimera-VIO输出优化的状态估计,在每个关键帧处,将预积分的IMU和视觉测量值添加到构成VIO后端。
(3)位姿图优化Kimera-RPG,检测当前关键帧与过去关键帧之间闭环,闭环检测依赖于DBoW2库,使用词袋(bag-of-word)表示法来快速检测假定的闭环。可检测闭环、剔除出格点并估计全局一致轨迹。由Kimera-Mesher快速生成两种类型的3D网格:单帧网格和多帧网格(就是点云的三角化后的表面重建等算法)
(4)Kimera-Semantics语义标签,基于Kimera-VIO的姿势估计,使用2D语义标注的图像(在每个关键帧处生成)语义标注全局网格;可以用像素级2D语义分割的现成工具获得2D语义标签,获得细化的语义标签网格。
与真实值之间的颜色差异图
总结
Kimera是一个开源的C++库,用于可度量语义SLAM。它包括最新的可视的里程计实现、健壮的位姿图优化、网格重建和三维语义标记。它在CPU上实时运行,并提供一套连续的集成和基准测试工具,有兴趣的可以自行研究。