清华提出ViLa,揭秘 GPT-4V 在机器人视觉规划中的潜力

人类在面对简洁的语言指令时,可以根据上下文进行一连串的操作。对于“拿一罐可乐”的指令,若可乐近在眼前,下意识的反应会是迅速去拿;而当没看到可乐时,人们会主动去冰箱或储物柜中寻找。这种自适应的能力源于对场景的深刻理解和对广泛常识的运用,使人们能够根据上下文推断和解释指令

图片

举例来说,对于机器人系统,底层指令可能是精确的关节运动或轮速控制。相比之下,高级语言指令可能是描述一个任务或目标,比如“将蓝色的盘子放在桌子上”。会更接近人类日常语言、易于理解,而不需要详细规定每个具体的动作。因此使用高级语言指令有助于提高系统的可理解性和用户友好性。

当下对于视觉语言模型(VLM)如 GPT-4V 的研究如火如荼,那么如何借助这些模型让机器人更好地理解高级语言指令,对非专业领域的人们更加友好呢?

来自清华的团队提出了一种简单有效的方法——ViLa,利用 GPT-4V 进行机器人长期任务规划的方法,揭示了 GPT-4V 在机器人视觉语言规划中的潜力,改变了机器人理解和与环境互动的方式。我们将深入探讨如何构建机器人智能体,使其能理解并执行类似于人类的复杂任务,并在不同场景中展现出长期任务规划的强大能力。

论文题目:
Look Before You Leap: Unveiling the Power of GPT-4V in Robotic Vision-Language Planning

论文链接:
https://arxiv.org/abs/2311.17842

博客地址:
https://robot-vila.github.io/


在大型语言模型(LLM)为复杂的长期任务生成步骤计划时,存在的关键局限是缺乏世界基础,无法感知和推理机器人及其环境的物理状态。为此,有人提出使用外部的适应性模型,但这些模块总无法传达在复杂环境中重要的任务相关信息,使 LLM 仍像一个盲人,适应性模型充当其向导时:

  • 盲人仅依靠他们的想象力和向导有限的叙述来理解世界

  • 向导可能无法准确理解盲人的目的

为了解决这一问题,结合视觉和语言进行联合推理显然不可或缺。视觉语言模型(VLM)直接将感知信息融入语言模型的推理过程中,以此为基础,作者提出了 ViLa。

ViLa 通过将视觉信息直接整合到推理和规划过程中,显著提高了在现实世界和模拟环境中解决各种复杂而长期任务的能力。其独特之处在于以零样本方式展示了解决各类真实世界日常操纵任务的能力,能够高效地处理各种开放集指令和对象。ViLa 不仅能够在没有事先学习的情况下执行任务,而且在面对多样化的指令和对象时表现出卓越的适应性

图片

▲图1 ViLA 可以利用基于视觉世界的丰富常识。需要理解空间布局(第一行)、对象属性(中间行)和具有多模态目标的任务(最后一行)

方法

机器人系统通过获取环境的视觉观察  和高级语言指令  来执行操纵任务。生成一连串文本动作,每个动作  都是一个短期语言指令(例如“拿起蓝色容器”),并指定一个子任务或基本技能。

机器人视觉语言规划(ViLA)算法的核心思想是利用 VLM 的能力,通过联合运用视觉和语言,将复杂的高级任务拆解为更容易执行的低级任务序列,实现在动态环境中的闭环规划。

如算法 1 所描述:

图片

▲算法1

  1. 输入: 当前环境的视觉观察  和高级语言指令 。

  2. 使用 VLM 生成规划: ViLA 通过促使视觉语言模型(VLMs)生成一份步骤规划 。表示了从当前状态到达目标状态所需的一系列步骤。

  3. 选择第一个步骤作为文本动作: 为了实现闭环执行,从生成的规划中选择第一步,即文本动作 。

  4. 执行策略: 机器人执行与所选择文本动作相对应的策略 π。

  5. 更新 VLM 查询: 修改 VLM 查询,将执行的文本动作  加入查询中。

  6. 循环执行: 重复步骤 2 至步骤 5,直到终止 token。

完整的执行过程形成一个闭环规划,整个过程概览如图 2 所示。

图片

▲图2 ViLA 的概述

ViLA 的优势

  1. 对视觉常识的理解: ViLA 通过直接整合图像信息到推理和规划过程中,以零样本方式展现了对复杂的实际世界操纵任务的能力,尤其在空间布局理解物体属性理解方面具有独特优势。

  2. 多模态目标说明: ViLA 在复杂的长期任务中通过视觉观察和语言指令,同时整合目标图像,实现了多模态的目标说明。这使得系统在不同任务和领域中更加灵活和实用。

  3. 视觉反馈: ViLA 直接利用视觉反馈,将其融入规划过程,使机器人能更直观地理解环境变化,并在需要时进行实时调整或重新规划。这比将视觉反馈转换为语言的方法更自然和高效

实验

规划日常操作任务

作者计划用 16 个长期规划的操纵任务来评估 ViLA 在三个领域的性能:

  • 对视觉世界常识的理解

  • 目标说明的灵活性

  • 对视觉反馈的利用

作者严格遵守零示例,在提示中没有包含任何上下文示例,而只使用高级语言说明和机器人需要满足的一些简单约束。

理解视觉常识

如表 1 所示,对需要理解空间布局和物体属性的任务进行规划成功率的比较,ViLA 在 8 项任务中表现出色,能够在推理和规划的过程中融合图像,并深入理解视觉世界中的常识知识。ViLA 的出色表现不仅突显了其通用性,还展现了其作为开放世界任务通用规划器的潜力。

图片

▲表1 需要丰富视觉常识的任务比较

如图 3 的实验所示,在第一个任务中,ViLA 成功识别出在拿起蓝色盘子之前需要将苹果和香蕉从蓝色盘子中移开。相反,SayCan 虽然识别到了物品,但未能理解它们之间的空间关系,试图直接拿起蓝色盘子,这凸显了在视觉推理中理解复杂的几何配置和环境约束的重要性

图片

▲图3 ViLA(左)和 SayCan (右)的决策过程

在另一个场景中,要为儿童美术课准备安全区域,基于桌子上的剪纸的上下文线索,剪刀应该保留在桌子上,但 SayCan 错误地拿起剪刀并放入盒子中。这显示了全面的视觉理解对于准确评估物体属性的关键性

在图 4 中,作者进行了一项故障分析,主要关注了不同模型在执行规划任务时产生的错误类型。可以看到,通过利用根植于视觉世界的常识知识,ViLA 显著降低了理解错误

图片

▲图4 ViLA 和 baseline 的错误细分

ViLA 支持灵活的多模态目标说明

图片

▲表2 具有多模态目标的任务中实验结果

在一系列包含不同目标类型的 4 个任务中,实验结果如表 2 所示,ViLA 在所有任务中表现都很好,利用 GPT-4V 中蕴含的大量互联网知识,ViLA 展现了理解各种目标图像的卓越能力。这包括解释丰富儿童绘画以完成拼图、通过参考盘子的照片准备寿司盘(如图 5 顶部所示),甚至准确识别人指示的蔬菜布置(图 5 底部)。此外,作者通过图像和语言说明的组合探索目标说明,凭借其在视觉和语言推理中的双重能力,让 ViLA 获得不错的表现。

图片

▲图5 ViLA 在基于图像目标的任务上的执行示例

ViLA 可以自然地利用视觉反馈

作者设计了四个需要实时视觉反馈才能成功执行的任务,评估了 ViLA 在仅基于初始观察制定计划的开环(open-loop)变体中的性能。表 3 的结果显示,开环变体在这些需要持续重新规划的动态任务中表现不佳,而通过利用视觉反馈,闭环 ViLA 则明显较优

图片

▲表3 开环 ViLA 与闭环 ViLA

ViLA 不仅能够有效地从外部干扰中恢复,还能够根据实时视觉反馈调整其策略。比如图 6 的 ViLA 在顶层抽屉找不到订书机时,会继续检查底层抽屉,从而成功找到订书机完成任务。

图片

▲图6 ViLA 在 Find Stapler 任务中的执行示例

模拟桌面重排

在该任务中,机器人或自动化系统需要理解高级语言指令,重新排列桌面上的物体,来实现特定的目标配置或布局。这需要机器人进行视觉感知、语言理解、规划和执行一系列的操纵动作,以实现所要求的桌面布局。

这里有 3 种 baseline:

  1. CLIPort:一种语言条件的模仿学习智能体,直接接收高级语言说明而无需规划器。

  2. LLM-based Planner:一种基于 LLM 的规划器,不依赖任何将语言或符号与视觉感知或环境特征连接起来的可用性模型。

  3. Grounded Decoding(GD):将 LLM 与可用性模型结合,以增强规划能力。

在表 4 的比较中,基于 CLIPort 的方法在面对新颖未见任务的泛化表现有限。尽管 GD 通过外部的可用性模型取得了一定进展,但在各项任务中明显落后于 ViLA,这凸显了在高级机器人规划中整合视觉和语言推理的优势

图片

▲表4 在模拟环境中的平均成功率

总结

本文所提出的 ViLa 利用 VLM 将高层语言指令分解为可执行的步骤序列,这不仅是个规划工具,也是机器与人类交互的桥梁,它能够通过视觉和语言的完美协同,理解世界、规划动作,并在动态环境中实现自适应。这种融合视觉和语言的方法,突破了以往规划系统的局限,为机器人在真实世界中执行任务提供了更广阔的可能性。

任何科研探索在诞生之初都会面临挑战和限制,我们期待未来的 ViLa 能努力克服这些挑战,进一步提高其灵活性和智能水平。希望通过不断改进 VLM 的可解释性和输出的一致性,我们能更好地理解 ViLa 的决策过程,并进一步拓展其适用范围。

期待在未来,机器人不只是执行任务的工具,而是真正理解并融入我们生活的智能伙伴。

图片

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/233106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试人才稀缺!揭秘为什么你找不到软件测试工作?

最近后台很多粉丝给我留言: 2023年软件测试已经崩盘了吗,为什么都找不到工作了? 确实,今年经济大环境不好,企业也都在降本增效,如果技术能力还在被应届生竞争岗位的阶段,只会越来越难。 找不…

从零开始在Linux服务器配置并运行YOLO8+Web项目

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏: 神经网络(随缘更新) ✨特色…

『OPEN3D』1.5.4 动手实现点云八叉树(OctoTree)最近邻

本专栏地址: https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482 在二维和三维空间中,我们可以采用四叉树(Quad tree)和八叉树(Octree)这两种特定的数据结构来处理空间分割。这些树形结构可以看作是K-d树在不同维度下的扩展。…

SpringBoot的多环境开发

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

JS - 闭包(Closure)

目录 1,什么是闭包2,创建闭包3,如何销毁闭包2.1,自动创建的闭包2.2,手动创建的闭包 4,闭包的特点和使用场景3.1,特点3.2,使用场景避免全局变量污染函数柯里化 5,闭包经典…

【高级网络程序设计】Block1总结

这一个Block分为四个部分,第一部分是Introduction to Threads and Concurrency ,第二部分是Interruptting and Terminating a Thread,第三部分是Keep Threads safety:the volatile variable and locks,第四部分是Beyon…

【算法系列篇】递归、搜索和回溯(四)

文章目录 前言什么是决策树1. 全排列1.1 题目要求1.2 做题思路1.3 代码实现 2. 子集2.1 题目要求2.2 做题思路2.3 代码实现 3. 找出所有子集的异或总和再求和3.1 题目要求3.2 做题思路3.3 代码实现 4. 全排列II4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面我们通过几个题目…

提升研究效率,尽在EndNote 21 forMac/win!

在科研领域,文献管理是一项至关重要的任务。研究人员需要快速而准确地收集、整理和引用大量的文献资料,以支持他们的研究工作。而EndNote 21作为一款功能强大的文献管理软件,能够帮助研究人员高效地管理文献资源,提升研究工作的效…

【Linux基础】1. Linux 启动过程

文章目录 【 1. 内核的引导 】【 2. 运行init 】 运行级别 【 3. 系统初始化 】【 4. 建立终端 】【 5. 用户登录系统 】【 6. 图形模式与文字模式的切换方式 】【 7. Linux关机 】 Linux系统的启动过程分为 5个阶段: (1)内核的引导。 &#…

Java中线程状态的描述

多线程-基础方法的认识 截止目前线程的复习 Thread 类 创建Thread类的方法 继承Thread类,重写run方法实现Runnable接口,重写run方法使用匿名内部类继承Thread类,重写run方法使用匿名内部类实现Runnable接口,重写run方法使用Lambda表达式 run方法中的所有的代码是当前线程对…

第二百一十六回 分享一种更新页面数据的方法

文章目录 1. 概念介绍2. 实现方法2.1 实现思路2.2 实现方法3. 示例代码4. 内容总结我们在上一章回中介绍了"如何创建单例模式"相关的内容,本章回中将 分享一种更新页面数据的方法.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍一种更新页…

测站坐标系统 -- 东北天(ENU)坐标系、站心坐标系

目录 一、测站坐标系的定义 二、测站坐标系与地心地固坐标系的转换 2.1地心地固坐标系转到测站坐标系 2.2测站坐标系转到地心地固坐标系 三、方位角和高度角的计算 一、测站坐标系的定义 测站坐标系统以观测站( 或地面上某一个观测点 ) 为中心建立坐标系统,将这…

SQL基础:记录的基本操作

在上一节中,我们进行了表的新建,这一节我们讲一下记录的增加、修改、删除、查询。 增加 增加即使用insert语句, INSERT INTO users (user_id, username, password, email) VALUES (2, jane_smith, pass456, janeexample.com);查看插入的数…

代码随想录第三十六天(一刷C语言)|背包问题理论基础分割等和子集

创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。 一、背包问题 题目:有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装…

Docker的安装及使用

目录 安装Docker 安装yum工具 更新本地镜像源 安装docker 启动docker 关闭防火墙 docker启动命令 配置镜像加速 docker的使用 拉取nginx 查看本地镜像 把镜像文件nginx导出成tar文件 查看是否导出成功 ​编辑 删除本地镜像nginx:latest 导入镜像文件nginx 拉取…

Java项目-瑞吉外卖项目优化Day1

创建新仓库 push项目 新建分支v1.0做优化 导入Redis相关配置 导入坐标。 实现配置类,重写序列化器,也可以直接用StringRedisTemplate。 application.xml配置: 实现缓存短信验证码 将手机号与验证码存进redis。 从redis中获取验证码&…

微信小程序长按图片识别二维码

设置show-menu-by-longpress"true"即可&#xff0c;长按图片后会弹出一个菜单&#xff0c;若图片中包含二维码或小程序码&#xff0c;菜单中会有响应入口 <image src"图片地址" show-menu-by-longpress"true"></image>官方说明

大语言模型(LLM)与 Jupyter 连接起来了!

现在&#xff0c;大语言模型&#xff08;LLM&#xff09;与 Jupyter 连接起来了&#xff01; 这主要归功于一个名叫 Jupyter AI 的项目&#xff0c;它是官方支持的 Project Jupyter 子项目。目前该项目已经完全开源&#xff0c;其连接的模型主要来自 AI21、Anthropic、AWS、Co…

专栏十六:bulk以及单细胞空转中的progeny通路分析

progeny本身有自己的R包,可以提取通路基因集信息,团队把他嵌入另一个R包decoupleR中完成富集分析。decoupleR自己有详细的针对bulk和scRNAseq的教程 简单安装一下 devtools::install_github(saezlab/OmnipathR) devtools::install_github("saezlab/progeny") Bio…

6 最大积水量

蛮力求解 #include <iostream> using namespace::std; using std::cout; using std::cin; int zdjsl(int n, int height[]) {int sum 0;int left_max[n];int right_max[n];left_max[0] height[0];right_max[n-1] height[n-1];for(int i1; i<n; i){left_max[i] m…