← 返回

tutorial /

Hydra 与 Clio 阅读笔记

Hydra 研究分层三维场景图的实时构建与回环优化;Clio 研究如何根据任务选择物体和区域的粒度。两者都将语义对象与空间结构结合,但场景图本身不负责全部探索、避障和运动控制。

物体识别与实例关联

Hydra

Hydra 将二维语义分割结果通过深度和相机位姿融合进三维地图,再对同一语义类别的网格顶点分别做欧氏聚类。每一簇形成一个物体,保存类别、质心、包围盒及对应表面。

语义类别区分“是什么”,空间聚类区分“有几件”。两把分开的椅子可以成为两个实例;同类物品紧贴时可能被合并。识别粒度受前端类别集合限制,建立场景图不会自动增加部件级识别能力。

新物体与已有节点类别相同、空间重叠时,系统把新顶点并入已有节点。论文以“一个物体的质心落在另一个物体的包围盒中”近似判断重叠。新观测用于补全和修正已有物体,而不是每帧新增节点。

Clio

Clio 用 FastSAM 提取图像区域,用 CLIP 描述区域的开放词汇语义,再采用 Khronos 的跨帧关联与重建方法形成三维片段(primitives)。

新区域只有在 CLIP 特征相似度和三维重叠程度都满足阈值时,才关联到已有的跟踪记录(track);多个候选中选择重叠程度最高的一个。没有匹配则新建 track,长时间没有新观测则结束 track,利用其中的多帧数据重建 primitive,并平均 CLIP 特征。

后端再对这些片段进行任务驱动聚类。物体片段只有在三维包围盒非零重叠时,才成为候选合并对象。系统比较它们对整组任务的相关性,优先合并任务信息损失最小的一对,直到进一步合并造成的信息损失超过阈值。这是凝聚式信息瓶颈(Agglomerative IB)的应用。

因此,跨帧关联与任务聚类不是同一件事:

  • 跨帧关联处理同一物体的重复观测。
  • 任务聚类决定哪些片段或物品需要被分别表示。

例如,“拿调料包”可以对应一组调料包;分别取某种调料时,则需要保留更细的区分。Clio 的一个节点不一定对应现实中的一件物品。

细粒度与阈值

Clio 后端主要做合并,细粒度仍依赖前端。如果两本书始终被分成同一个区域,后端不能凭空拆开;如果 CLIP 无法区分其特征,任务聚类也无法补出这种区别。论文中的钢琴、琴键、琴弦是动机示例,不是已验证的任意部件识别能力。

几何阈值同样有局限。IoU 是交集体积与并集体积的比例,比固定距离阈值更能适应物体尺寸,因此杯子和椅子不一定必须使用不同的 IoU 阈值。但同样两厘米的定位误差,对杯子的影响显著大于椅子;遮挡会降低同一物体不同观测间的重叠,而包围盒可能在实际表面没有接触时发生重叠。

Hydra 的质心包含规则也只是近似判断。两篇论文都没有解决按物体尺度、粒度和观测不确定性通用地调整关联阈值的问题。几何重叠可以作为身份关联的证据,不能单独保证关联正确。

任务相关性与信息保留

Clio 根据 CLIP 相似度构造任务相关性分布,并设置 null task 表示不相关内容。这里的相关性不是任务成功概率。刀和叉都与摆餐桌相关,也不代表可以把它们合并;论文明确指出了这类过度聚类风险。

任务压缩的价值在于减少维护和使用表示的成本。如果成本可接受,没有必要因此丢弃原始证据。可以保留观测或 primitives,在上层按任务生成简化视图。存储的信息与当前决策使用的信息不必相同。这是可考虑的设计取舍,不是 Clio 已经验证的多视图方案。

自由空间与房间层次

Places 的构建

Hydra 从深度和位姿增量构建局部 TSDF 与 ESDF:TSDF 支持表面重建,ESDF 提供位置到最近障碍物的距离。障碍判断主要依赖几何,不必先识别物品类别。

系统在 ESDF 更新过程中提取广义 Voronoi 图(GVD),即由与多个障碍表面等距的位置构成的空间骨架,再将其稀疏化为 places 图。节点保留自由空间中的代表位置,边表示直线可通行关系。如果直线过度偏离原骨架,就插入中间节点。

深度与位姿 → 局部 TSDF / ESDF → GVD → places 图

place 不是厨房、办公室等语义区域,也不只是机器人已经走过的轨迹点。它来自已观测自由空间。未知空间不能当作已确认可通行的区域。

房间划分与物体归属

Hydra 利用空间瓶颈划分房间:膨胀障碍物会先关闭狭窄的门口,使自由空间分成多个连通部分。在 places 图中,只需删除到障碍物距离不足的节点,就能近似实现这种操作。

算法尝试多个膨胀距离,选择较稳定的连通分量作为房间核心,再通过带种子的社区发现分配其余节点。物体和 agent 节点则连接到活动窗口内最近的 place。物体归属可以沿下列关系查询:

物体表面 → 物体节点 → place → 房间 → 建筑

Hydra 这篇论文划分房间,但不自动将其命名为厨房或卧室。开放式功能区没有明显空间瓶颈,也可能无法分开。最近 place 规则还可能跨越薄墙,门口物品或跨区域家具的归属并不总是可靠。

Clio 复用 places 构建方法,并用能够看到该位置的图像 CLIP 特征均值描述 place,再沿 places 图进行任务驱动聚类。因此 region 可以是没有墙壁隔断的工作区或小厨房区。正文没有详细展开物体到 region 的跨层归属规则,不能假定存在精确的区域包含判断。

在自己的表示中,可以将观察关系、区域归属和交互位置分开。机器人从一个房间透过门看到物品,不意味着物品属于当前房间,也不意味着当前位置适合操作它。

导航与计算成本

Clio 的实机实验用语言匹配目标物体,再通过 Dijkstra 在 places 图中搜索路线。图搜索提供的是经过哪些位置,不是底层运动指令。机身尺寸、地面与落差、转弯约束、动态障碍仍需要导航和控制模块处理。

三维地图不是在完整重建后一次性提取路径,而是边观测边更新。Hydra 用局部体素窗口限制计算,保留提取出的网格与图结构;局部感知较快,房间检测和全局优化异步运行。

从成本上看,稀疏图搜索通常不是主要问题。需要衡量的是深度融合、距离场更新、视觉特征提取和全局维护:

  • Hydra 的几何融合、places 提取和图优化主要运行在 CPU,依赖内存与带宽。
  • 二维语义分割以及 Clio 的 FastSAM、CLIP 主要使用 GPU。
  • 论文没有完整的资源利用率与功耗剖析,不能仅凭几个模块的耗时断言整套系统由 CPU 或 GPU 主导。

局部扩散策略可以生成避障动作,但如果输入只有当前观测和目标方向,就未必知道如何绕过视野外的墙或避开死胡同。长期空间记忆、路线选择和局部动作生成是不同职责;它们可以组合,不必在扩散模型与场景图之间二选一。

对于局部策略能够可靠完成的区域,只保留门口、分叉和关键位置可能已经足够。是否需要更密的 places,取决于相邻节点间的导航难度,而不是场景图必须具有固定层级或密度。

策略驱动拓扑图

一种替代几何构图的方案是利用局部策略提出路径,再根据执行结果扩展图。此时边表示“机器人及其策略在给定条件下能够完成这次移动”,而不只是几何上存在自由通路。

预测与验证需要分开:

策略生成路径 → 候选连接
当前深度或局部障碍检查 → 允许执行
实际成功通过 → 已验证连接

节点可以放在门口、分叉、关键转弯、新区域入口或局部策略有效范围的边界,不必沿每个预测轨迹点建节点。实际轨迹构成已验证的连接,预测路径只提供扩展候选。仍需定位或地点识别,才能避免重复建图并建立回环。

这可以减少对全局稠密重建的依赖,但不能省略局部安全检查,也不能直接得到完整的自由空间拓扑:

  • 模型未生成某条路径,不代表该处不可达。
  • 曾经成功通过的路,之后可能被人或关闭的门阻塞。
  • A 到 B 可达不保证反向可达,连接可能需要方向与朝向条件。
  • 更换机器人或局部策略后,已有连接可能需要重新验证。

边可以记录成功与失败次数、最近验证时间和临时阻塞状态。方案是否更省算力,需要将候选路径采样、定位和安全检查一起计入;大量扩散采样可能只是把成本转移到 GPU。应与几何拓扑比较导航成功率、探索覆盖、更新成本和错误恢复能力,而不只比较建图时间。

探索与观测覆盖

实际轨迹只记录走过的位置,不足以判断探索完成。站在门口看到半个房间,并不代表已经进入房间或检查了遮挡后的空间。

需要分别记录:

  • 访问状态:哪些节点到达过、哪些边通过过。
  • 观测覆盖:传感器看到了哪些区域。
  • 待探索分支:未进入的通道、未确认的空间和需要补充视角的位置。

Hydra 的轨迹与回环机制可以识别重访,但不负责判断探索是否充分。两篇论文都没有完整提出自主探索目标选择和停止机制。Clio 实机实验的建图阶段由人遥控,不能作为自主探索的验证。

策略驱动拓扑需要额外记录未探索分支,否则目标导向的轨迹可能一直遗漏侧面的通道。可以从局部地图的已知/未知边界提取候选,再将其保存为拓扑状态。只检测语义上的门口不够,因为开放通道也可能通向未知区域。

地图纠错

定位漂移与重复结构

机器人绕行后再次到达同一地点,里程计可能已产生偏差,使同一房间或物体被重复建图。Hydra 利用 places 的几何统计、物体类别统计和图像外观寻找回环候选,再通过视觉特征或物体配准验证相对位姿。

确认约束后,系统优化由机器人位姿、网格控制点和 places 组成的变形图,使回环对齐,同时尽量保持局部结构。误差沿轨迹分布,并非统一平移整张地图即可消除。

修正会传播到其他层:

优化位姿、网格控制点与 places
→ 插值调整完整网格
→ 重算物体质心与包围盒
→ 合并重叠的 places 和同类物体
→ 重新检测房间

因此,回环不仅修正机器人轨迹,也可能改变物体身份和房间划分。

错误回环与合并撤销

相似房间可能造成错误回环。Hydra 使用 GNC 鲁棒优化识别与其他约束不一致的回环,并保留未合并的图版本。如果原先接受的回环后来被判为异常,就可以撤销相关的节点合并。

这种恢复能力针对回环及其引起的结构合并,不是所有感知错误的通用回滚机制。持续的语义误识别、分割错误、真实物体移动,以及不合理的功能区划分,都不一定能通过几何优化解决。Clio 的受影响分量重新聚类,也不能替代这套一致性维护机制。

对于策略驱动拓扑,仍需要处理重复地点、错误匹配及位置修正后的物品归属变化。可以保留原始观测与执行记录,将节点对应、合并和区域归属作为可修改的关联。直接用合并结果覆盖证据,会使后续纠错失去依据。

参数与实验数据

关联参数

  • Hydra 的局部 TSDF / ESDF 窗口半径为 8 米。局部处理受到窗口约束,但房间检测与全局优化仍受地图规模影响。
  • Clio 物体实验的 track 视觉相似度阈值为 0.9,三维 IoU 阈值为 0.6;Khronos 对照设置为 0.7 和 0.4。这些是跨帧关联参数,不是任务聚类阈值。
  • Clio 的物体 null task 阈值为 0.23;区域评估中设为 0,因为所有 places 均应对应某个提供的房间标签。
  • Clio 在线物体聚类只重算受新观测影响的连通分量。若分量很大,增量更新仍可能昂贵,不能理解为计算量始终恒定。

Hydra

在 Xavier NX 上处理 uHumans2 Office 场景时,物体层、places 层和房间层分别耗时 75 ± 35、33 ± 6、55 ± 41 毫秒,目标更新频率为 5 Hz。

这是嵌入式硬件上的仿真数据测试,数据提供深度和语义分割。分模块计时不等于相机到动作的端到端时延,也不能证明完整视觉系统在该硬件上达到相同频率。

主要工作站为 24 核 Ryzen 9 3960X 与两张 RTX 3080。真实 SidPac 数据的两组场景中,物体层平均约 50–75 毫秒,places 约 3–4 毫秒,房间约 11–15 毫秒。真实数据主要由手持设备采集,不是完整自主导航实验。

Clio

使用 i9-12900K、RTX 3090 与 CLIP ViT-L/14 时,Clio-online 的每处理帧平均耗时为:Cubicle 0.30 秒、Office 0.29 秒、Apartment 0.26 秒。在线运行允许丢帧,这些数据不是 Spot 上测得的控制频率。

Spot 实验使用 i9-13950HX、64 GB 内存和 RTX 4090 Laptop GPU。统计的 7 轮、21 次抓取尝试中,笔记本位于机器人外,通过 Wi-Fi 连接;补充视频另展示了携带计算设备的连续运行。它证明了机载在线运行的可行性,不代表低算力或低功耗。

21 次尝试的抓取成功率为 57%;排除 Spot 对正确目标的实际抓取失败后为 71%。图中选错目标只有一次。这不是纯导航成功率或碰撞安全率,建图阶段也由人遥控完成。

原文定位

页码为 PDF 顺序页,本地原文位于 assets/papers/robots/。

  • Hydra: A Real-time Spatial Perception System for 3D Scene Graph Construction and Optimization,RSS 2022。

    • §III,第 3–4 页:网格、物体、places 与房间构建。
    • §IV,第 5–6 页:跨层关联、回环、变形图与合并撤销。
    • §V–VI,第 6–9 页:架构、数据来源与计时。
    • §VII,第 9–10 页:房间命名与关系表达的限制。
  • Clio: Real-Time Task-Driven Open-Set 3D Scene Graphs,RA-L 2024,正式版本。

    • §III–V,第 3–4 页:信息瓶颈、任务相关性、前后端与候选合并。
    • §VI-A、Table I,第 5 页:参数、运行时间与任务过滤基线。
    • Fig. 4–5、§VI-C,第 6 页:粒度变化与区域划分。
    • §VI-D、§VII 及脚注,第 7 页:实机条件、遥控建图、任务结果与局限。