您的位置:首页 > 游戏 > 手游 > A3VLM: Actionable Articulation-Aware Vision Language Model

A3VLM: Actionable Articulation-Aware Vision Language Model

2024/11/18 10:44:51 来源:https://blog.csdn.net/s_m_c/article/details/141226550  浏览:    关键词:A3VLM: Actionable Articulation-Aware Vision Language Model

发表时间:13 Jun 2024

作者单位:SJTU

Motivation:以往的机器人VLM如RT-1[4]、RT-2[3]和ManipLLM[21]都专注于直接学习以机器人为中心的动作。这种方法需要收集大量的机器人交互数据,这在现实世界中非常昂贵。

解决方法:因此,我们提出了 A3VLM,这是一种object-centric, actionable, articulationaware vision language model。A3VLM 专注于对象的铰接结构和动作可供性。它的表示与机器人无关,可以使用简单的动作原语翻译成机器人动作。(以对象为中心的与以机器人为中心的方法有什么不同?有什么优势?不再需要机器人数据,而是从被操作物体的物理性质出发建立模型,然后通过动作原语让机器人采取相应的操作)。

实现方式:a representation that describes the object's articulation structure and action affordance simultaneously. 与之前的以机器人为中心的动作表示[3,21]相比,A3VLM的表示是以对象为中心的,这使得在不收集昂贵的机器人交互数据的情况下学习对象的可操作模型,并且各种机器人可以使用相同的学习对象模型。

在强大的VLM主干的支持下,A3VLM能够直接从单个RGB图像中预测3D铰链结构,而不需要任何深度数据。

Proposed Articulation Representation:A3VLM使用以对象为中心的表示,专注于对象内可移动部件的链接和可供性。A3VLM 中可操作的部分、可供性和链接结构被表示为三元组:(边界框 B、Axis A(轴)、语义标签 S)。边界框 B 定位给定图像中感兴趣的可操作部分。Axis A 表示零件的链接结构。S语义标签是指关节类型(prismatic 或 rotation)、链接名称和动作类型。

Instruction-following Dataset Construction(构建本文用到的数据集):we do not train A3VLM from scratch,为了微调VLM,我们需要构建一个指令跟踪数据集,其中输入是图像和文本提示,答案应该是结构化文本。在实践中,我们不要求 VLM 在一个推理步骤中生成所有内容,而是将任务分为四种不同类型的子任务(与其他文章的做法类似)。

  • Raw A3 Annotation Generation:生成指令跟踪数据集的第一步是创建对象级原始注释。Within each image, we provide an annotation (B, A, S) for each visible and movable link. 我们将所有链接分为平动型和转动型。对于转动链接,axisA 是 URDF 中提供的旋转轴。对于平动连杆,我们使用URDF中提供的棱柱方向作为轴方向,确保轴A通过连杆的3D中心。 在确定轴 A 之后,我们沿 A 投影链接点并计算投影形状的最小 2D 边界框。我们使用这个边界框的较长边作为 x 轴,较短的边作为 y 轴,轴 A 作为边界框 B 的 z 轴(原来是通过轴的方向之后,利用轴向量进行投影,投影到物体上,来确定三维空间中的bbox的)。边界框 B 的中心是铰链的 3D 中心。边界框B的宽度、高度和长度是根据链路的最远点与中心之间的距离来计算的。语义信息 S 存储链接的链接类型、名称和link的可供性动作。 值得注意的是,没有提供PartNet-Mobility 数据集中链接负担得起的操作因此,我们从机器人技能库Roboagent中选择动作。同时为了使得选择的动作与link匹配,使用gpt4进行筛选(都是数据构建的过程)。

  • Sub-tasks Construction:与ManipVQA一样REC和REG,但是最开始并不是ManipVQA提出的,而是参考文献9。Following these definitions, we construct four different sub-tasks: (1) Detection, (2) REC-Link, (3) REG-Joint, and (4) REC-Action. Each sub-task consists of an image, a text question, and a text answer.(与ManipVQA一样,同样对任务进行了扩展)。

  • Data Augmentation Strategy:原始 PartNet-Mobility 数据集的一个限制是没有纹理细节。为了解决模拟到现实(Sim2Real)的差距,我们使用ControlNet[39]来生成更真实的图像,使用深度图作为主要控制信号,因为它们能够传达几何和语义信息。(具体是怎么做的? 这里的控制信号应该指的是输入Stable Diffusion的condition)。

Fine-tuning Strategy:两阶段微调。

我们的训练范式遵循传统的视觉问答 (VQA) 框架,并在自然语言框架内封装有关链接的所有信息。为了弥合我们专业数据集和通用自然图像之间的视觉差异,我们采用了两阶段微调策略。最初,视觉投影层使用简单的图像标题任务进行微调,利用“这是一个 [OBJ]”等基本模板来生成简单的标题。然后,我们在指令跟踪数据集上同时微调视觉投影层和LLM。

Action Primitives:As previously mentioned, A3VLM utilizes an objectcentric representation. To translate this into a robot movement, we need to define specific action primitives。A3VLM 旨在与各种类型的机器人一起使用;因此,它没有针对任何特定的机械手进行优化,例如平行或吸力夹具。需要一个独立的通用抓取姿势提议器来生成抓取候选列表。在操作过程中,我们利用 A3VLM 生成的三元组 (B, A, S) 和抓取姿势候选。

我们定义了三种类型的动作原语:Rotate、Slide 和 Scroll。对于给定的link,如果它对应的关节类型是棱柱,我们选择滑动动作;如果它是旋转的,我们选择旋转动作,除非目标链接在语义上被标记为瓶盖或滚动按钮,在这种情况下我们选择滚动动作。(也就是说,根据的是三元组 (B, A, S)中的S(语义标签是指关节类型(prismatic 或 rotation)、链接名称和动作类型)来选择对应的动作源语)。

如果选择的动作是“滚动”,我们确保抓取姿势与旋转轴 A 重叠。否则,我们在边界框 B 中随机选择一个抓取姿势作为接触点 C。然后,我们为每个动作类型使用 C 和 A 生成轨迹。(根据rotation axis和contact point和反解算法生成轨迹,这些轨迹构成了我们生成的动作)。

实验:A3VLM is developed based on the SPHINX-X [12] with LLaMA2 serving as the language backbone.(SPHINX-X模型的优势:关注目标对象的部分或区域细节).The visual encoders were kept frozen throughout the fine-tuning phase to maintain the integrity of the pre-trained features.我们认为这种改进来自两个方面:一方面来自可操作的部分和关节结构的准确基础(形成的结构化三元组),另一个方面是动作原语的引入。动作原语使 A3VLM 能够对不同的铰接对象执行不同的动作。

Action Primitives Details(定量评估时候的过程):与上述基线不同,A3VLM 以以对象为中心的方式对动作进行建模。更具体地说,对于每个对象,我们首先检测出a list of action parts的相应的边界框 B、轴 A、关节类型和链接名称 S(也就是说把都按照三元组的形式存储在list里面)。 我们从列表中选择一个随机动作部分,并使用其边界框B和轴 A 来生成两个机器人轨迹(B和A就能表示物体的pose,利用反解算法生成轨迹)。例如,对于faucet(水龙头)的处理,我们将生成轨迹顺时针和逆时针旋转。我们将在两个尝试中执行这些轨迹。如果任务在两种尝试中都成功,则认为该任务是成功的。

结论:了解铰接物体的关节和动作可供性。与之前的以动作为中心的机器人VLM不同,A3VLM不需要任何机器人交互数据,可以适应各种机器人配置。不需要的是机器人的轨迹数据。

现有的用于操作的llm/VLM可以分为三个主要类别:

第一种是生成code(高级规划)并调用API:depends on the implementation of the low-level skills and APIs, and it is primarily limited to simple tasks such as pick-and-place。eg:Code-as-Policies, Instruct2Act, SayCan.

第二种是直接生成low-level action的:需要大量的机器人轨迹数据。eg:RT-1 [3], RT-2 [3], and ManipLLM

第三种是生成中间的机器人表示,然后使用简单的动作原语或控制将其转换为机器人动作。such as cost maps (VoxPoser [18]), action constraints (MOKA [25]), or affordances (ManipVQA [17]), which are then translated into robot actions using simple action primitives or controls. Our A3VLM falls into this third category.

附录:Exploration on More Input Modalities:

  1. 尝试使用深度图与RGB图像一起作为模型的输入。然而,训练阶段效果都很好,在测试阶段,A3VLM 显示出显著的改进,表明纯 RGB 输入实际上更适合泛化。这种消融研究证实了我们最初的假设,即使用纯 RGB 作为输入模态。

  2. For point cloud inputs, we utilized PointBert [37] and RECON [30] as the point encoders,尽管修改后的大型语言模型 (MLLM) 产生了高质量的字幕取得了成功的训练,但 LLM 未能预测部分对象边界框坐标(训练没崩,测试崩了)。这个困难归因于:Lack of Visual Texture 和 Model and Data Limitations。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com