ReKep——李飞飞团队提出的让机器人具备空间智能:基于视觉语言模型GPT-4o和关系关键点约束(下)

接上文>>>

1.4 完整实现:ReKep关键点提议的实现细节和ReKep生成

为了使系统能够在野外执行任务并给出自由形式的任务指令,设计了一个使用大型视觉模型和视觉-语言模型的管道,用于关键点提议和ReKep生成,分别讨论如下:

1.4.1 关键点提议:最终选中DINOv2来提取特征

给定一个RGB图像

首先从DINOv2 [Dinov2: Learning robust visual features without supervision]中提取逐块特征

然后执行双线性插值,将特征上采样到原始图像大小,

为了确保提案覆盖场景中的所有相关对象,他们使用Segment Anything (SAM) 「其对应论文为:Segment anything,且此文《SAM(分割一切)——图像分割的大变革:从SAM、FastSAM、MobileSAM到SAM2》有介绍]」提取场景中的所有掩码

对于每个掩码,使用k-均值聚类算法对掩码特征进行聚类,k= 5,使用余弦相似度度量 聚类的质心用作关键点候选,通过校准的RGB-D相机投影到世界坐标R3,距离其他候选点在8厘米以内的候选点会被过滤掉

总体而言,他们发现该过程能够识别出大量细粒度和语义上有意义的对象区域

值得一提的是,可能有的读者好奇,李飞飞他们为何选DINOv2?其实,他们做了不同方法的关键点提议比较:

SAM + DINOv2

SAM + CLIP(视觉-语言对比预训练)

SAM + ViT(监督预训练)

仅DINOv2,自监督预训练

可以看到,得到的结果为

SAM提供的对象性先验对于将关键点提议约束在场景中的物体上而不是背景上至关重要

虽然大多数视觉基础模型可以提供有用的指导,但DINOv2产生的特征更为清晰,可以更好地区分物体的细粒度区域 比如CLIP在不同物体部件之间提供了不同的特征,但这些特征不如DINOv2的清晰(颜色从一个部件到另一个部件逐渐饱和)

另一方面,ViT在物体部件之间产生的特征最不明显。物体部件,尤其是当纹理相似时

总体而言,观察结果与其他也应用DINOv2进行细粒度物体理解的工作一致

1.4.2 ReKep生成

在获得关键点候选后

将它们覆盖在原始RGB图像上,并用数字标记(After obtaining the keypoint candidates, we overlay them on the original RGB image with numerical marks)

结合任务的语言指令,然后使用视觉提示来查询GPT-4o,以生成所需阶段的数量和相应的子目标约束 和每个阶段 的路径约束 「Coupled with the language instruction of the task, we then use visual prompting to query GPT-4o [6,Gpt-4 technical report] to generate the number of required stages and the corresponding sub-goal constraints C(i)sub-goal and path constraints C(i) path for each stage i (prompts are in A.6).」

值得注意的是,这些函数不会直接操作关键点位置的数值。相反,利用VLM的优势,通过算术运算(如关键点之间的L2距离或点积)来指定空间关系,这些运算仅在使用专门的3D跟踪器跟踪的实际关键点位置时才会实例化Notably,the functions do not directly manipulate the numerical values of the keypoint positions. Rather, we exploit the strength of VLM to specify spatial relations as arithmetic operations, such as L2 distance or dot product between keypoints, that are only instantiated when invoked with actual keypoint po-sitions tracked by a specialized 3D tracker.

此外,使用一组关键点位置进行算术运算的一个重要优势是,当提供足够的点并在相关点之间强制刚性时,它可以在完整的SO(3)中指定3D旋转,但这仅在根据任务语义需要时才会进行Furthermore, an important advantage of using arithmetic operations on a set of keypoint positions is that it can specify 3D rotations in full SO(3) when suf-ficient points are provided and rigidity between relevant points is enforced, but this is done only when needed depending on task semantics3.

这使得VLM能够在3D笛卡尔空间中通过算术运算来推理3D旋转,有效地避免了处理替代3D旋转表示和执行数值计算的需要This enables VLM to reason about 3D rotations witharithmetic operations in 3D Cartesian space, effectively circumventing the need for dealing with alternative 3D rotation representation and the need for performing numerical computation

1.5 ReKep完整示例:针对「1.4节关键点提议和ReKep生成」

1.5.1 倒茶等任务的阶段动作及其对应的子目标约束、路径约束

以下是倒茶、折叠袖子、折叠夹克等任务的阶段目标,及其对应的子目标约束、路径约束

1.5.2 约束的注意事项

1.5.3 将ReKep生成转化成Python代码

其对应的代码如下

以上代码对应的翻译如下

除了以上,更多机器人相关见七月在线的《大模型机器人二次开发线下营》

↓↓↓扫码了解课程↓↓↓

课程咨询可找苏苏老师VX:julyedukefu008或七月在线其他老师