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

A3VLM: Actionable Articulation-Aware Vision Language Model
发表时间:13 Jun 2024 作者单位:SJTU Motivation:以往的机器人VLM如RT-1[4]、RT-2[3]和ManipLLM[21]都专注于直接学习以机器人为中心的动作。这种方法需要收集大量的机器人交互数据,这在现实世界中非常昂贵。 解决方法…...

企业高性能web服务器
web服务器介绍 Apache HTTP Server:也称为Apache,是一个开源的HTTP服务器,目前是全球使用最广泛的Web服务器 Nginx:Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 Microsoft Internet Inform…...

数据库:深入解析SQL分组与聚合——提升数据查询效率的关键技巧
数据库:深入解析SQL分组与聚合——提升数据查询效率的关键技巧 在数据分析和数据库管理中,SQL 的分组与排序操作是不可或缺的工具。本篇博客将深入探讨 GROUP BY 和 ORDER BY 的使用方法,并通过实际案例说明如何通过分组实现数据聚合以及如何…...

【CSS】数字英文css没有转换成...换行点、没有换行、拆分的问题(非常常见的需求)
默认情况下,连续的英文或数字文本不会在空格处换行,这可能导致布局问题。 解决方案 要解决这个问题,可以使用以下几种CSS属性: word-break: 控制单词如何换行。设置为break-all可以让任何字符都能成为换行点。word-wrap: 控制是…...

C++ string模拟实现
一 如何区分自定义类与标准库中的同名类 // string.h #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include<iostream> using namespace std;namespace bit {class string{} }// Test.cpp include "string.h"int main() {return 0; } 既然要模拟实现str…...

Lora 全文翻译
作者: 地点:hby 来源:https://arxiv.org/pdf/2106.09685 工具:文心 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 摘要 自然语言处理的一个重要范式包括在通用领域数据上进行大规模预训练,并适应特定任务或…...

结题阶段(2024年8月)
海门区教育科学 “十四五”规划2022年度立项课题 结题鉴定材料 课 题 名 称 高中信息技术项目化教学的研究与应用 课题负责人 郭书艳 所 在 单 位 江苏省包场高级中学 报 送 日 期 2024 年 6 月 20 日…...

贪吃蛇(C语言详解)
贪吃蛇游戏运行画面-CSDN直播 目录 贪吃蛇游戏运行画面-CSDN直播 1. 实验目标 2. Win32 API介绍 2.1 Win32 API 2.2 控制台程序(Console) 2.3 控制台屏幕上的坐标COORD 2.4 GetStdHandle 2.5 GetConsoleCursorlnfo 2.5.1 CONSOLE_CURSOR_INFO …...

国际以太网专线(IEPL)与国际专线(IPLC)服务
中国联通国际公司产品: 国际以太网专线 (IEPL)/国际专线(IPLC) 在全球化的今天,企业越来越依赖于高速、稳定且安全的国际网络连接来支持其跨国业务活动。中国联通国际公司作为中国领先的电信运营商之一,在这一领域提供了多种优质…...

vue 子父组件互相改值
在Vue.js中,子组件想要修改父组件的状态(如数据属性的值)时,通常遵循以下步骤: 父组件向子组件传递数据:通过props(属性)将需要被子组件操作的值传入子组件。例如,在父组…...

java之拼图小游戏(开源)
public class LoginJFrame extends JFrame {//表示登录界面,以后所有跟登录相关的都写在这里public LoginJFrame() {//设置界面的长和宽this.setSize(603,680);//设置界面的标题this.setTitle("拼图登陆界面");//设置界面置顶this.setAlwaysOnTop(true);/…...

Linux Shell批量测试IP连通性
Linux 通过Shell脚本来实现读取txt文件中的IP地址,并使用telnet对其后的所有端口进行测试,判断是否可以连接。每个IP地址的端口测试时间限制为5秒。 IP文件 : ips.txt 192.168.1.1 22,80,443 192.168.1.2 21,25,110 192.168.1.3 8080每一行包含一个IP地…...

已解决:anaocnda如何备份环境与安装环境
1.使用pip进行备份 激活对应的虚拟环境,切换到桌面或者想备份的位置。 备份即可: pip freeze > requirements.txt如何安装备份? pip install -r requirements.txt2.使用conda进行备份 激活对应的虚拟环境,切换到桌面或者想…...

自动化与高效设计:推理技术在FPGA中的应用
想象一下,你正在设计一个复杂的电路系统,就像在搭建一座精巧的积木城堡。你手头有各种形状和功能的积木块,这些积木块可以组合成任何你需要的结构。在这个过程中,你有两种主要的方法:一种是手动挑选和搭建每一块积木&a…...

对react模块和模块化理解
在React开发中,模块化和React模块是两个紧密相关但又有区别的概念。理解它们对于构建高效、可维护的React应用至关重要。 模块化 模块化是一种将大型代码库拆分成更小、更易于管理的部分(即模块)的软件设计技术。每个模块都封装了特定的功能…...

CAN总线-----帧格式
目录 前言 一、CAN总线帧格式分类 1.数据帧(重点) 2.遥控帧 3.错误帧 4.过载帧 5.间隔帧 二、位填充 三、波形实例 前言 本期我们就开始学习CAN总线的帧格式,对应帧格式的话,在前面我们学习I2C协议和SPI协议等协议的时候…...

UE网络同步(一) —— 一个项目入门UE网络同步之概念解释
最近在学习UE网络同步,发现了一个非常好的教程,并且附带了项目文件,这里从这个小项目入手,理解UE的网络同步 教程链接:https://www.youtube.com/watch?vJOJP0CvpB8w 项目链接:https://github.com/awforsyt…...

MATLAB中rsf2csf函数用法
目录 语法 说明 示例 将实数 Schur 形式变换为复数 Schur 形式 rsf2csf函数的功能是将实数 Schur 形式转换为复数 Schur 形式。 语法 [Unew,Tnew] rsf2csf(U,T) 说明 [Unew,Tnew] rsf2csf(U,T) 将实矩阵 X 的 [U,T] schur(X) 的输出从实数 Schur 形式变换为复数 Sc…...

Java基础 文字小游戏
souf System.out.printf("你好啊%s","张三") 输出你好啊张三 System.out.printn()放在中间可以换行 System.out.printf("%s你好啊%s","张三","李四") 输出 张三你好啊李四 只有输出没有换行效果。 制作一个文字小游戏…...

「数组」归并排序 / if语句优化|小区间插入优化(C++)
概述 在上一篇文章中,我们介绍了快速排序以及随机快速排序: 「数组」快速排序 / 随机值优化|小区间插入优化(C) 今天,我们来介绍归并排序。 相比于快速排序是冒泡排序融合了分治思想后形成的究极promax进化版&…...

颠覆传统 北大新型MoM架构挑战Transformer模型,显著提升计算效率
挑战传统的Transformer模型设计 在深度学习和自然语言处理领域,Transformer模型已经成为一种标准的架构,广泛应用于各种任务中。传统的Transformer模型依赖于一个固定的、按深度排序的层次结构,每一层的输出都作为下一层的输入。这种设计虽然…...

接口优化笔记
索引 添加索引 where条件的关键自动或者order by后面的排序字段可以添加索引加速查询 索引只能通过删除新增进行修改,无法直接修改。 # 查看表的索引 show index from table_name; show create table table_name; # 添加索引 alter table table_name add index …...

pandas 科学计数法显示
我注意到pandas中有一个问题, 默认情况下,就是其中的数据的小数位不能超过6位,比如0.0000007就会被显示为0,这个结果如下 全部以科学技术显示 import pandas as pd import numpy as np# 设置显示格式为科学计数法 pd.options.d…...

PHP正则替换字符串中的图片地址
在PHP中,可以使用preg_replace()函数来实现正则表达式的替换功能。以下是一个简单的例子,演示如何替换字符串中的图片地址。 double $str 图片地址1:<img src"http://example.com/image1.jpg"> 图片地址2:<i…...

基于多商户AI智能名片商城小程序的粉丝忠诚度提升策略:深度融合足额法则与多维度激励体系
摘要:在数字化浪潮的推动下,多商户AI智能名片商城小程序以其独特的商业模式和技术优势,正逐步成为连接商家与消费者,特别是粉丝群体的重要平台。本文深入探讨了如何通过深度融合足额法则与多维度激励体系,有效提升多商…...

BigDecimal高精度运算
1. BigDecimal是什么类型,为什么可以转为double BigDecimal 是 Java 中用于表示任意精度的十进制数的类。它主要用于金融和商业计算,能够提供比 double 类型更高精度的运算,特别是在处理货币等需要精确计算的场景中。 1.1 BigDecimal 的基…...

C/C++实现蓝屏2.0
🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主,后期持续更新系列文章 🚀如果有错误感谢请大家批评指出,及时修改 🚀感谢大家点赞👍收藏⭐评论✍ 前…...

Unity音频管理器插件AudioToolKit
Unity音频管理器插件AudioToolKit 介绍AudioToolKit介绍具体用法总结 介绍 最近在自己写音频管理器的时候在网上发现了一款比较好用并且功能很全的一个音频管理插件,叫做AudioToolKit的插件。 如果需要的可以直接从我资源中找AudioToolKit。 AudioToolKit介绍 A…...

搜维尔科技:驾驶模拟器背后的技术: Varjo的虚拟/混合现实 (VR/XR)提供独特的优势,最终加快汽车开发创新的步伐
专业驾驶模拟器广泛应用于车辆开发,帮助汽车行业在开发过程的早期做出更好的设计决策。总体目标是为测试驾驶员提供最真实的驾驶体验,包括动态动作和声音,并测试控制算法或辅助系统等功能。环境越真实,驾驶员的体验就越接近最终车…...

OSL 冠名赞助Web3峰会 “FORESIGHT2024”圆满收官
OSL 望为香港数字资产市场发展建设添砖加瓦 (香港,2024 年 8 月 13 日)- 8 月 11 日至 12 日, 由 香港唯一专注数字资产的上市公司 OSL 集团(863.HK)冠名赞助,Foresight News、 Foresight Ventu…...