想象一下,你正和一位同事组装家具。你发现需要他们身后的桌子上的螺丝刀。你不会说: “请取回位于坐标 X: 1.2, Y: -0.5, Z: 0.8 的物体。”你只是指着它说: “把它递给我。”你的同事立刻就能理解这个手势,判断出方向,识别出你所指的具体物体,并将其递给你。

这种互动对人类来说天衣无缝,但对机器人来说却难如登天。

虽然我们已经拥有能够导航地图和识别物体的机器人,但人类手势3D 空间理解之间的桥梁仍在建设中。目前大多数系统依赖于笨拙的界面——比如在屏幕上点击或给出精确的坐标描述——这违背了自然交互的初衷。

在这篇文章中,我们将深入探讨 Pointing3D , 这是最近一篇旨在解决这一问题的研究论文。研究人员提出了一种方法,只需一张人类指点的简单图像和一个房间的 3D 扫描,就能准确地分割出被指的是什么

问题所在: 方向 vs. 范围

为什么这个问题至今仍未解决?挑战在于方向范围的区别。

先前的研究在估计指向方向 (从手指射出的矢量) 方面已经做得相当不错。然而,矢量只是一条线。在杂乱的房间里,这条线穿过空荡荡的空间,擦过一把椅子,撞到一张桌子,最终击中一堵墙。机器人需要知道,当你指点时,你指的不是墙壁或空地;你指的是该手势意图所指物体的具体体积 (即“范围”) 。

为了弥合这一差距,Pointing3D 的作者引入了一项新任务: 基于指向的 3D 物体分割

基础: POINTR3D 数据集

深度学习模型的优劣取决于投喂给它们的数据。研究人员很快意识到,现有的数据集没有一个能结合所有必要的要素:

  1. 人类指点的图像。
  2. 环境的 3D 点云。
  3. 被指具体物体的 3D 分割掩码 (标签) 。

为了解决这个问题,他们构建了 POINTR3D

POINTR3D 数据集中的场景网格,展示了带有彩色分割掩码的室内环境。

如图 1 所示,该数据集捕捉了多样化的室内环境。团队使用 RGB 相机录制了场景,并捕捉了房间的 3D 几何结构 (点云) 。然后,他们让参与者站在这些房间里,指着各种物体——从机械臂、垃圾桶到盆栽和沙发,应有尽有。

由此产生的数据集非常庞大,包含约 65,000 帧。至关重要的是,它提供了训练机器所需的基准真相 (Ground Truth) : 人指点的图像以及他们想要的物体的精确 3D 掩码。

数据集示例: 左侧显示 RGB 图像中人类在指点;右侧显示目标物体的对应 3D 掩码。

图 2 展示了数据的配对情况。左侧是机器人的视角 (一个人的相机视图) 。右侧是“答案”——在空间地图中高亮显示的已分割 3D 物体 (如四足机器人或凳子) 。

有了这些数据,作者开发了一个两阶段的架构来解决这个任务。

Pointing3D 方法

提出的模型恰如其分地命名为 Pointing3D , 它模仿了人类的思维过程:

  1. 看人: 他们的手在哪里,指着哪里?
  2. 看世界: 根据那个方向,3D 环境中的哪个物体符合描述?

让我们拆解一下这个架构。

Pointing3D 模型架构图,展示了从图像输入到 3D 分割输出的流程。

该系统接受两个输入: 用户的 2D RGB 图像和场景的 3D 点云。

第一阶段: 指向方向模块

第一步是弄清楚人类姿态的几何结构。该模型使用最先进的人体姿态估计器 (基于 SMPL 身体模型) 从 2D 图像中提取 3D 骨架。这为系统提供了骨骼关节的精确位置,特别是活动的手部。

但是模型如何学习指点呢?研究人员在数学上定义了“基准真相”指向方向 (\(\mathbf{d}_{gt}\))。它是连接手关节 (\(\mathbf{j}_{hand}\)) 到目标物体位置 (\(\mathbf{m}\)) 的归一化矢量。

定义基准真相指向方向矢量的公式。

模型使用多层感知机 (MLP) ——一种简单的神经网络——基于身体姿态来预测这个矢量。为了训练这个网络,他们使用了一个结合两个目标的损失函数: 最小化角度误差 (余弦相似度) 和最小化绝对距离误差 (L1 范数) 。

展示指向方向损失函数的公式。

这确保了预测的箭头指向正确的方向并且具有鲁棒性。一旦模型预测出指向方向 (\(\mathbf{d}_{pred}\)) 和手部位置,它就会将这些信息传递给更复杂的第二阶段。

第二阶段: 3D 实例分割模块

这是论文的核心部分。我们有一个房间的 3D 点云和一条从手射出的射线 (一条线) 。我们如何将其转化为精确的物体掩码?

作者使用了一种基于 Transformer 的架构 。 如果你熟悉自然语言处理或现代计算机视觉,你就知道 Transformer 非常擅长关注数据的特定部分。

1. 查询初始化 (“手电筒”技术)

在标准的分割 Transformer (如 Mask3D) 中,模型基本上是在整个场景中猜测物体。在这里,我们要引导模型。研究人员使用指向射线作为提示 (prompt) 。

他们将射线投射到 3D 点云中。他们寻找落在这条射线周围狭窄圆锥体内的点 (想象一下用手电筒照射) 。这个圆锥体内离手最近的点被选为“目标点” (\(\mathbf{p}_{target}\))。

该点用于初始化一个分割查询 (\(Q^0\))。这个查询是一个矢量,告诉 Transformer: “关注包含这个点的物体。”

使用位置编码和特征嵌入初始化分割查询的公式。

如上式所示,初始查询是目标点位置 (\(\mathrm{PE}_{target}\)) 及其从场景主干网络中提取的视觉特征 (\(\mathcal{F}^0_{target}\)) 的组合。

2. Transformer 解码器

现在由 Transformer 接管。它有一个代表用户意图的“查询”。它通过几个层级进行迭代以细化这种理解。

在每一层,模型将查询与 3D 点云的特征进行比较。它计算一个热图 (\(H^l\)),为点云中的每个点分配一个概率分数,确定它成为被指物体一部分的可能性。

计算实例热图的公式。

然后查询本身会被更新。它“查看”那些它认为属于该物体的点 (交叉注意力) ,并收集更多上下文以细化其形状。

使用交叉注意力细化查询的公式。

这个循环重复进行 (如架构图所示) ,每一步查询都变得更聪明,分割掩码也变得更清晰。最终,模型输出一个二进制掩码: 属于物体的点为 1,其他为 0。

实验结果

它的效果如何?研究人员将 Pointing3D 与几个强大的基线进行了对比测试。

1. 它能估计方向吗?

首先,他们检查了第一个模块是否能简单地弄清楚用户指的是哪里。他们将自己的方法与启发式方法 (例如画一条从人眼到手的线,或从肩膀到手的线) 以及“DeePoint” (一种领先的基于视频的指向方法) 进行了比较。

表 1: 比较指向精度和角度偏差。

结果 (表 1) 显示,Pointing3D 实现了最高的精度和最低的角度偏差。有趣的是,像“肩到手”这样的简单启发式方法表现得惊人地好,但学习型的 Pointing3D 模型更胜一筹,这可能是因为它可以考虑到肢体语言的细微变化。

2. 它能分割物体吗?

这是重头戏。他们将 Pointing3D 与以下方法进行了比较:

  • 区域生长 (Region Growing) : 一种经典算法,从指向点开始并扩展,直到遇到边缘。
  • 交互式 2D (SAM): 在 2D 图像上使用“Segment Anything Model”,并将其投影到 3D。
  • 非交互式 3D (Mask3D): 首先在 3D 中找到所有物体,然后挑选离指向射线最近的一个。

表 2: 比较分割性能 (IoU)。

表 2 显示 Pointing3D 显著优于基线。使用的指标是交并比 (IoU) ,数值越高越好。

  • 区域生长失败是因为它不理解语义对象 (它可能会在阴影处停止或合并两个物体) 。
  • 2D 交互式方法在遮挡问题上很吃力——如果物体在 2D 图像中被部分遮挡,3D 投影就会出错。
  • 非交互式 3D如果底层分割模型完全漏掉了物体,就会失败。如果 Mask3D 没有将垃圾桶“视作”一个物体,那么指着它也无济于事。

Pointing3D 之所以成功,是因为它是可提示的 (promptable) 。 它在分割过程中使用指向信息,而不仅仅是作为事后的过滤器。

视觉证据

视觉对比往往最有说服力。在下图中,用户指着一个灰色的盒子。

定性对比展示 Pointing3D 正确分割了一个盒子,而其他模型失败了。

  • 交互式 2D (左) 过度分割,将盒子及其内部/附近的物品抓取为一个团块。
  • 非交互式 3D (中) 完全低估了物体,只选择了一小块碎片。
  • Pointing3D (右) 正确识别了盒子的完整范围,与基准真相 (Ground Truth) 紧密匹配。

为什么这很重要

这篇论文代表了向“自然”机器人技术迈出的重要一步。我们正在摆脱强迫人类说机器人语言 (坐标) 的做法,转而教机器人理解我们的语言 (手势) 。

仍然存在局限性。目前的系统假设房间的 3D 扫描是静态的 (它不考虑家具的实时移动) ,并且专注于单个用户。然而, POINTR3D 数据集Pointing3D 架构的引入为未来的系统奠定了基础,在未来,你可以简单地指着一个脏盘子告诉你的机器人: “把它清理干净”,而它是真的理解“它”指的是什么。

核心要点:

  • 新任务: 基于指向的 3D 物体分割结合了手势分析与空间理解。
  • 数据为王: 包含 65,000 帧的 POINTR3D 数据集实现了针对该特定任务的监督学习。
  • 提示 (Prompting) 有效: 使用指向矢量初始化 Transformer 查询,比仅仅过滤预检测物体能实现更精确的分割。