“最强”机器学习辅助!利用自然语言让机器人更好地理解开放性世界

原创 | 文 BFT机器人 

图片

想象一下,你正在国外拜访朋友,打开他的冰箱看看有没有能够制作一顿美味早餐的食材。最初,冰箱里的许多物品对你来说都很陌生,每个物品的包装都是你不熟悉的。你开始试图理解每个物品的用途,并根据自己的需要拿起它们。

受到人类处理陌生物体能力的启发,麻省理工学院计算机科学与人工智能实验室(CSAIL)的一个团队设计了“用于机器人操作的特征场(F3RM)”,这是将2D图像与基础模型特征结合成3D场景的系统。如此,在2D图像中构建的图像特征和语义数据,就能被三维的机器人理解并使用。不仅操作简单,训练过程中需要的样本量也很小,低训练样本实现轻松取物。

F3RM为机器人提供了解释自然语言的开放性文本提示的能力,帮助机器操作物体。因此,即使机器人接收到来自人类不太具体的请求,仍然能够完成所需的任务。例如,如果用户要求机器人拿起一个高杯子,机器人可以找到并拿取最符合这个描述的物品。

来自麻省理工学院计算机科学与人工智能实验室的博士后研究员Ge Yang表示:“使机器人在现实世界中能够泛化是非常困难的,我们真的想弄清楚如何做到这一点,因此在这个项目中,我们试图推动一种激进的泛化水平,从仅有三四个物体到我们在麻省理工学院发现的任何东西。我们想学会如何使机器人像我们自己一样灵活,因为我们可以轻松抓取和放置即使从未见过的物体。”

图片

01

通过视觉了解事物的位置

这种方法可以帮助机器人在充满混乱和不可预测性的大型订单处理中挑选物品。在这些仓库中,通常需要给机器人提供库存描述,以便它们能够识别。机器人必须将提供的文本与物体匹配,而不管包装方式如何,以确保客户的订单被正确地发货。

大型在线零售商的订单处理中心可能包含数百万件物品,其中许多物品机器人以前从未遇到过。为了在如此大规模的操作中运行,机器人需要理解不同物品的几何形状和语义,其中一些可能位于狭小空间中。借助F3RM的先进空间感知和语义感知能力,机器人可以更有效地定位物体,将其放入箱子中,然后送往包装。这将有助于工厂更高效地完成客户订单。

麻省理工学院的研究团队指出,F3RM理解不同场景的能力可能在城市和家庭环境中也很有用。例如,这种方法可以帮助个性化机器人识别和拾取特定物品。该系统帮助机器人把握它们的周围环境,无论是在物理上还是在感知上。

麻省理工学院电气工程和计算机科学副教授、CSAIL首席研究员Phillip Isola表示:“David Marr曾经将视觉感知定义为‘通过看的方式知道物体的位置’的问题。最近的基础模型在知道它们正在看什么方面做得非常好,它们可以识别成千上万种物体类别,并提供图像的详细文本描述。与此同时,辐射场在表示场景中的物体位置方面也表现出色。这两种方法的结合可以创建一个关于3D中物体位置的表示。我们的工作表明,这种组合对于需要在3D中操纵物体的机器人任务特别有用。”

图片

02

创造“数字孪生”

F3RM通过使用自拍杆拍照来开始理解周围环境。安装在自拍杆上的摄像头以不同的姿势拍摄了50张照片,从而使其构建了神经辐射场(NeRF),这是一种深度学习方法,用于从2D图像构建3D场景。这些RGB照片的集合创建了其周围环境的“数字孪生”,以360度的形式呈现附近的场景。

除了高度详细的神经辐射场,F3RM还构建了一个特征场,以增强几何形状与语义信息。该系统使用CLIP——一个在数亿张图像上训练的视觉基础模型,以有效地学习视觉概念。通过重建自拍杆拍摄的图像的2D CLIP特征,F3RM有效地将这些2D特征提升到一个3D表示中。

图片

03

保持事物的开放性

在接收了一些演示之后,机器人将其关于几何形状和语义的知识应用于抓取它以前从未遇到过的物体。一旦用户提交了文本查询,机器人会搜索场景中可能满足用户抓取需求的所有物体。每个潜在的选项都根据其与提示的相关性、与机器人所训练的演示的相似性以及是否会引起任何碰撞来评分,然后选择并执行得分最高的抓取方式。

为了展示该系统解释来自人类的开放性请求的能力,研究人员要求机器人拾取Baymax(迪士尼电影《超能陆战队》中的角色)。尽管F3RM从未直接训练过如何拾取这个卡通超级英雄的玩具,但机器人利用其来自基础模型的空间感知和视觉语言特征来决定要拾取哪个物体以及如何拾取它。

F3RM还使用户能够在不同语言细节水平上指定他们希望机器人处理的物体。例如,如果有一个金属杯子和一个玻璃杯,用户可以要求机器人拾取“玻璃杯”。如果机器人看到两个玻璃杯,其中一个装有咖啡,另一个装有果汁,用户可以要求机器人拾取“带咖啡的玻璃杯”。特征场中嵌入的基础模型特征使这种开放性理解成为可能。

图片

麻省理工学院博士研究生、CSAIL联合作者和共同主要作者William Shen表示:“如果我向一个人展示如何通过杯口拾取杯子,他们可以轻松将这种知识应用于拾取几何形状类似的物体,如碗、量杯,甚至胶带卷。对于机器人来说,实现这种适应性水平一直非常具有挑战性。F3RM将来自互联网规模数据训练的基础模型的几何理解与语义相结合,使从仅有少量演示中实现这种激进的泛化成为可能。”

该项目的研究团队成员全部来自MIT的CSAIL实验室(计算机科学与人工智能实验室),共同一作是华裔博士生William Shen和华人博后Ge Yang,由Phillip Isola和Leslie Kaelbling监督指导。该团队得到了亚马逊公司、国家科学基金会、空军科学研究办公室、海军研究办公室多学科大学计划、陆军研究办公室、麻省理工学院IBM沃森实验室以及麻省理工学院智能追求计划的部分支持,并预计将在未来的机器人学习会议上进行展示。

若您对该文章内容有任何疑问,请与我们联系,我们将及时回应。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Avalonia播放视频(mp4)

1.Nuget添加类库Dove.Avalonia.Extensions.Media,项目路径https://github.com/michael-eddy/Avalonia.Extensions/ 2.Nuget添加VideoLAN.LibVLC.Windows PlatformLibVLC PackageMinimum OS VersionWindowsVideoLAN.LibVLC.WindowsWindows XPUWPVideoLAN.LibVLC.UW…

【Mysql】联表查询

目录 表: 思路: inner join right join left join ​编辑 表: student表 class表 思路: 1.分析查找的字段来自哪些表 2.确定使用哪种连接查询 3.确定交叉点 比如student表的name与class表的name是相等的 inner join …

python 把函数的值赋给变量

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 一个是模块的调用和一个自定义函数返回值赋值给变量 编写一个简单的函数模块: def run(name): list1 hello namereturn list1编写一个调用的脚…

YOLOv5 - common.py文件解读

🍨 本文为[🔗365天深度学习训练营学习记录博客 🍦 参考文章:365天深度学习训练营 🍖 原作者:[K同学啊 | 接辅导、项目定制](https://mtyjkh.blog.csdn.net/) 🚀 文章来源:[K同学的学…

el-table实现单选和隐藏全选框和回显数据

0 效果 1 单选 <el-table ref"clientTableRef" selection-change"clientChangeHandle"><el-table-column fixed type"selection" width"50" align"center" /><el-table-column label"客户名称" a…

Python进行多线程爬取数据通用模板

首先&#xff0c;我们需要导入所需的库&#xff0c;包括requests和BeautifulSoup。requests库用于发送HTTP请求&#xff0c;BeautifulSoup库用于解析HTML文档。 import requests from bs4 import BeautifulSoup然后&#xff0c;我们需要定义一个函数来发送HTTP请求并返回响应。…

C# 异步日志记录类,方便下次使用,不用重复造轮子

先定义接口类&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 异常 {internal interface ILog{Task WriteErrorLog(string message);Task WriteInfoLog(string message);Task W…

python实现FINS协议的TCP服务端(篇一)

python实现FINS协议的TCP服务端是一件稍微麻烦点的事情。它不像modbusTCP那样&#xff0c;可以使用现成的pymodbus模块去实现。但是&#xff0c;我们可以根据协议帧进行组包&#xff0c;自己去实现帧的格式&#xff0c;而这一切可以基于socket模块。本文为第一篇。 一、了解FI…

MATLAB绘图中文显示为方框

MATLAB绘图中文显示为方框 MATLAB显示英文和字母没有问题&#xff0c;但是当显示中文时会显示乱码&#xff0c;中文显示为方框&#xff0c;如下图&#xff1a; 可以在绘图命令中添加如下代码&#xff1a; set(gca,Fontname,Monospaced); 例如&#xff1a; % 滤波器系数%低通…

【EI会议征稿】第三届能源动力与控制工程国际学术会议(EPECE 2024)

第三届能源动力与控制工程国际学术会议&#xff08;EPECE 2024&#xff09; The 3rd International Conference on Energy and Power Engineering, Control Engineering (EPECE 2024) 第三届能源动力与控制工程国际学术会议&#xff08;EPECE 2024&#xff09;将于2024年2月2…

卫星遥感·格物致知丨卫星遥感的力量——自然灾害监测的太空之眼—洪涝灾害监测

遥感卫星从太空感知地球和获取地球表面的信息&#xff0c;当前有上千颗遥感卫星每天不停的对地表成像&#xff0c;其数据广泛用于地球系统科学研究、资源环境管理、国土安全和自然灾害监测等领域。卫星遥感的优势有监测范围大、不受区域地形限制、重复观测和多种类型数据(感知多…

MySQL -- 事务管理

MySQL – 事务管理 文章目录 MySQL -- 事务管理一、理解事务1.如果CURD不加控制&#xff0c;会有什么问题2.事务的概念 二、MySQL中的事务1.事务的版本支持2.事务提交方式3.事务常见操作方式3.1.事务的开始与回滚3.2.证明未commit&#xff0c;客户端崩溃&#xff0c;MySQL自动会…

Vite - 配置 - 不同的环境执行不同的配置文件

目标描述 通过不同的命令&#xff0c;执行不同的环境的配置文件中的内容&#xff1a; npm run dev : 执行开发环境的配置文件 npm run build: 执行生产环境的配置文件 环境文件准备 为了在不同的环境中使用不同的配置文件&#xff0c;我们将配置文件拆分开来。 开发环境使用开发…

【优选算法系列】【专题五位运算】第二节.371. 两整数之和and137. 只出现一次的数字 II

文章目录 前言一、两整数之和 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写二、只出现一次的数字 II 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写总结 前言 一、两整数之和 …

采集Prestashop独立站采集Prestashop独立站

import java.net.URL 这一行导入了Java.net包中的URL类&#xff0c;这个类在处理URL链接时非常有用。 import org.jsoup.Jsoup 这一行导入了Jsoup库&#xff0c;它是一个强大的HTML和XML文档解析库&#xff0c;我们可以使用它来解析网页内容。 import org.jsoup.nodes.Docume…

显卡服务器租用价格受哪些因素影响

显卡服务器也叫做GPU服务器&#xff0c;是一种有高性能显卡的服务器系统&#xff0c;显卡服务器能在大数据处理、科学计算等领域有很好的性能表现。今天小编就给大家讲一讲显卡服务器租用价格受哪些因素影响呢&#xff1f; 1.显卡类型和数量&#xff1a;一般说来中高端显卡的租…

pytorch搭建squeezenet网络的整套工程(升级版)

上一篇当中&#xff0c;使用pytorch搭建了一个squeezenet&#xff0c;效果还行。但是偶然间发现了一个稍微改动的版本&#xff0c;拿来测试一下发现效果会更好&#xff0c;大概网络结构还是没有变&#xff0c;还是如下的第二个版本&#xff1a; 具体看网络结构代码&#xff1a…

编译内核源码

本文将记录内核源码编译步骤&#xff0c;供有需要的人参考使用。 一、内核源码下载网址 内核源码网址&#xff1a;https://kernel.org/ 二、准备编译环境 这里需要注意区分x86架构和arm架构&#xff0c;需要不同的架构内核就准备对应的服务器即可&#xff0c;在服务器上安装…

Jupyter Notebook快速上手

Jupyter Notebook快速上手 文章目录 Jupyter Notebook快速上手1 运行Jupyter Notebook1.1 通过图形化界面打开1.2 通过命令行打开1.3 在指定项目目录下打开 2 Jupyter Notebook运行后无法自动打开网页3 Jupyter Notebook运行代码没反应4 退出4.1 终端退出4.2 命令行退出 此教程…

Linux安装git和maven——拉取代码 --> mvn打包成jar包 --->运行jar包

前言 我们知道最后的代码都是要运行在Linux系统中的&#xff0c;所以就需要在Linux中安装git&#xff0c;从而能够拉取代码&#xff0c;安装maven&#xff0c;从而能够进行项目的打包。 本篇博客以centos为例&#xff0c;介绍如何安装git&#xff0c;安装maven3.8&#xff0c…