UMPNet: Universal Manipulation Policy Network for Articulated Objects

1. 摘要

UMPNet是一个基于图像的策略网络,能够推理用于操纵铰接物体的闭环动作序列。该策略支持6DoF动作表示和可变长度轨迹。

为处理多种类的物体,该策略从不同的铰接结构中学习,并泛化到未见过的物体或类别上。该策略是以自监督探索的方式进行学习的,无需任何注释、脚本或预定义的目标。

为了支持多步交互,引入了一个新的Arrow-of-Time动作属性,用以指示某个动作是否会使得物体状态倒退(到过去的状态)或前进(到未来的状态)。通过在每一个交互步中使用这个Arrow-of-Time推理,学习到的策略能够选择朝向/远离给定的状态,实现高效的状态探索和基于目标的操纵。

这应该比VAT-MART还要早,因为是基于目标的,所以相对于Where2Act的改进就是可以生成动作轨迹,而不是单一的动作执行朝向。

2. 引言

UMPNet (Universal Manipulation Policy Network)通用操作策略网络,是一个简单的策略网络,通过视觉观测来探索铰接结构物体的可能的操作策略。由策略网络推断的行动轨迹有如下属性:

2.1. 通用动作表示

使用SE(3)变换来表示一个铰接的动作。

2.2. 闭环行为序列

预测单步的动作是比较简单的,本文关注的是一个序列的动作。但是,由于误差累积和部分观测的原因,这是很有挑战的。所以用闭环的方式来解决这一难题,即每次都使用初始状态和当前状态来预测一步的动作。

2.3. 时间箭头意识

大部分动作都是双向有效的。例如,对门来说,下一时刻既可能是开门(开合角度变大)或关门(开合角度变小),所以需要把历史信息记录下来(称之为时间箭头),它能够指引下一步动作是向前(开门)还是向后(关门)。

3. 方法

操纵策略π的目标是生成与随机铰接物体交互的动作序列,得到未见过的新状态。

以图2为例,为了高效探索物体(马桶为例)的新状态,算法如下:

  • 选择物体上正确的位置进行交互(即,与马桶盖交互而不是基);
  • 选择正确的动作方向(即,拉起来,而不是向下推);
  • 在接下来的动作中选择一致的动作,以探索新的状态(即,保持向上拉盖子,而不是上下移动盖子);

这三个需求对应算法中的3个关键部分:(1)运动位置选择;(2)运动距离;(3)Arrow-of-Time推理用于动作方向选择。

结合这三个部分,最后的系统能够通过自引导的探索过程来学习,而不需要显式的人类注释、脚本策略或预定义的目标情况。

3.1. 问题定义

输入是处于当前状态o_0的一张RGBD图像o_0 \in R^{W \times H \times 4},智能体通过策略 π \pi π生成每一步的动作a_t : \pi(o_t,o_0) \rightarrow a_t。该动作是在SE(3)空间中表示的,参数化为end-effector位置(吸式夹持器)和移动方向:a_t=(a^{pos}_t,a^{dir}_t)a^{pos}_t \in R^3是一个3D坐标,a^{dir}_t \in R^3, (||a^{dir}_t||=1)是一个单位向量,用于指示end-effector的移动方向。

在第一个交互步骤,策略选择一个3D位置a^{pos}_0以应用动作。为了执行动作,智能体移动它的end-effector到这个位置,方向垂直于物体表面。注意,gripper方向(由表面法线确定)可以不同于动作方向a^{dir}_t(这个动作方向由方向推理网络确定)。

在接下来的步骤中,智能体选择3D方向a^{dir}_t并沿着方向移动0.18(m),位置相对于物体表面固定。吸力是吸盘和选定物体位置之间的力约束。end-effector的方向在交互过程中总是与表面法线对齐。

3.2. 位置推理

开始的时候,策略需要选择一个3D位置a^{pos}_0应用动作。为了找到这个为止,算法需要去从观察图像o_0中选择一个像素,并应用动作。选择的像素将被使用深度值投影至3D空间中。

这个问题以给图像打标签的方式进行处理,位置网络(如图2a)的输入是RGB-D图像,预测逐像素的position affordance score P \in [0,1]^{W \times H}。Affordance分数P(w, h)表示在该位置上应用动作时,物体的移动概率。位置网络通过执行动作的输出进行监督。当且仅当物体对象在未来任何步骤中改变时,GT标签为1,使用二分类交叉熵损失训练。

但还需要注意,如果选择了那些接近于axis的位置,无法应用足够的力来移动物体部件。此外,这个标签还受到方向选择的质量影响,若预测了错误的方向,则物体的状态不会发生改变,则会标记为负例。

3.3. 方向推理

给定抓取点a^{pos}_0​的信息,基于这个条件,策略需要选择3D方向a^{dir}_t。为了选择动作方向,算法需要采样一组动作候选,评估每个动作候选的效率,“效率”指的是物体关节位置的移动距离r_{dist}(a_t^{dir})和Arrow-of-Time属性r_{AoT}(a^{dir}_t),如下定义:

其中,\vec{j_t}​指的是在每一步t时的物体关节状态,δ是确定状态是否发生高效改变的阈值。第一个式子表示该阶段状态和上一阶段状态的差异,第二个式子确定是否\vec{j_t}​是朝向未来状态的,而不是回到过去的状态。

为生成候选状态{\hat{a}^{dir}},一个简单的方法是在SO(3)空间中均匀采样。受限于采样数量,采样方向只能覆盖不包括最优方向的连续动作空间的一小部分。为解决这个问题引入启发式的方法,迭代交叉熵方法(CEM, Cross-Entropy Method),减轻采样空间以获得高效率方向采样。

这个算法首先在SO(3)空间中均匀采样N个样例。接着基于预测的动作分数评估采样动作:s(\hat{a})=\widetilde{r}_{dist}(\hat{a}^{dir})·\widetilde{r}_{AoT}(\hat{a}^{dir})。在下一个迭代过程中,算法重新采样与分数相关的候选:p(\hat{a}) \propto e^{T*s(\hat{a})}(∝表示A与B成正比例),=20是一个临时量(我理解因为指数函数是恒大于0的,通过AoT可以筛除掉那些=0或<0的不合理动作方向,从而对那些正确的方向进行重新采样)。添加了随机噪声(添加随机噪声的目的应该是获得与第一次交互存在差异的交互行为),它们被认为是第二次交互的候选。通过这种方法,第二次迭代采样的样本将更多集中在具有“潜力”的区域,使得同样的采样数量下,获得更好的表现。

为了推理动作候选的移动距离\widetilde{r}_{dist}(\hat{a}^{dir}),网络需要考虑物体当前状态和抓取位置,二者被编码在当前的观测o_t​中。当前状态的RGB-D图像作为输入,DistNet输出embedding向量\psi(o_t)。接着DistDecoder将\psi(o_t)和动作a作为输入,输出一个标量作为距离预测\widetilde{r}_{dist}(\hat{a}^{dir})。DistNet是一个卷积神经网络,将输出展开为一个embedding向量。Dist-Decoder是一个全连接神经网络,使用MSE损失L_{dist}进行训练。

\widetilde{r}_{dist}(\hat{a}^{dir})不同,Arrow-of-Time \widetilde{r}_{AoT}(\hat{a}^{dir})的推理基于当前视觉状态和初始视觉状态。在单步交互中,任何动作都会改变物体的状态,使得物体进入一个新的状态。但对于多步交互来说并不是这样的,策略可以移动物体向前向后,而不探索更多新的状态,为了解决这个问题引入了Arrow-of-Time(AoT),用于指示物体究竟是返回了初始状态还是朝向了未来的状态。通过AoT将当前和初始的观察作为输入,输出另外一个embedding向量\phi(o_t,o_0)。该embedding连接动作embedding来推理最终的AoT标签\widetilde{r}_{AoT}(\hat{a}^{dir})。AoT网络结构和Dist的类似,只是输入输出维度有差异。模型使用交叉熵损失训练。L=\lambda L_{dist}+L_{AOT}

3.4. 训练

所有数据来自从头开始的策略训练进行的交互尝试。使用FIFO replay buffer来存储训练数据。为了搜集正例和负例,在一个序列内的方向上应用矛盾的策略用于方向推理(没有特别理解)。在每个序列的前半部分,选择那些具有正AoT的预测进行执行,使物体远离初始状态;在后半部分,执行那些具有负AoT的预测,鼓励物体向回执行。每个epoch搜集16个策略。序列长度一开始是4,在1000 epochs后,每400个epochs增长2,直到到达20为止。

位置模块和方向模块在每个epoch训练8个迭代。对于每一轮位置训练,从replay buffer中采样一个batch(大小=16),其中具有1:1的正负比率。对于方向迭代,一个batch中正、负、不移动数据比率为1:1:1。

3.5. 使用逆AoT进行的以目标为条件的操纵

大部分操纵任务都是都是基于目标的,这就需要能够生成一些策略,使得这些策略能够在给定随机目标状态的情况下,生成朝向这一目标的动作。(注意,需要给定目标状态)。尽管文章策略是在开-关的探索下进行训练,但学习到的策略仍然可以直接在无需额外训练的情况下,直接应用到基于目标的动作生成上。

核心想法就是交换输入时的初始obs和目标状态obs,然后作为策略生成的输入,通过执行逆AoT的动作,策略尝试去将物体移动回“过去”,从而高效地实现目标。如果AoT所有方向的预测都是非负的,则策略停止。

除了选择正确的动作方向,另一个问题是基于目标的操纵需要选择正确的部件进行操纵,因为有时候物体上可能会有很多个可操纵部件(如冰箱有两个门)

参考文献

【计算机图形学】Universal Manipulation Policy Network for Articulated Objects-CSDN博客

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

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

相关文章

利用Python队列生产者消费者模式构建高效爬虫

目录 一、引言 二、生产者消费者模式概述 三、Python中的队列实现 四、生产者消费者模式在爬虫中的应用 五、实例分析 生产者类&#xff08;Producer&#xff09; 消费者类&#xff08;Consumer&#xff09; 主程序 六、总结 一、引言 随着互联网的发展&#xff0c;信…

css使用clip-path裁剪出不规则图形并绑定点击事件

点击图片的红色区域触发事件 点击图片黑色不触发点击事件&#xff0c;代码演示效果如下&#xff1a; 代码演示效果 1.png&#xff08;尺寸 200*470&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…

2025第十届美陈展

展位又遭疯抢&#xff01;2025第十届美陈展释放“无界之美” 美是全球通用的语言&#xff0c;人类对美的追求始终如一&#xff0c;大众审美在经历了时代的变迁后开始趋同&#xff0c;东方文明深处的美学经济开始崛起。 在如今商业迈入存量阶段&#xff0c;以品牌为突破口打造…

抽象工厂模式(AbstractFactoryPattern)

文章目录 1.抽象工厂模式定义2.UML类图3.抽象工厂模式具体实现工厂模式实现单一产品族抽象工厂实现多产品族产品类工厂类使用 4.抽象工厂模式优缺点 1.抽象工厂模式定义 提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。 工厂方法模式是单一产…

JavaScript-运算符

算术运算符 返回结果为数字型的运算符 加法运算符 加法运算符&#xff08;&#xff09;是一个二元运算符&#xff0c;可以对两个数字型的操作数进行相加运算&#xff0c;返回值是两个操作数的和 减法运算符 减法运算符&#xff08;-&#xff09;是一个二元运算符&#xff0c;可…

banner2.0自定义轮播布局

说明&#xff1a;最近碰到一个需求&#xff0c;让新闻列表实现轮播图的效果&#xff0c;也就是轮播新闻&#xff0c;然后样式必须按照ui设计的样式来弄&#xff0c;之前传统的banner&#xff0c;都是只轮播图片&#xff0c;没想到&#xff0c;这次居然要轮播新闻&#xff0c; 网…

【深度学习】YOLOv8训练,交通灯目标检测

文章目录 一、数据处理二、环境三、训练 一、数据处理 import traceback import xml.etree.ElementTree as ET import os import shutil import random import cv2 import numpy as np from tqdm import tqdmdef convert_annotation_to_list(xml_filepath, size_width, size_he…

java+ vue.js+uniapp一款基于云计算技术的企业级生产管理系统,云MES源码 MES系统如何与ERP系统集成?

java vue.jsuniapp一款基于云计算技术的企业级生产管理系统&#xff0c;云MES源码&#xff0c;MES系统如何与ERP系统集成&#xff1f; MES系统&#xff08;制造执行系统&#xff09;与ERP系统&#xff08;企业资源规划系统&#xff09;的集成可以通过多种方式实现&#xff0c;这…

【git】开发提交规范(feat、fix、perf)

这段时间收到的需求很多&#xff0c;可能是临近两周一次的大版本灰度上线&#xff0c;这次产生了一个关于git的思考&#xff0c;就是各个版本之间怎么管理的问题&#xff0c;这里做出我自己的一些方法。 首先&#xff0c;既然已经明确了remote分支中的release分支为主分支&…

Java中transient关键字

transient介绍 在Java中&#xff0c;transient是一个关键字&#xff0c;用于声明一个字段在序列化过程中应该被忽略。当一个对象被序列化时&#xff0c;它的状态&#xff08;即其字段的值&#xff09;通常会被保存到字节流中&#xff0c;以便稍后可以反序列化恢复对象的状态。…

如何使用Matlab进行三角剖分(自定义函数实现delaunayTriangulation 使用Bowyer-Watson 算法)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、Delaunay三角形 二、使用步骤 1.Bowyer-Watson算法 2.算法步骤 三、动画演示 四、核心代码 五、对比matlab自带函数和我们的算法&#xff1a; 总结 前…

巨某量引擎后台登录实战笔记 | Playwright自动化框架

前言 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 入正题看看滑块是怎么个事…

CasaOS系统玩客云安装内网穿透工具实现无公网IP远程访问

文章目录 前言1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 前言 2月底&#xff0c;玩客云APP正式停止运营&#xff0c;不再提供上传、云添加功能。3月初&#xff0c;有用户进行了测试&#xff0c;局域网内的各种服务还能继续使用&am…

Ai自动贴图直播项目的趋势,智享自动直播GMV增加工具

在当今社会&#xff0c;直播行业正在悄然地改变着人们的生活方式。无论是在闲暇时光中放松身心&#xff0c;还是在临睡前享受休闲娱乐&#xff0c;观众们越来越习惯于通过刷短视频或者观看直播来消遣自己。根据统计数据显示&#xff0c;到2023年全球将有超过10.74亿网民&#x…

Android 12系统源码_多窗口模式(二)系统实现分屏的功能原理

前言 上一篇我们具体分析了系统处于多窗口模式下&#xff0c;Android应用和多窗口模式相关方法的调用顺序&#xff0c;对于应用如何适配多窗口模式有了一个初步的认识&#xff0c;本篇文章我们将会结合Android12系统源码&#xff0c;具体来梳理一下系统是如何触发多窗口分屏模…

2024全新爆款好物推荐,618必买数码好物清单吐血整理!

​距离618购物狂欢节越来越近了&#xff0c;有很多日常价格不菲的产品在这次活动期间都会进行促销活动&#xff0c;尤其是数码类产品&#xff0c;加上618的优惠活动更有吸引力了。不过面对大促的热潮我们消费者在选购商品的同时还是要擦亮眼睛&#xff0c;避免买到质量不好的商…

[Redis]基本全局命令

Redis存储方式介绍 在 Redis 中数据是以键值对的凡事存储的&#xff0c;键&#xff08;Key&#xff09;和值&#xff08;Value&#xff09;是基本的数据存储单元。以下是对 Redis 键值对的详细讲解&#xff1a; 键&#xff08;Key&#xff09;&#xff1a; 类型&#xff1a;…

英伟达:AI之火还在燃烧!

昨晚&#xff0c;全球市场屏息以待的一家公司财报终于发布了&#xff0c;没有超出大家预期的是&#xff0c;他还是超预期了。 大家当然都知道我们要说的是——英伟达&#xff01; 如今&#xff0c;全球大模型之Z激Z正酣&#xff0c;AI芯片装备竞赛需求猛烈&#xff0c;作为AI…

OPPO Reno12 系列正式发布,仅2699元起售

5月23日&#xff0c;OPPO发布科技潮品 Reno12 系列&#xff0c;包含 Reno12 与 Reno12 Pro&#xff0c;以超美小直屏设计&#xff0c;以及行业首发的新科技&#xff0c;引领全新潮流方向。 据「TMT星球」了解&#xff0c;首次亮相的全新配色 Reno12 「千禧银」与Reno12 Pro的「…

spring常用知识点

1、拦截器和过滤器区别 1. 原理不同&#xff1a; 拦截器是基于java的反射机制&#xff0c;而过滤器采用责任链模式是基于函数回调的。 2. 使用范围不同&#xff1a; 过滤器Filter的使用依赖于Tomcat等容器&#xff0c;导致它只能在web程序中使用 拦截器是一个Sping组件&am…