21年9月来自华盛顿大学和Nvidia的论文“CLIPORT: What and Where Pathways for Robotic Manipulation”。
如何才能让机器人既能精确操纵物体,又能用抽象概念对物体进行推理?研究表明,端到端网络可以学习需要精确空间推理的灵巧技能,但这些方法往往无法推广到新目标或快速学习跨任务的可迁移概念。与此同时,通过对大规模互联网数据进行训练,在学习视觉和语言的可泛化语义表示方面取得了巨大进展,但这些表示缺乏细粒度操纵所必需的空间理解。提出一个二者相结合的框架:一种具有语义和空间路径的双流架构,用于基于视觉的操纵。具体来说,CLIPORT,是一个语言条件化的模仿学习智体,它将 CLIP [1] 的广泛语义理解(什么)与 Transporter [2] 的空间精确度(哪里)相结合。端到端框架能够解决各种语言指定的桌面任务,从打包未见过的物体到折叠衣服,所有这些都不需要任何明确的物体姿势、实例分割、记忆、符号状态或句法结构的表示。在模拟和现实世界环境中的实验表明,该方法在少样本设置中具有数据效率,并且可以有效地推广到见过和未见过的语义概念。甚至为 10 个模拟任务和 9 个现实世界任务学习了一个多任务策略,该策略比单任务策略更好或相当。
CLIPORT 是一个模仿学习智体,遵守四项原则:(1)通过两步原子操作进行操作,其中每个动作都涉及起始和最终的末端执行器姿势。(2)动作的视觉表征对平移和旋转等变 [56, 57]。(3)语义和空间信息的两条独立路径。(4)语言条件策略用于指定目标,在任务之间迁移概念。将 Transporter 中的 (1) 和 (2),与 (3) 和 (4) 相结合,能够实现不仅仅是模仿演示的通用策略。
如图所示语言条件操纵任务:CLIPORT 是一个广泛的框架,适用于桌面环境中的各种语言条件操纵任务。在 Ravens [2] 中对 10 个模拟任务(a-j)进行了大规模实验,每个任务有 1000 个唯一实例。CLIPORT 甚至可以为所有 10 个任务学习一个多任务模型,该模型的性能优于或与单任务模型相当。同样,在 Franka Panda 操纵器上展示了该方法,其中一个多任务模型适用于 9 个真实世界任务(k-o;仅显示 5 个),仅使用 179 个图像-动作对进行训练。
考虑学习目标条件策略 π 的问题,该策略在给定输入 γt = (ot, lt) 时输出动作,该输入由视觉观察 ot 和英语语言指令 lt 组成。
动作 a = (Tpick,Tplace) 分别指定拾取和放置的末端执行器姿势。考虑桌面任务,其中 Tpick,Tplace ∈ SE(2)。视觉观察 ot 是场景自上而下的正交 RGB-D 重建,其中每个像素对应 3D 空间中的一个点。语言指令 lt 要么指定分步说明,例如“打包剪刀”→“打包紫色胶带”→等,要么指定整个任务的单一目标描述,例如“将所有蓝色和黄色盒子打包到棕色盒子中”。
策略 π 使用 Transporter [2] 进行训练,执行空间操作。该模型首先 (i) 关注局部区域决定在哪里挑选,然后 (ii) 通过深度视觉特征的互相关系数找到最佳匹配来计算放置位置。
按照 Transporter [2, 6],策略 π 由两个动作价值模块(Q 函数)组成:挑选模块 Qpick 决定在哪里挑选,并根据此挑选动作,放置模块 Qplace 决定在哪里放置。这些模块实现为全卷积网络 (FCN),其在设计上是平移等变的。
CLIPORT 将这些网络扩展为可以处理语言输入的双流架构。挑选 全卷积网络 (FCN) fpick 接受输入 γt = (ot, lt) 并输出动作价值的密集像素预测 Qpick,用于预测挑选动作 Tpick。
第二个 FCN Φquery 的输入 γt[Tpick],是 ot 的 c × c 裁剪,以 Tpick 为中心,以及语言指令 lt,并输出形状的查询特征嵌入。第三个 FCN Φkey 使用完整输入 γt 并输出形状的关键特征嵌入。然后通过对查询特征和关键特征进行互相关来计算位置动作-价值 Qplace。
如图所示CLIPORT 双流架构,包括语义流和空间流概述。语义流使用冻结的 CLIP ResNet50 [1] 对 RGB 输入进行编码,其解码器层使用来自 CLIP 句子编码器的平铺语言特征进行调节。空间流对 RGB-D 输入进行编码,其解码器层与语义流横向融合。最终输出是用于拾取或放置affordance预测的密集像素特征图。所有 3 个全卷积网络 fpick 、 Φquery 和 Φkey 都使用相同的双流架构,其中 fpick 用于预测拾取动作,Φquery 和 Φkey 用于预测放置动作。
在 CLIPORT 中,扩展 Transporter [2] 中的所有三个 FCN fpick、Φquery 和 Φkey 的网络架构,允许语言输入和推理高级语义概念。将 FCN 扩展到两条路径:语义(腹侧)和空间(背侧)。语义流在瓶颈处以语言特征为条件,并与空间流中的中间特征融合。
空间流与 Transporter 中的 ResNet 架构相同 - 一个白板网络,它接收 RGB-D 输入并通过沙漏编码器-解码器模型输出密集特征。语义流使用冻结的预训练 CLIP ResNet50 [1] 对 RGB 输入 o ̃ t 进行编码,直到倒数第二层 o ̃ t → v(0)t,然后引入解码层对特征张量进行上采样,模拟每一层 l 的空间流 vt(l−1) → vt(l) 。
语言指令 lt 使用 CLIP 基于 Transformer 的句子编码器进行编码,以产生目标编码 lt → gt。该目标编码 gt 使用全连接层进行下采样以匹配通道维度 C,并平铺以匹配解码器特征的空间维度,使得 gt → gt(l)。然后通过逐元乘积 v(l) ⊙ g(l)(Hadamard 积)将解码特征与平铺的目标特征进行条件处理。由于 CLIP 是在池化图像特征和语言编码之间的点积对齐上使用对比损失进行训练的,因此逐元乘积使用这种对齐方式,而平铺则保留了视觉特征的空间维度。
在瓶颈受 LingUNet [58] 启发之后,在随后三个层中重复这种语言条件。还从 CLIP ResNet50 编码器向这些层添加跳连接,去利用从形状-到-部件-到-目标概念不同级的语义信息 [59]。最后,遵循视频动作识别中现有的双流架构 [51],添加从空间流到语义流的横向连接。这些连接涉及连接两个特征张量并应用 1 × 1 卷积来降低通道维度 [vt(l) ⊙ gt(l); dt(l)],其中 vt(l) 和 dt(l) 分别是层 l 的语义和空间张量。对于密集特征的最终融合,根据经验,fpick 的加法以及 Φquery 和 Φkey 的 1×1 卷积融合效果最佳。
与 Transporter [2] 类似,从一组专家演示 D = {ζ1, ζ2, …, ζn} 中进行模仿学习来训练 CLIPORT,其中包含离散时间输入 - 动作对 ζi = {(o1, l1, a1),(o2, l2, a2),…}。在训练期间,从数据集中随机抽取一个输入 - 动作对,并使用演示动作 Ypick 和 Yplace 的 one-hot 像素编码(k 次离散旋转)对模型进行端到端监督。在使用吸盘夹持器的模拟实验中,用 k = 1 表示拾取动作,k = 36 表示放置动作。该模型使用交叉熵损失进行训练:L = −EYpick [log Vpick ] − EYplace [logVplace ],其中 Vpick = softmax(Qpick((u, v)|γt)) 和 Vplace = softmax(Qplace((u′, v′, ω′)|γt, Tpick))。与训练 40K 次迭代的原始 Transporter 模型相比,对模型进行 200K 次迭代训练,考虑任务中的其他语义变化 - 随机颜色、形状、目标。所有模型都在单个商用 GPU 上训练 2 天,批量大小为 1。
除了训练数据的采样之外,多任务训练与单任务训练几乎完全相同。首先,随机采样一个任务,然后从数据集中的该任务中选择一个随机输入-动作对。使用此策略,所有任务都有同等的可能性被采样,但较长时间范围的任务不太可能完全覆盖数据集中可用的输入-动作对。为了弥补这一点,将所有多任务模型的训练时间延长 3 倍,进行 600K 次迭代或 6 个 GPU 天。
所有模拟实验均基于配备吸盘夹持器的 Universal Robot UR5e。该设置提供一个系统且可重复的评估环境,尤其是用于对颜色和目标类别等语义概念的基准测试能力。输入观察是从上向下的 RGB-D 重建,来自围绕矩形桌子放置的 3 个摄像头:一个在前面,一个在左肩,一个在右肩,所有摄像头都指向中心。每个摄像头的分辨率为 640 × 480,无噪音。
所有真实机器人实验均在配备平行夹持器的 Franka Panda 机器人上进行。为了实现感知,用安装在三脚架上的 Kinect-2 RGB-D 相机,向下倾斜查看桌子。虽然 Kinect-2 提供分辨率为 1280 × 720 的图像,但使用下采样的 960 × 540 图像来获得更快的用户界面。相机和机器人基座之间的外部标定是通过 ARUCO ROS 使用 AR 标记计算的,如图所示。CLIPORT(多)仅使用 179 个样本即可有效进行小样本学习,其性能大致与模拟实验中的性能相对应,简单的块操作任务可达到 ∼ 70%。为了获得更稳健的真实性能,至少需要 50 到 100 次训练演示。