当前位置: 首页 > news >正文

从DexMV、VideoDex、MimicPlay到SeeDo:从人类视频中学习:机器人的主流训练方法之一

前言

在此文《UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读)》的1.1节开头有提到

机器人收集训练数据一般有多种方式,比如来自人类视频的视觉演示

  1. 有的工作致力于从视频数据——例如YouTube视频中进行策略学习
    即最常见的方法是从各种被动的人类演示视频中学习,利用被动的人类演示,先前的工作学习了任务成本函数 [37, 8, 1, 21]、可供性函(affordance function) [2]、密集物体描述符[40, 24, 39]、动作对应 [33, 28] 和预训练的视觉表示 [23-R3m: A universal visual representation for robot manipulation,48-Masked visual pre-training for motor control]
  2. 然而,这种方法遇到了一些挑战
    首先,大多数视频演示缺乏明确的动作信息(这对于学习可推广的策略至关重要)
    为了从被动的人类视频中推断动作数据,先前的工作采用了手部姿态检测器 [44-Mimicplay: Long-horizon imitation learning by watching human play, 1-Human-to-robot imitation in the wild, 38-Videodex: Learning dexterity from internet videos, 28- Dexmv: Imitation learning for dexterous manipulation from human videos],或将人类视频与域内遥操作机器人数据结合以预测动作 [33, 20, 34, 28]

    其次,人类和机器人之间明显的embodiment(物理本体,有的翻译为体现)差距阻碍了动作转移(the evident embodiment gap between humans and robots hinders action transfer)
    弥合这一差距的努力包括通过手势重定向学习人类到机器人的动作映射 [38-Videodex: Learning dexterity from internet videos, 28-Dexmv: Imitation learning for dexterous manipulation from human videos] ,或提取与体现无关的关键点 [即embodiment-agnostic keypoint,49]
    尽管有这些尝试,固有的embodiment差异仍然使得从人类视频到物理机器人的策略转移变得复杂

考虑到「从人类视频中学习」早已成为机器人的主流训练方法之一,故打算系统阐述以下这个课题,不然很多朋友可能只是理解其字面意思,但到底具体怎么个模仿学习,则不一定知其里,而通过本文系统的阐述,可以让大家更深刻的理解模仿学习背后更深的细节

二方面,上面不是提到了从人类视频学习中的诸多问题么,那我们也看看该领域的最新进展——比如纽约大学的SeeDo到底有没解决这些问题呢?

故便有了本文,本文将注意解读以下这几篇paper

  • Learning by Watching: Physical Imitation of Manipulation Skills from Human Videos,18 Jan 2021
  • DexMV,12 Aug 2021
  • DexVIP,1 Feb 2022
  • Robotic Telekinesis: Learning a Robotic Hand Imitator by Watching Humans on YouTube,21 Feb 2022
  • R3M: Representations for Robots from Real-World Videos,23 Mar 2022
  • VideoDex,8 Dec 2022
  • MimicPlay,24 Feb 2023 
  • VLM See, Robot Do: Human Demo Video to Robot Action Plan via Vision Language Model,11 Oct 2024

第一部分 从Learning by Watching、DexMV到DexVIP

1.1 Learning by Watching: Physical Imitation of Manipulation Skills from Human Videos

来自多伦多大学、天津大学、NVIDIA的研究者(Haoyu Xiong, Quanzhou Li, Yun-Chun Chen, Homanga Bharadhwaj, Samarth Sinha, Animesh Garg)发布了此篇论文:《Learning by Watching: Physical Imitation of Manipulation Skills from Human Videos》

为了从人类视频中实现物理模仿,作者将问题分解为一系列任务:

  1. 人类到机器人的翻译
  2. 基于无监督关键点的表示学习
  3. 以及3)使用强化学习进行物理模仿

在此,回顾前两个任务,因为他们的方法是在现有算法基础上构建的

1.1.1 无监督的图像到图像翻译到无监督关键点检测

对于无监督的图像到图像翻译问题

类似于现有的方法 [9], [10],将人类到机器人翻译视为无监督的图像到图像翻译问题

  1. 具体而言,目标是学习一个模型,将图像从源域X(例如,人类域)翻译到目标域Y(例如,机器人域),而无需配对的训练数据 [12],[26], [29], [30]
  2. 在作者的方法中,他们采用MUNIT [30] 作为图像到图像翻译网络来实现人类到机器人的翻译
    MUNIT通过假设图像表示可以被解构为一个域不变的内容编码(由内容编码器E^{c}编码)和一个域特定的风格编码(由风格编码器E^{s}编码)来学习在两个域之间翻译图像

    内容编码器E_{X}^{c}E_{Y}^{c}在两个域中是共享的,而两个域的风格编码器E_{X}^{S}E_{Y}^{s}则不共享权重
    为了将图像从一个域翻译到另一个域,作者将其内容编码与从另一个域采样的风格编码结合
    且这些翻译/转换是通过学习生成:与目标域中的图像无法区分的图像来实现的(The translations are learned to generate images that are indistinguishable fromimages in the translated domain)

故,给定来自源域X的图像x和来自目标域Y的图像y,在源域中定义对抗性损失\mathcal{L}_{\mathrm{GAN}}^{x}
\mathcal{L}_{\mathrm{GAN}}^{x}=\mathbb{E}\left[\log D_{X}(x)+\log \left(1-D_{X}\left(G_{X}\left(c_{y}, s_{x}\right)\right)\right)\right]

其中

  • c_{y}=E_{Y}^{c}(y)是图像y的内容编码
  • s_x = E_{X}^{s}(x)是图像x的风格编码
  • G_X是一个生成器,其接收内容编码c和风格编码s作为输入,并生成与源域中分布相似的图像
  • D_X是一个判别器,旨在区分由G_X生成的翻译图像和源域中的图像

此外,目标域中对抗损失\mathcal{L}_{\mathrm{GAN}}^{y}也可以类似地定义

除了对抗损失外,MUNIT还对图像、内容和风格编码应用重构损失,以规范模型学习

  • 对于源域,图像重构损失\mathcal{L}_{\text {rec }}^{x}定义为
    \mathcal{L}_{\text {rec }}^{x}=\mathbb{E}\left[\left\|G_{X}\left(c_{x}, s_{x}\right)-x\right\|\right]
  • 内容重建损失\mathcal{L}_{\mathrm{rec}}^{C_{x}}定义为
    \mathcal{L}_{\mathrm{rec}}^{c_{x}}=\mathbb{E}\left[\left\|E_{Y}^{c}\left(G_{Y}\left(c_{x}, s_{y}\right)\right)-c_{x}\right\|\right]
  • 风格重建损失\mathcal{L}_{\mathrm{rec}}^{s_{x}}定义为
    \mathcal{L}_{\text {rec }}^{s_{x}}=\mathbb{E}\left[\left\|E_{X}^{s}\left(G_{X}\left(c_{y}, s_{x}\right)\right)-s_{x}\right\|\right]

目标域中的图像重建损失\mathcal{L}_{\mathrm{rec}}^{y}、内容重建损失\mathcal{L}_{\mathrm{rec}}^{c_{y}}和风格重建损失\mathcal{L}_{\mathrm{rec}}^{s_{y}}可以类似地推导出来

最终,训练MUNIT的总损失LMUNIT为

\begin{aligned} \mathcal{L}_{\text {MUNIT }} & =\mathcal{L}_{\mathrm{GAN}}^{x}+\mathcal{L}_{\text {GAN }}^{y}+\lambda_{\text {image }}\left(\mathcal{L}_{\text {rec }}^{x}+\mathcal{L}_{\text {rec }}^{y}\right) \\ & +\lambda_{\text {content }}\left(\mathcal{L}_{\text {rec }}^{c_{x}}+\mathcal{L}_{\text {rec }}^{c_{y}}\right)+\lambda_{\text {style }}\left(\mathcal{L}_{\text {rec }}^{s_{x}}+\mathcal{L}_{\text {rec }}^{s_{y}}\right) \end{aligned}

其中\lambda_{\text {image }}\lambda_{\text {content }}\lambda_{\text {style }}是用于控制各自损失函数相对重要性的超参数

对于无监督关键点检测

为了执行控制任务,现有方法通常依赖于基于图像观测的状态表示学习[10], [45]–[48]

  • 然而,图像到图像翻译模型生成的图像观测通常只捕捉宏观特征,而忽略了对下游任务至关重要的显著区域中的细节。通过使用特征编码器对翻译后的图像观测进行编码来推导状态表示会导致次优性能
  • 另一方面,现有方法也可能受到图像到图像翻译模型生成的视觉伪影的影响

与这些方法相比,作者利用Transporter[41]在无监督的方式下检测每个翻译后视频帧中的关键点。检测到的关键点形成一种结构化表示,捕捉机器人手臂的姿态和交互物体的位置,为下游控制任务提供语义上有意义的信息,同时避免由于图像到图像翻译不完美而导致的视觉伪影的负面影响

为了实现无监督关键点检测的学习,Transporter利用物体在一对视频帧之间的运动,通过在检测到的关键点位置传输特征,将一个视频帧转换为另一个视频帧

  1. 比如,给定两个视频帧 xy,Transporter首先使用特征编码器 \Phi 提取两个视频帧的特征图\Phi(x)\Phi(y),并使用关键点检测器 \Psi 检测两个视频帧的 K 个二维关键点位置\Psi(x)\Psi(y)
  2. 然后,Transporter 通过在\Psi(x)\Psi(y)中抑制 x 在每个关键点位置附近的特征图,并将 y\Psi(y) 中每个关键点位置附近的特征图进行融合,来合成特征图\hat{\Phi}(x, y)Transporter then synthesizes the feature map Φ(x, y) by suppressing the feature map of x around eachkeypoint location in Ψ(x) and Ψ(y) and incorporating thefeature map of y around each keypoint location in Ψ(y)
    \hat{\Phi}(x, y)=\left(1-\mathcal{H}_{\Psi(x)}\right) \cdot\left(1-\mathcal{H}_{\Psi(y)}\right) \cdot \Phi(x)+\mathcal{H}_{\Psi(y)} \cdot \Phi(y)

    其中\mathcal{H}_{\Psi(\cdot)}是一个高斯热图,其峰值集中在\Psi(\cdot)中的每个关键点位置
  3. 接下来,传输的特征\hat{\Phi}(x, y)被传递到一个精细化网络R中,以重建视频帧y
    然后定义用于训练Transporter的损失\mathcal{L}_{\text {transporter }}r为

\mathcal{L}_{\text {transporter }}=\mathbb{E}[\|R(\hat{\Phi}(x, y))-y\|]

在下一节中,作者利用Transporter模型来检测每个翻译后的视频帧的关键点。检测到的关键点随后被用作定义奖励函数的结构化表示,并作为策略网络的输入,以预测用于与环境交互的动作

1.1.2 LbW:从人类视频中学习的改进方法

考虑从人类视频中学习机器人操作技能的物理模仿任务。在这种情况下,作者假设可以访问一个单一的人类演示视频V_{X}=\left\{x_{i}^{E}\right\}_{i=1}^{N},长度为N,展示了一个人类执行特定任务(例如,推一个块)的过程,作者希望机器人从中学习,其中x_{i}^{E} \in \mathbb{R}^{H \times W \times 3}H \times Wx_{i}^{E}的空间大小

作者注意到,人类的动作在他们的设定中并没有提供。故作者的目标是开发一种学习算法,使机器人能够模仿人类演示视频V_X中展示的人类行为

为实现这一目标,作者提出了LbW,一个由三个组件组成的框架:

  1. 图像到图像的翻译网络T「来自MUNIT [30]」
  2. 关键点检测器\psi「来自Transporter的关键点检测器[41]」
  3. 策略网络\pi

具体如下图所示

给定一个人类演示视频V_{X}和时间t的当前观测O_{t} \in \mathbb{R}^{H \times W \times 3}

  1. 首先对人类演示视频V_{X}中的每一帧x_{i}^{E}应用图像到图像的翻译网络T,并将x_{i}^{E}翻译为机器人演示视频帧v_{i}^{E} \in \mathbb{R}^{H \times W \times 3}
  2. 接下来,关键点检测器\Psi将每个翻译后的机器人视频帧v_{i}^{E}作为输入,并提取基于关键点的表示
    z_{i}^{E}=\Psi\left(v_{i}^{E}\right) \in \mathbb{R}^{K \times 2}
    其中K表示关键点的数量

    同样,也对当前观测O_{t}应用关键点检测器\Psi,以提取基于关键点的表示z_{t}=\Psi\left(O_{t}\right) \in \mathbb{R}^{K \times 2}
  3. 为了计算物理模仿的奖励,作者定义了一个距离度量d,用于计算当前观测O_{t}的基于关键点的表示z_t与每个翻译后的机器人视频帧v_{i}^{E}的基于关键点的表示z_{i}^{E}之间的距离
    we define adistance metric d that computes the distances between the keypoint-based representation zt of the current observationOt and each of the keypoint-based representations zEi of the translated robot video frames vE
  4. 最后,策略网络以当前观测O的关键点表示z_t作为输入,预测一个动作a_{t}=\pi\left(z_{t}\right),该动作用于指导机器人与环境交互

// 待更

1.2 DexMV

21年8月份,来自的研究者提出了DexMV,其对应的论文为:《DexMV: Imitation Learning for Dexterous Manipulation from Human Videos》

1.3 DexVIP


http://www.mrgr.cn/news/54957.html

相关文章:

  • asp.net core mvc发布时输出视图文件Views
  • 基于微博评论的自然语言处理情感分析
  • SQL 自学:事务处理的COMMIT 和 ROLLBACK 语句的运用
  • python绝对值怎么表示
  • open3d 读取 pcd
  • 【Python网络编程】学习Socket编程,打造网络应用!
  • 网盘直链下载神器NDM
  • Springboot指定扫描路径
  • NTA-IoU指标提升超42%,北京大学提出首个使用世界模型提升自动驾驶场景重建质量DriveDreamer4D
  • ESP32-C3 入门笔记04:gpio_key 按键 (ESP-IDF + VSCode)
  • 深入拆解TomcatJetty(二)
  • 深入理解Android WebView的加载流程与事件回调
  • 【Flutter】页面布局:弹性布局(Flex)
  • MySQL【知识改变命运】10
  • 【实习分享】三无选手实习投递经验简贴
  • 数据结构单向链表的插入和删除(一)
  • 查找与排序-交换排序
  • STM32外设应用技术博文:基于UART的温度传感器数据采集
  • CSS进阶-布局(三)
  • 深入vue2[更新中]
  • 【JavaEE初阶】深入理解网络编程—使用UDP协议API实现回显服务器
  • [0xGame 2024] week2
  • Maple :一款强大的计算软件,广泛应用于数学、工程、物理和其他科学领域
  • OpneCV与dlib-换脸
  • 搭建LeNet-5神经网络,并搭建自己的图像分类训练和测试的模板,模板通用!!!均有详细注释。
  • SOD-YOLOv8 - 增强YOLOv8以在交通场景中检测小目标