Kimera / 3D Dynamic Scene Graph
Rosinol 2020 · 论文
一句话总结 — 提出了3D Dynamic Scene Graph(DSG)——一种涵盖网格、物体、代理、地点、房间和建筑的分层、可执行的世界模型——以及SPIN,即首个完全自动的空间感知引擎,它利用开源的Kimera度量-语义SLAM库,从双目+IMU数据构建出这样一个场景图。
问题
几何SLAM生成的度量地图——点云、网格、体素模型——是扁平且无结构的,而度量-语义建图虽然添加了标签,但仍是非分层的:两者都无法为”在高层建筑的二层搜索幸存者”这样的指令提供落地依据,也无法用同一种表示同时支撑运动规划(精细网格)和任务规划(抽象概念)。早期的分层地图是二维、静态且出现在深度学习之前的;Armeni等人和Kim等人开创性的三维场景图是半自动或离线构建的,没有捕捉诸如可通行性之类的可执行信息,也忽略了动态实体。本文探讨的问题是,如何在一个分层空间表示中表示运动中的代理——尤其是人类——并完全从视觉-惯性数据自动构建。
方法与架构
DSG是一个分层有向图,其节点是被赋予空间位置的语义概念,边是成对的时空关系(“代理A在时刻位于房间B中”)。对于单层室内场景,共有五层:
- 度量-语义网格 — 顶点具有位置、法向量、RGB和全景标签;面定义拓扑结构。
- 物体与代理 — 物体携带位姿、包围盒和类别;代理(人类、机器人)携带带时间戳的三维位姿图、网格模型和类别。
- 地点与结构 — 地点对自由空间进行采样,边编码直线可通行性(用于规划的拓扑地图);结构指墙壁/地面/天花板。
- 房间 — 通过邻接(门)边相连,每个房间都关联到其所包含的地点。
- 建筑 — 一个与所有房间相连的根节点。该层级结构是可组合的(例如,可以为多层建筑插入一个”楼层”层)。
SPIN流程(输入:双目+IMU;网格和代理在运行过程中实时增量构建,更高层则在运行结束时构建):
- 第1层由Kimera实现:Kimera-VIO(IMU预积分+固定滞后平滑)、Kimera-RPGO(鲁棒位姿图优化)、Kimera-Mesher,以及Kimera-Semantics,后者将2D全景分割结果融合进基于Voxblox的体素模型中,并进行贝叶斯标签更新,提取出语义网格及ESDF。
- 对人群鲁棒的VIO(DVIO):Lucas-Kanade跟踪器被替换为具有IMU感知能力的光流,5点RANSAC被替换为利用IMU旋转来剔除外点特征轨迹的2点RANSAC。
- 人体节点:一个图卷积网络(Graph-CNN)针对每次检测回归出SMPL网格顶点(6890个顶点,23个关节);完整位姿通过PnP恢复。每个人由一个带零速度运动因子和每次检测先验因子的位姿图进行跟踪;只有当每个关节的移动速度都小于每秒3米时,检测结果才会与轨迹相关联(处于图像边缘或小于30像素的检测会被剔除)。动态掩码将人体像素反馈给Kimera-Semantics,作为仅自由空间的射线,使行人不会在网格中留下”拖影”。
- 物体节点:带类别标签的网格通过欧几里得聚类(阈值为体素尺寸0.1米的两倍)被分割为实例,得到质心+包围盒;若存在CAD模型,则匹配3D Harris关键点(0.15米半径)并用TEASER++配准以恢复完整的物体位姿。
- 地点与房间:拓扑图从ESDF中采样得到;房间来自在检测到的天花板下方0.3米处截取的2D ESDF切面,并在0.2米以上截断,使门口处产生断开——地点根据其落入的连通分量打标签,其余的通过图邻居的多数投票确定。
实验结果
在一个逼真的65米x65米Unity办公室场景(公开发布的uHumans数据集:uH_01/02/03分别含12、24、60个人)以及EuRoC上评测:
- 人群中的VIO(ATE,厘米):在uH_03上,5点RANSAC为160→2点RANSAC为111→DVIO为88;在静态的EuRoC上,该方法与当前最优水平相当(例如MH_01:9.3→8.1)。
- 动态掩码:在uH_03上,使用真值位姿时网格RMSE从0.192米降至0.061米;该增益在使用VIO位姿时依然存在。
- 人体跟踪:平均躯干定位误差从1.20米(单图像检测,uH_03)提升至使用位姿图跟踪器后的0.63米;形状未知的物体定位误差在1.31–1.70米以内,经CAD拟合(TEASER++)的物体定位误差在0.20–0.38米以内。
- 房间解析:在uH_01上,地点到房间的分类精度达到99.89%,召回率达99.84%,误差仅局限于门口处。
对SLAM的意义
这篇论文将视觉-惯性SLAM与稠密人体网格跟踪结合起来,并将SLAM推广为一个”空间感知引擎”——SLAM成为一个更大系统中的一个模块,该系统还能推断关系、动态性和抽象概念。DSG的包围体层级结构提供了快速的碰撞检测,其地点图提供了分层规划能力,其分层剪枝为长期自主运行提供了有理论依据的地图压缩方法。Kimera成为了度量-语义SLAM领域默认的开源研究平台,而DSG这一数据结构直接催生了Hydra以及整条分层场景图脉络。
动手实践
相关条目
- Kimera-VIO — 详细介绍其视觉-惯性前端
- Hydra — 使DSG构建实现实时化与增量化
- Kimera-Multi — 多机器人扩展
- GNC — 出自同一实验室的鲁棒估计方法,被用于后续的场景图优化器
- SemanticFusion — 稠密SLAM中更早期的语义标签融合方法
- Pose graph optimization — 支撑机器人和人体轨迹估计的后端机制