3. 场景图基础
在机器人空间关系与场景图推理中,场景图(Scene Graph)是把“看到什么”和“它们之间怎样关联”统一表达出来的一种结构化知识表示。它把图像或三维场景中的实体抽象为节点,把实体之间的空间、语义、功能或交互关系抽象为边,从而让机器人不仅能识别物体,还能回答“杯子在桌面上”“机械臂位于箱子左侧”“门把手连接在门上”这类关系问题。对机器人而言,场景图是连接感知、语言与任务规划的中间层:感知模块输出物体与位姿,场景图负责组织成可查询、可推理、可更新的图结构,任务规划再基于图结构进行目标检索、路径约束和操作顺序推断。
一、场景图的定义与核心组成
形式化地,场景图可表示为 G = (V, E)。其中 V 是节点集合,E 是边集合。每个节点通常对应一个物体实例或区域,例如“红色马克杯”“餐桌”“机械臂末端”;每条边表示两个节点之间的关系,例如“在……上面”“靠近”“属于”“可抓取”。与普通图不同的是,场景图中的节点和边都带有类型与属性:节点有类别、颜色、材质、位姿、置信度;边有关系类型、方向、距离、接触状态等。
从机器人视角看,场景图至少包含三层信息:几何层(位置、朝向、包围盒、点云)、语义层(类别、属性、功能)和关系层(空间关系、支撑关系、连接关系、交互关系)。这三层共同支撑“在哪里—是什么—能做什么”的推理链条。
二、节点类型与边类型
节点类型可按粒度划分。常见节点包括:物体节点(杯子、椅子、门)、部件节点(把手、轮子、关节)、区域节点(桌面、地面、货架层)、机器人节点(基座、末端执行器、传感器)以及抽象节点(房间、任务目标)。在三维场景图中,还会出现“支撑面”“可通行区域”等特殊节点。
边类型则决定场景图的推理能力。典型边类型如下表所示:
| 边类型 | 示例 | 机器人用途 |
|---|---|---|
| 空间关系 | 杯子在桌面上;椅子在桌子左侧 | 抓取位姿选择、避障、导航 |
| 支撑关系 | 盘子支撑杯子;桌面支撑显示器 | 判断可移动性与稳定性 |
| 连接关系 | 把手连接门;轮子连接底盘 | 操作关节、开门、移动 |
| 语义关系 | 杯子属于餐具;扳手属于工具 | 任务目标检索与常识推理 |
| 交互关系 | 人拿着杯子;机械臂抓取零件 | 人机协作、动作预测 |
| 时序关系 | 先开门再进入;先抓取再放置 | 任务规划与动作排序 |
需要特别注意的是,空间关系边通常具有方向性。“A在B上”与“B在A上”含义完全不同,因此场景图常被建模为有向图。对于对称关系如“相邻”,可以保留双向边或使用无向边,但在机器人操作中,方向性往往直接影响抓取与放置策略。
三、场景图的构建流程
场景图构建通常遵循“感知—关联—建图—校验”的流程。以机器人抓取任务为例:
- 物体检测与分割:从RGB-D图像或点云中提取物体实例,得到类别、包围盒、掩码和点云簇。
- 位姿估计与属性提取:估计物体6D位姿、尺寸、颜色、材质,并计算质心与主轴。
- 关系推断:基于几何计算与语义规则判断关系,例如通过包围盒重叠判断“支撑”,通过距离阈值判断“靠近”,通过接触检测判断“连接”。
- 图结构生成:将物体作为节点、关系作为边写入图数据库或内存图结构,并附加置信度。
- 校验与更新:利用多帧观测、物理约束和常识规则消除矛盾边,例如“杯子不能支撑桌子”。
下面是一个简化的场景图JSON片段,展示节点与边的组织方式:
{
"nodes": [
{"id": "cup_1", "type": "object", "category": "cup", "pose": [0.42, 0.15, 0.78]},
{"id": "table_1", "type": "object", "category": "table", "pose": [0.40, 0.00, 0.75]},
{"id": "robot_arm", "type": "robot", "category": "manipulator", "pose": [0.10, -0.20, 0.90]}
],
"edges": [
{"source": "cup_1", "target": "table_1", "relation": "on", "confidence": 0.96},
{"source": "robot_arm", "target": "cup_1", "relation": "near", "confidence": 0.81},
{"source": "cup_1", "target": "table_1", "relation": "supported_by", "confidence": 0.93}
]
}
四、常用数据集:Visual Genome与3DSSG
Visual Genome 是二维场景图领域的经典数据集,包含大量图像、区域描述、问答对和关系标注。它的核心贡献是提供了“物体—属性—关系”的三元组标注,常被用于训练图像场景图生成模型。对机器人而言,Visual Genome 的价值在于提供丰富的常识关系,例如“人骑自行车”“杯子放在桌上”,可用于预训练关系检测器,再迁移到机器人场景。
3DSSG(3D Scene Graph) 则面向三维场景,基于3RScan等室内扫描数据构建,包含房间、物体、部件等节点,以及“支撑”“连接”“属于”等三维关系。它更贴近机器人在真实室内环境中的空间推理需求,例如判断“椅子在桌子旁边”“显示器在桌面上”“门连接墙体”。3DSSG 的边类型强调三维空间中的物理与功能关系,适合用于三维场景图生成、室内导航和操作任务。
此外,还有 SceneGraphGen、Open Images 的关系标注、GQA 等数据集可用于关系推理。选择数据集时,应关注三点:关系类型是否覆盖机器人任务、是否包含三维位姿或深度信息、标注粒度是否包含部件级节点。
五、案例与常见误区
假设机器人要在桌面上抓取杯子。感知模块检测到杯子、桌子、机械臂三个节点。若只记录“杯子在桌上”,机器人知道杯子位置,但不知道机械臂是否可达。加入“机械臂靠近杯子”的边后,系统可以判断抓取可行性。再加入“杯子被桌子支撑”的边,机器人可以推断:若移动桌子,杯子可能随之移动,从而调整抓取顺序。
复盘时,可以用“节点是否完整、边类型是否覆盖任务、方向是否正确、置信度是否可靠、更新是否及时”五个问题检查场景图质量。只有图结构与机器人任务闭环,场景图才真正成为空间关系推理的可用基础。