25年6月来自斯坦福大学 Li Feifei 组的论文“UAD: Unsupervised Affordance Distillation for Generalization in Robotic Manipulation”。
理解细粒度的目标 affordance 对于机器人在给定开放式任务指令的非结构化环境中操纵目标至关重要。然而,现有的视觉 affordance 预测方法通常依赖于手动注释的数据或仅针对预定义任务集的条件。本文引入无监督 affordance 蒸馏 (UAD),一种将 affordance 知识从基础模型蒸馏到任务条件下 affordance 模型中而无需任何手动注释的方法。通过利用大型视觉模型和视觉-语言模型的互补优势,UAD 可以使用详细的 <指令,视觉affordance> 对自动注释大规模数据集。尽管 UAD 仅在模拟中对渲染的目标进行训练,但它仅在冻结特征上训练了一个轻量级的任务条件解码器,对野外机器人场景和各种人类活动表现出显着的泛化能力。使用 UAD 提供的 affordance 作为观察空间,展示一种模仿学习策略,该策略在经过少至 10 次演示的训练后,就表现出对未见过的目标实例、目标类别甚至任务指令变化的良好泛化。
UAD 如图所示:
UAD概览如图所示:使用 3D 物体的渲染图,首先对 DINOv2 特征进行多视图融合和聚类,以获得物体的细粒度语义区域,然后将其输入 VLM 以提出相关任务和对应区域 (a)。然后,通过在冻结的 DINOv2 特征上训练语言条件 FiLM 来提炼提取出的 affordance (b)。学习到的任务条件 affordance 模型为各种细粒度区域提供实际场景预测,这些区域可用作操作策略的观察空间 ©。
提取 affordance 标注
对目标像素级功能区域的视觉 affordance,这对于下游基于视觉的操作任务很有用。然而,手动标记大规模 affordance 数据集的成本很高。因此,从现有的基础模型中提取affordance 标注,构建一个包含以下三元组的多样化数据集:RGB 图像 I、自由形式的任务指令 T 和任务条件 affordance 图 A ∈ [0, 1]。
数据集。虽然目标是获取二维标注数据集,但在强制执行三维一致性时,所提出的流程表现会显著更佳——在最近针对用于操作和开放词汇三维分割的预训练二维视觉特征的研究中也观察到了类似的结果 [80, 115, 116]。为此,专注于从单独渲染的三维目标生成二维无监督 affordance 标注。稍后讨论如何训练一个 affordance 模型,使其能够泛化到现实世界中的多目标场景,尽管该模型仅在模拟中渲染单个目标上进行训练。
用 BEHAVIOR-1K [117] 中的一部分 3D 资源,因为这些目标是根据操作上下文量身定制的。该目标数据库总共包含来自 76 个目标类别的 206 个目标,以及 667 条任务指令。论文被接受后,还进行一个案例研究,研究如何扩展到更多样化的目标数据库,例如 Objaver (a) 所示。在较高层次上,用逻辑虚拟机 (LVM) 为每个目标查找细粒度的语义区域,并利用 VLM 提出与每个目标相关的候选任务指令。然后,用 VLM 将区域与任务指令关联起来。接下来,按顺序介绍每个组件:
细粒度区域提议。对于每个 3D 物体,首先将其生成在一个空场景中,并渲染该物体周围的 14 个视图,以获得 K 个 RGB 图像 I 及其在世界坐标 P 下的聚合点云。对于每个 I_i,从 DINOv2 中提取像素级特征 F_i。然后,采用 [115] 中的程序融合二维特征,以获得物体点云 P 上的全局三维特征场 F_global。为了获得物体的细粒度语义区域,首先对 F_global 应用 PCA 以获得 F_reduced,可以降低特征对局部纹理的敏感度。最后,用物体点特征 F_reduced 上的欧氏距离将物体点聚类到 M 个区域中,其中聚类算法自动识别聚类的数量 M。将所有物体点的区域标签表示为 r_i, i = 1,N。
任务指导提议。为了根据提议区域为每个目标识别出合理的任务指令,用视觉语言模型 (VLM)(本研究中为 GPT-4o [10])进行视觉提示。对于每个目标,首先通过计算目标类别名称与 CLIP [18] 嵌入下相应 RGB 图像之间的余弦相似度来识别一个看起来自然的视图。然后,通过分配唯一的颜色来可视化提议区域并将其叠加在原始图像上。将叠加图像、原始图像和目标类别名称作为 VLM 的输入,并对其进行查询以提出一组与该目标相关的任务指令 {T_1, …, T_J}。例如,对于咖啡杯,VLM 会提出诸如“咖啡杯边缘 - 用于饮用和倒水的区域”之类的任务指令。
区域和指令映射。然后,用类似的过程来查询 VLM,以将其提出的任务指令与最合适的聚类区域相关联。结果,获得从每个任务指令到物体上某个区域的映射。最终,创建一个连续的 affordance 图 A ∈ [0, 1],因为 affordance 本质上是连续的而不是二进制的。某些区域(例如,用于抓握的手柄中部)比其他区域(例如,手柄尖端)与指定任务的关联更紧密,而连续公式可以更好地捕捉这些区域。为此,对于 VLM 识别的每个区域 r,首先对相应点的特征求平均以获得参考特征 f_ref。然后,计算 f_ref 和 F_global 之间的余弦相似度得分,以获得每个 3D 点的 [0,1] 相似度得分。最后,将物体点连同它们的得分一起投影到每个摄像机视图以获得 最后的affordance 图 A。此操作将 VLM 生成的离散决策转换为连续的像素级值;直观地说,它可以解释为它是否“affords”执行给定任务的每像素似然值。这与许多先前的研究[119]形成了对比,这些研究考虑了图像级分布(即所有像素之和为1),其中 affordance 量级由可供区域大小归一化。总而言之,该流程生成一个包含 (I, T, A) 三元组的数据集。
学习任务条件 affordance 模型
为了训练一个仅使用合成的单目标数据即可泛化到现实世界多目标场景的 affordance 模型,利用预训练的 DINOv2 [14],冻结其权重,并仅在其上训练一个轻量级的语言条件模块。具体而言,首先使用 OpenAI API 获取数据集中每个条目的语言嵌入 e_T。为了将 DINOv2 中的特征条件化到语言嵌入上,用 FiLM 层 [120],这些层接收语言嵌入 eT 以及像素空间特征 X 和输出 X′,其中 C_in 和 C_out 分别是输入和输出通道维度。用 3 个输出通道为 [256, 64, 1] 的 FiLM 层,它们在每个像素位置生成对数函数作为最终输出 Aˆ ∈ [0, 1]。FiLM 为每个通道学习的变换与像素位置无关,这与构建 DINOv2 特征与任务指令之间的关联非常契合。用二元交叉熵作为损失函数,该损失函数在真实 affordance 图 A 和 affordance 图 Aˆ 的预测对数函数之间进行计算。将学习的affordance 模型称为 UAD。
以 affordance 为观察空间的策略学习
UAD 可以自然地集成到现有的基于视觉的策略架构中,作为视觉输入的编码器进行操作。实际上,UAD 并非像大多数现有策略架构那样学习与任务无关的视觉表征,而是为策略提供细粒度的视觉注意,其中包含基于当前任务的先验知识。为了探究其能力,将 UAD 与借鉴自 RVT [121,122] 的多视图 Transformer 策略相结合。假设能够访问详细的语言指令(例如,“抓取喷壶”、“对齐喷口”、“浇灌植物”)。使用给定的指令,首先预测每个视图的 affordance 图。然后,遵循 RVT 为每个视图增强相应的深度值、世界坐标系中点的 (x, y, z) 坐标以及全局本体感觉向量。该策略输出一个 7 维动作,包括 6 自由度末端执行器位姿和二元夹持器动作。用模仿学习来训练该策略,并重点考察其泛化能力。尽管在策略训练中没有对 affordance 模型进行微调,但能够仅通过少量演示就有效地训练该策略,同时利用 UAD 展现其对各种条件的泛化能力。
策略学习仿真细节
环境设置。在 OmniGibson 中的仿真环境包含一个 Fetch 机器人,用操作空间控制器控制末端执行器姿态,使用多指夹持器控制器控制夹持器,并保持机器人底座位置固定。所有任务均以物理方式模拟抓取动作。
对演示和学习策略均采用基于关键帧的策略。关键帧在先前的研究中 [121, 122, 128–130] 通常被用作“夹持器在任务执行过程中的重要步骤或瓶颈步骤”。要执行动作 <末端执行器姿态,夹持器动作>,首先控制末端执行器控制器从当前姿态到目标姿态的插值轨迹,然后再执行夹持器动作。
在工作空间的正面、左侧和右侧使用 3 个摄像头进行倾倒和插入操作。在机器人两侧使用 2 个摄像头进行打开,因为铰接体通常尺寸较大并且会遮挡其他摄像头。
对每个策略进行 4000 个 epoch 的训练。在单个 NVIDIA A40 GPU 上,批量大小为 3 的训练“Pouring”策略大约需要 16 小时,而“Opening”和“Inserting”策略则需要 8 小时。
在训练过程中,通过以下方式对视觉观察通道进行了归一化:将视觉表示归一化为 (-1,1),将 (x, y, z) 裁剪至最小和最大工作空间边界,并将所有超出边界点的深度设置为 0。此外,根据像素位置附加通道,遵循 RVT 中的原始实现。在每个训练步骤中,都会将随机裁剪增强应用于视觉输入。
针对每个基线视觉表示的实现如下:
• Vanilla 策略:来自每个摄像头的原始 RGB 观测值。
• 使用 DINOv2:首先获取每个摄像头 RGB 图像的逐像素 DINOv2 特征。然后,构建一个可训练的 1D 卷积层,其核大小为 1,以将通道数减少到 3。
• 使用 CLIP:获取该任务的每个详细指令的 CLIP 文本嵌入。然后,计算每个摄像头观测值与逐像素 CLIP 视觉嵌入的余弦相似度。
• 使用 Voltron [74]:加载一个冻结的 Voltron (V-cond) 模型,并获取基于任务描述的视觉嵌入。将每个补丁的嵌入插值到像素空间,并使用可训练的核大小为 1 的一维卷积层将通道数从 384 减少到 3。还尝试使用可训练的多头注意池层进行特征提取,但没有观察到性能的提升。
真实世界的评估平台,使用安装在由 Vention 框架构建的桌面装置中的 Franka 手臂。由于学习的策略输出 6 自由度末端执行器位姿和夹持器动作,故在所有实验中都使用位置控制,并以 20 Hz 的固定频率运行。具体而言,给定世界坐标系中的目标末端执行器位姿,首先将该位姿裁剪到预定义的工作空间。然后,对机器人的当前位姿进行线性插值到目标位姿,位置步长为 5 毫米,旋转步长为 1 度。为了移动到每个插值后的位姿首先使用 PyBullet [131] 中实现的 IK 求解器计算逆运动学,以根据当前关节位置获得目标关节位置。然后,用 Deoxys [132] 的关节阻抗控制器到达目标关节位置。两个 RGB-D 摄像头 Orbbec Femto Bolt 安装在机器人的左侧和右侧,面向工作空间中心。摄像机以 20 Hz 的固定频率捕获 RGB 图像和点云。