Hydra

Hughes (MIT SPARK) 2022 · 论文

一句话总结 — 首个实时空间感知系统,能从传感器数据增量式构建分层三维场景图(网格→物体→地点→房间→建筑),并在发生回环时同时优化所有层级。

问题

三维场景图刚刚作为一种强大的高层表示出现——一种分层图,其节点是多个抽象层级上的空间概念——但先前的系统都是离线构建的:Kimera的3D Dynamic Scene Graphs与Armeni等人的方法需要数分钟的批处理,依赖对整个环境的ESDF(其内存开销扩展性很差),而且每次发生回环后都必须从头重建图。作者写道,如何在机器人上实时构建这样一种”心智模型”,当时仍是未知领域——包括对场景图而言”回环”意味着什么,因为修正轨迹必须同时一致地修正网格之上的每一层。

方法与架构

在活动窗口内增量式构建第1–3层。 Hydra将Voxblox的TSDF/ESDF在机器人周围以用户设定的半径(8米)进行空间窗口化,从而限制内存占用。在窗口内:marching cubes提取度量-语义网格,同时标记零穿越”父”体素;物体通过对网格顶点按类别进行欧几里得聚类形成(质心+包围盒,当某个质心落入另一个包围盒内时与已有节点合并);地点从广义Voronoi图中提取——即那些到至少2个障碍物等距的体素,作为ESDF brushfire更新的副产物获得——并被增量式稀疏化为图(节点位于具有4\geq 4个基点或角模板的体素处;边通过洪水填充标记确定,并在直线边偏离GVD时进行分裂)。无论环境规模多大,这一过程都在常数时间内完成。

第4层:从拓扑中提取房间。 将障碍物按距离δ\delta进行膨胀会封闭门口并断开房间之间的连接;由于每个地点节点都存储着自己到障碍物的距离,膨胀操作可直接映射到地点子图Gp{\cal G}_{p}上。Hydra扫描[0.45,1.2][0.45, 1.2]米区间内的10个膨胀距离,统计每个被剪枝图Gp,δ{\cal G}_{p,\delta}的连通分量数,取其中位数nrn_{r},选择具有nrn_{r}个连通分量的最大图Gp,δ{\cal G}_{p,\delta^{\star}},并通过以这些连通分量为种子的贪心模块度社区检测,将剩余节点分配给相应房间——耗时仅为毫秒级,而非批处理ESDF所需的时间。

分层回环检测。 每个代理(关键帧)节点携带一个描述子层级:DBoW2外观词汇、邻近物体标签的直方图,以及邻近地点障碍物距离的直方图。检测过程自上而下进行(地点→物体→外观);验证过程自下而上进行,先对视觉特征做RANSAC,若视觉验证失败则对匹配的物体做TEASER++配准——因此即使视角或光照变化破坏了匹配,仍可通过语义完成验证。

场景图优化。 前端组装完整图,并将网格降采样为控制点(八叉树顶点聚类)。后端构建一个嵌入式变形图——代理位姿图+网格控制点+地点的最小生成树,通过跨层边相连——并利用刚性变换重构形式,将其作为位姿图优化问题,用GTSAM中的GNC求解器求解,该求解器同时也能剔除作为外点的错误回环。剩余网格被重新插值,重新计算物体质心/包围盒,合并重叠节点(0.4米内的地点;标签相同且包围盒相互包含的物体),并重新检测房间。房间精度按体素方式评分为

Precision=1RereRemaxrgRgrgrere,Recall=1RgrgRgmaxreRerergrg\text{Precision}=\frac{1}{|R_{e}|}\sum_{r_{e}\in R_{e}}\max_{r_{g}\in R_{g}}\frac{|r_{g}\cap r_{e}|}{|r_{e}|},\qquad \text{Recall}=\frac{1}{|R_{g}|}\sum_{r_{g}\in R_{g}}\max_{r_{e}\in R_{e}}\frac{|r_{e}\cap r_{g}|}{|r_{g}|}

快思考与慢思考。 Hydra将帧率级的早期感知(特征跟踪、分割)、亚秒级的中层模块(网格、物体、地点、前端)以及缓慢的高层模块(回环检测、后端优化、房间检测)并行执行——除2D分割网络外,全部运行在CPU上。

实验结果

对SLAM的意义

Hydra将3D Dynamic Scene Graph从一种离线构建方法转变为实时空间感知系统,其嵌入式变形图后端是首个能将整个场景图——网格、地点、物体、房间——与轨迹联合优化的算法,将位姿图优化推广到了分层地图上。它的五层结构成为了事实上的Spatial AI表示标准,也是MIT SPARK生态体系的基础——Hydra-Multi(多机器人)、Clio(任务驱动的开放集场景图)、Khronos(时空动态)——使机器人能够在多个抽象层级上接受语言指令。

相关条目