【计算机图形学】Universal Manipulation Policy Network for Articulated Objects

本文主要是介绍【计算机图形学】Universal Manipulation Policy Network for Articulated Objects,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对Universal Manipulation Policy Network for Articulated Objects的简单理解

1. 做了什么事

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

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

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

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

2. 方法

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

在这里插入图片描述

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

  1. 选择物体上正确的位置进行交互(即,与马桶盖交互而不是基);

  2. 选择正确的动作方向(即,拉起来,而不是向下推);

  3. 在接下来的动作中选择一致的动作,以探索新的状态(即,保持向上拉盖子,而不是上下移动盖子);

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

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

2.1 问题定义

输入是处于当前状态 o 0 o_0 o0的一张RGBD图像 o 0 ∈ R W × H × 4 o_0∈\R^{W×H×4} o0RW×H×4,智能体通过策略 π \pi π生成每一步的动作 a t a_t at π ( o t , o 0 ) → a t \pi(o_t,o_0)→a_t π(ot,o0)at。该动作是在 S E ( 3 ) SE(3) SE(3)空间中表示的,参数化为end-effector位置(吸式夹持器)和移动方向: a t = ( a t p o s , a t d i r ) a_t=(a^{pos}_t,a^{dir}_t) at=(atpos,atdir) a t p o s ∈ R 3 a^{pos}_t∈\R^3 atposR3是一个3D坐标, a t d i r ∈ R 3 , ( ∣ ∣ a t d i r ∣ ∣ = 1 ) a^{dir}_t∈\R^3,(||a^{dir}_t||=1) atdirR3,(∣∣atdir∣∣=1)是一个单位向量,用于指示end-effector的移动方向。

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

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

2.2 位置推理

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

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

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

2.3 方向推理

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

在这里插入图片描述

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

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

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

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

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

2.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。

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

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

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

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

在这里插入图片描述

这篇关于【计算机图形学】Universal Manipulation Policy Network for Articulated Objects的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/845572

相关文章

《计算机英语》Unit 1 Computer Overview 计算机概述

期末试卷组成 1、选择20道 2、判断20道 3、词汇翻译(单词+词组,参照课后习题) 4、翻译2道(一道原题,参照作业) SectionA About Computer 关于计算机 algorithm          n.  算法  operate          v.  操作  digital           adj. 数字的  integrated circuit

计算机组成原理——RECORD

第一章 概论 1.固件  将部分操作系统固化——即把软件永恒存于只读存储器中。 2.多级层次结构的计算机系统 3.冯*诺依曼计算机的特点 4.现代计算机的组成:CPU、I/O设备、主存储器(MM) 5.细化的计算机组成框图 6.指令操作的三个阶段:取指、分析、执行 第二章 计算机的发展 1.第一台由电子管组成的电子数字积分和计算机(ENIAC) 第三章 系统总线

计算机Java项目|基于SpringBoot的网上摄影工作室

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路  关注作者有好处 文末获取源码  项目编号:L-BS-QBBSSPRINGBOOT

【计算机组成原理】部分题目汇总

计算机组成原理 部分题目汇总 一. 简答题 RISC和CICS 简要说明,比较异同 RISC(精简指令集)注重简单快速的指令执行,使用少量通用寄存器,固定长度指令,优化硬件性能,依赖软件(如编译器)来提升效率。 CISC(复杂指令集)包含多样复杂的指令,能一条指令完成多步操作,采用变长指令,减少指令数但可能增加执行时间,倾向于硬件直接支持复杂功能减轻软件负担。 两者均追求高性能,但RISC

安徽理工大学2计算机考研情况,招收计算机专业的学院和联培都不少!

安徽理工大学(Anhui University of Science and Technology),位于淮南市,是安徽省和应急管理部共建高校,安徽省高等教育振兴计划“地方特色高水平大学”建设高校,安徽省高峰学科建设计划特别支持高校,国家“中西部高校基础能力建设工程”支持高校,入选教育部“卓越工程师教育培养计划”实施高校、中国人民解放军后备军官培养选拔基地、全国首批深化创新创业教育改革示范高校、首

关于修改计算机的处理器数和最大内存数的问题

问题描述: 刚开始本来是想让计算机的运行速度运行的快点,于是在网上搜索如何让计算机的运行速度更快,找到了一种关于修改计算机内存数和计算机的处理核数可以让计算机运行的更快。 遇到问题: 当我通过命令msconfig →引导→高级选项→勾选了处理器数和最大内存数,然后重启,结构整个计算机都卡的要死,于是记录下来。网上的答案有时候真的是很不负责任,也有可能是自己技术不到位。 结果:取消处理器和内

兰州理工大学24计算机考研情况,好多专业都接受调剂,只有计算机专硕不接收调剂,复试线为283分!

兰州理工大学(Lanzhou University of Technology),位于甘肃省兰州市,是甘肃省人民政府、教育部、国家国防科技工业局共建高校,甘肃省高水平大学和“一流学科”建设高校;入选国家“中西部高校基础能力建设工程”、教育部“卓越工程师计划”、“111计划”、新工科研究与实践项目、国家大学生创新性实验计划,是国家国防教育特色学校、全国毕业生就业典型经验高校、中国政府奖

计组_计算机概要与设计

2024.06.23~2024.06.27:计算机组成原理学习笔记 CH1 计算机概要与设计 1.1 计算机的分类1.1.1 传统按照应用分类1.1.2 后PC时代1.1.3 存储容量 1.2 八大伟大设计思想1.2.1 两个设计原则1.2.2 四个提高性能1.2.3 存储器层次1.2.4 冗余提高可靠性 1.3 软硬件基础1.3.1 编程语言分类1.3.2 硬件基础(1) 冯诺依曼

【计算机体系结构】

第一章 计算机体系结构的基本概念 知识点 1.冯诺依曼描述的计算机的四个部分  2.指令驱动  3.存储程序计算机在体系结构上的主要特点 4.计算机体系结构的三个方面  5.计算机组成  6.计算机系统的多层次结构 7.翻译和解释    8.一种指令集结构可以有多种组成,同样一种组成可以有多种物理实现。系列机就是指在一个厂家生产的具有相同的指令集

计算机组成入门知识

前言👀~ 数据库的知识点先暂且分享到这,接下来开始接触计算机组成以及计算机网络相关的知识点,这一章先介绍一些基础的计算机组成知识 一台计算机如何组成的? 存储器 CPU cpu的工作流程 主频 如何衡量CPU好坏呢? 指令 操作系统 操作系统功能 操作系统"内核"  如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,如果内容有什么问题的话,欢迎各位