Kimera / 3D Dynamic Scene Graph

Rosinol 2020 · 论文

一句话总结 — 提出了3D Dynamic Scene Graph(DSG)——一种涵盖网格、物体、代理、地点、房间和建筑的分层、可执行的世界模型——以及SPIN,即首个完全自动的空间感知引擎,它利用开源的Kimera度量-语义SLAM库,从双目+IMU数据构建出这样一个场景图。

问题

几何SLAM生成的度量地图——点云、网格、体素模型——是扁平且无结构的,而度量-语义建图虽然添加了标签,但仍是非分层的:两者都无法为”在高层建筑的二层搜索幸存者”这样的指令提供落地依据,也无法用同一种表示同时支撑运动规划(精细网格)和任务规划(抽象概念)。早期的分层地图是二维、静态且出现在深度学习之前的;Armeni等人和Kim等人开创性的三维场景图是半自动或离线构建的,没有捕捉诸如可通行性之类的可执行信息,也忽略了动态实体。本文探讨的问题是,如何在一个分层空间表示中表示运动中的代理——尤其是人类——并完全从视觉-惯性数据自动构建。

方法与架构

DSG是一个分层有向图,其节点是被赋予空间位置的语义概念,边是成对的时空关系(“代理A在时刻tt位于房间B中”)。对于单层室内场景,共有五层:

  1. 度量-语义网格 — 顶点具有位置、法向量、RGB和全景标签;面定义拓扑结构。
  2. 物体与代理 — 物体携带位姿、包围盒和类别;代理(人类、机器人)携带带时间戳的三维位姿图、网格模型和类别。
  3. 地点与结构 — 地点对自由空间进行采样,边编码直线可通行性(用于规划的拓扑地图);结构指墙壁/地面/天花板。
  4. 房间 — 通过邻接(门)边相连,每个房间都关联到其所包含的地点。
  5. 建筑 — 一个与所有房间相连的根节点。该层级结构是可组合的(例如,可以为多层建筑插入一个”楼层”层)。

SPIN流程(输入:双目+IMU;网格和代理在运行过程中实时增量构建,更高层则在运行结束时构建):

实验结果

在一个逼真的65米x65米Unity办公室场景(公开发布的uHumans数据集:uH_01/02/03分别含12、24、60个人)以及EuRoC上评测:

对SLAM的意义

这篇论文将视觉-惯性SLAM与稠密人体网格跟踪结合起来,并将SLAM推广为一个”空间感知引擎”——SLAM成为一个更大系统中的一个模块,该系统还能推断关系、动态性和抽象概念。DSG的包围体层级结构提供了快速的碰撞检测,其地点图提供了分层规划能力,其分层剪枝为长期自主运行提供了有理论依据的地图压缩方法。Kimera成为了度量-语义SLAM领域默认的开源研究平台,而DSG这一数据结构直接催生了Hydra以及整条分层场景图脉络。

动手实践

相关条目