首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

基于人类视频的模仿学习:从DexMV、MimicPlay、SeeDo(VLM生成规划和代码)到人形OKAMI、Harmon(重定向中VLM校正动作)

  • 25-03-02 11:20
  • 4476
  • 7228
blog.csdn.net

前言

在此文《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到底有没解决这些问题呢?(当然,你也可以直接看本文的第三部分 SeeDo)

三方面,过程中又追踪到了结合GPT4V能力的两个人形机器人

故便有了本文,本文将逐一解读以下这几篇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
  • 人形机器人OKAMI: Teaching Humanoid Robots Manipulation Skills through Single Video Imitation,15 Oct 2024
  • 人形机器人HARMON
    HARMON: Whole-Body Motion Generation of Humanoid Robots from Language Descriptions

第一部分 从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. 人类到机器人的翻译,即human to robot translation
  2. 基于无监督关键点的表示学习
    unsupervised keypoint-based representationlearning
  3. 以及使用强化学习进行物理模仿,即physical imitation with RL

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

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

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

类似于现有的方法 [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 }}是用于控制各自损失函数相对重要性的超参数

对于无监督关键点检测——Transporter

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

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

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

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

  1. 比如,给定两个视频帧 x 和 y,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 W是x_{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.1.3 深入LbW细节:使用关键点的无监督域转移及使用强化学习进行物理模仿

首先,使用关键点的无监督域转移

为了从人类视频中实现物理模仿,作者开发了一个感知模块,该模块由一个用于人到机器人翻译的MUNIT模型和一个用于关键点检测的Transporter网络组成,如下图所示

为了训练MUNIT模型,我们首先为源域(即人类域)和目标域(即机器人域)收集训练数据

  • 源域包含我们希望机器人学习的人类演示视频V_{X}
    为了增加源域训练数据的多样性以促进MUNIT模型的训练,作者遵循AVID [10]的方法,通过让人类在桌子上随机移动手而不执行任务来收集一些随机数据
  • 至于目标域训练数据,作者收集了一些通过让机器人从动作空间中随机采样一系列动作生成的机器人视频
    因此,收集机器人视频不需要人类的专业知识和努力

利用来自源域和目标域的训练数据,能够使用之前「1.1.1节第一部分中无监督的图像到图像翻译问题」这个公式

\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}

中的总损失LMUNIT并按照该1.1.1节第一部分中描述的训练MUNIT模型以实现人到机器人的翻译

在训练MUNIT模型之后,能够通过结合每个人人演示视频帧的内容代码——由内容编码器E^{c}编码,和从机器人域随机采样的风格代码——由风格编码器E^{s}编码,将人类演示视频V_{X}=\left\{x_{i}^{E}\right\}_{i=1}^{N}逐帧翻译为机器人演示视频\left\{v_{i}^{E}\right\}_{i=1}^{N}

正如在1.1.1节第二部分 无监督关键点检测中提到的,作者旨在以无监督的方式从翻译的机器人视频中学习基于关键点的表示

为实现这一目标,作者利用Transporter在每个翻译的机器人视频帧中以无监督的方式检测关键点,因为没有可用的关键点标注作为真实值

如下图所示

按照1.1.1节第二部分 无监督关键点检测所述的内容

  1. Transporter模型将翻译的机器人演示视频帧v和通过应用随机策略收集的机器人视频帧y作为输入,分别提取它们的特征并检测关键点位置
  2. 然后,Transporter模型重建翻译的机器人演示视频帧
    为了训练Transporter模型,作者优化总损失\mathcal{L}_{\text {transporter }}
    \mathcal{L}_{\text {transporter }}=\mathbb{E}[\|R(\hat{\Phi}(x, y))-y\|]

    一旦Transporter模型的训练收敛,就可以使用Transporter模型的关键点检测器Ψ来为翻译的机器人演示视频中的每一帧v_{i}^{E}提取基于关键点的表示z_{i}^{E}=\Psi\left(v_{i}^{E}\right),以形成关键点轨迹\left\{z_{i}^{E}\right\}_{i=1}^{N},并为当前观察O_{t}提取基于关键点的表示z_{t}=\Psi\left(O_{t}\right)

    翻译的机器人演示视频\left\{v_{i}^{E}\right\}_{i=1}^{N}的关键点轨迹\left\{z_{i}^{E}\right\}_{i=1}^{N}和当前观察O_{t}的基于关键点的表示z_{t}为机器人操作任务提供语义上有意义的信息
    然后,我们使用它们计算奖励r_{t},并使用当前观察O_{t}的基于关键点的表示z_{t}预测动作a_t

其次,使用强化学习进行物理模仿

为了控制机器人,作者使用强化学习从基于图像的观测中学习一个策略,以最大化学习到的奖励函数的累积值。在他们的方法中,他们将策略学习阶段与基于关键点的表示学习阶段分离

给定转换后的机器人演示视频\left\{v_{i}^{E}\right\}_{i=1}^{N}的关键点轨迹\left\{z_{i}^{E}\right\}_{i=1}^{N},和当前观察 O_t ——基于关键点的表示 z_{t},他们的策略网络 π 输出动作a_{t}=\pi\left(z_{t}\right),该动作将在环境中执行,以获得下一步的观察 O_{t+1}「Given the keypoints trajectory {zEi }Ni=1 of the translated robot demonstration video {vEi }Ni=1 and the keypoint-based representation zt of the currentobservation Ot, our policy network π outputs an actionat = π(zt) which is executed in the environment to obtainthe next observation Ot+1」

为了实现物理模仿,他们的目标是最小化代理的关键点轨迹与翻译后的机器人演示视频的关键点轨迹之间的距离「To achieve physical imitation, weaim to minimize the distance between the keypoints trajectory of the agent and that of the translated robot demonstration video」

  1. 具体来说,他们将奖励r_{t}定义为
    r_{t}=d\left(z_{t}, z_{t+1},\left\{z_{i}^{E}\right\}_{i=1}^{N}\right)=\lambda_{r_{1}} \cdot r_{1}(t)+\lambda_{r_{2}} \cdot r_{2}(t)
    其中\lambda_{r_{1}}和\lambda_{r_{2}}是平衡两个术语重要性的超参数,上述目标施加在r_{1}(t)和r_{2}(t)上,其定义如下方程式
    r_{1}(t)=-\min \left\|z_{t}-z_{p}^{E}\right\|
    r_{2}(t)=-\min \left(\left\|\left(z_{t+1}-z_{t}\right)-\left(z_{q+1}^{E}-z_{q}^{E}\right)\right\|\right)

    其中1 \leq p \leq N-1,1 \leq q \leq N-1,r_{1}(t)旨在最小化:当前观测O_{t}——基于关键点的表示z_t,与翻译后的机器人演示视频\left\{v_{i}^{E}\right\}_{i=1}^{N}中的关键点轨迹\left\{z_{i}^{E}\right\}_{i=1}^{N}中最相似(最近)的关键点表示z_{p}^{E}之间的距离「r1(t) aims to minimizethe distance between the keypoint-based representation zt of the current observation Ot and the most similar (closest)keypoint-based representation zEp in the keypoints trajectory{zEi }Ni=1 of the translated robot demonstration video {vEi }Ni=1」,而r_{2}(t)是r_{1}(t)的一阶差分方程

    作者将元组\left(z_{t}, a_{t}, z_{t+1}, r_{t}\right)添加到重放缓冲区中
    然后,策略网络π原则上可以使用任何RL算法进行训练。在作者的实验中,他们使用Soft-Actor Critic (SAC) [49]作为策略学习的RL算法

// 待更

1.2 DexMV

1.2.1 DexMV的三大构成:计算机视觉系统、仿真系统、演示翻译模块

21年8月份,来自UCSD、La Jolla 92093的研究者(Yuzhe Qin, Yueh-Hua Wu, Shaowei Liu, Hanwen Jiang,Ruihan Yang, Yang Fu, and Xiaolong Wang)提出了Dexterous Manipulation from Videos,简称DexMV,其对应的论文为:《DexMV: Imitation Learning for Dexterous Manipulation from Human Videos》

具体而言

  1. 首先,DexMV从录制的视频中提取3D手-物体姿态(上图第二行)。与之前使用2-DoF夹持器的模仿学习研究[92,81]不同,他们需要人类视频来指导30-DoF机器人手在3D空间中移动每根手指。解析3D结构提供了关键且必要的信息
  2. 其次,他们流程中的一个重要贡献是一个新颖的演示翻译方法,它连接了计算机视觉系统和仿真系统
    他们提出了一种基于优化的方法,将3D人手轨迹转换为机器人手的演示

    具体来说,创新体现在两个步骤中:
      a)手部运动重定向方法以获得机器人手部状态
      b)机器人动作估计以获取学习所需的动作
  3. 第三,给定机器人演示,他们在仿真任务中进行模仿学习,且研究并基准测试了通过仅状态[64]和状态-动作[32,66]演示来增强RL目标的算法

总之,DexMV平台包含

  1. 计算机视觉系统(黄色),作者收集人类操作视频
    这些视频涉及操作各种真实物体。在该系统中,构建了一个立方框架(35英寸³),并在顶部前方和顶部左侧安装了两个RealSense D435相机(RGBD相机)

    在数据收集过程中,人类将在框架内执行操作任务,例如重新定位糖盒。这些操作视频将通过两个相机记录(前视图和侧视图)
  2. 演示翻译模块(绿色)
    从视频中应用3D手-物体姿态估计,随后进行演示翻译以生成机器人演示,然后用于模仿学习
  3. 仿真系统(蓝色),作者为机器人手设计相同的任务
    该仿真系统基于MuJoCo [85]与Adroit Hand[43]构建。作者设计了多个与人类演示对齐的灵巧操作任务。如上图底部所示,作者通过将收集到的(机器人)演示与强化学习相结合来进行模仿学习。一旦策略经过训练,它可以在相同任务下测试不同的目标和物体配置

1.2.2 姿态估计:物体姿态估计、手势估计

在物体姿态估计上

使用6-DoF姿态来表示物体的位置和方向,其中包含平移T \in \mathbf{R}^{3}和旋转R \in \mathbf{S O}(\mathbf{3})。对于视频中的每一帧t,作者使用在YCB数据集[15]上训练的PVN3D[30]模型来检测物体并估计6-DoF姿态

  1. 通过将RGB图像和点云作为输入,模型首先估计实例分割掩码
    By taking both the RGB image andthe point clouds as inputs, the model first estimates the instance segmentation mask
  2. 然后通过对分割的点云进行密集投票,模型随后预测物体关键点的3D位置
    With dense voting on the segmented point clouds, the model then predictsthe 3D location of object key points
  3. 最后,通过最小化PnP匹配误差来优化6-DoF物体姿态
    The 6-DoF object pose is optimized byminimizing the PnP matching error

在手势估计上

作者使用MANO模型[67]来表示手部,该模型包括手部姿态参数\theta_{t},用于表示15个关节的3D旋转和根部全局位置r_t,以及每帧的形状参数\beta_{t},可以使用手部运动学函数j_{t}^{3 d}=\mathbf{J}\left(\theta_{t}, \beta_{t}, r_{t}\right)计算3D手部关节

给定一个视频,使用现成的皮肤分割[41]和手部检测[75]模型来获取手部掩码M_t。作者使用训练好的手部姿态估计模型[47]来预测每一帧t的2D手部关节j_{t}^{2 d}和MANO参数\theta_{t}和\beta_{t},使用RGB图像。我们估计根通过使用由Mt屏蔽的深度图像中心进行关节跟踪

给定每一帧t的初始估计\theta_{t},\beta_{t}, r_{t}和相机姿态\Pi,作者将3D手部关节估计表述为一个优化问题

\theta_{t}^{*}, \beta_{t}^{*}, r_{t}^{*}=\underset{\theta_{t}, \beta_{t}, r_{t}}{\arg \min }\left\|\Pi J\left(\theta_{t}, \beta_{t}, r_{t}\right)-j_{t}^{2 d}\right\|^{2}+\lambda\left\|M_{t} \cdot\left(\mathbf{R}\left(\theta_{t}, \beta_{t}, r_{t}\right)-D_{t}\right)\right\|^{2}

其中\lambda=0.001,R是一个深度渲染函数[39],D_{t}是帧t中的对应深度图。他们最小化2D中的重投影误差,并从深度图中优化手部的3D位置

且上述方程可以通过最小化来自不同相机的目标函数并校准外参,进一步扩展到多相机设置。他们默认使用两个相机来处理遮挡。此外,通过最小化帧间j_{t}^{3 d}和\beta_{t}的差异来部署后处理程序

1.2.3 演示翻译

常见的模仿学习算法消耗来自专家演示的状态-动作对。它需要机器人的状态和电机的动作作为训练数据,但不直接使用人手的姿态

如下图蓝色框中的运动链所示

尽管机器人和人手都具有相似的五指形态,但它们的运动链不同。人手的MANO模型[67]由15个旋转向量参数化,导致15个球形关节,具有15∗3 = 45个自由度。在模拟中使用的Adroit机器人手[43]具有24个旋转关节和1个自由关节,导致24+1∗6 = 30个自由度。每个指节的手指长度也不同

在DexMV中,作者提出了一种新方法,将以人为中心的姿态估计结果转化为以机器人为中心的模仿数据。具体来说,示范翻译包括两个步骤,如下图中的红框所示

  • (i) 手部运动重定向,以对齐人手运动和机器人手运动,尽管它们具有不同的自由度和几何形状
  • (ii) 预测机器人动作,即机器人马达的扭矩:在没有任何有线传感器的情况下,需要仅从姿态估计结果中恢复动作

对于手部运动重定向

在计算机图形学和动画中,运动重定向用于将表演者的动作重定向到虚拟角色上,以用于电影和动画等应用[2,31]。虽然动画界强调逼真的视觉效果,但更关注重定向运动在机器人操控背景下的物理效果

也就是说,机器人动作应该是可执行的,并且要遵循电机的物理限制,例如加速度和扭矩。形式上,给定从视频中估计的人手姿态序列\left\{\left(\theta_{t}, \beta_{t}, r_{t}\right)\right\}_{t=0}^{T},手部姿态重定向可以定义为计算机器人关节角度序列\left\{q_{t}\right\}_{t=0}^{T},其中t是长度为T+1的序列中的步数

将手部姿态重定向表述为一个优化问题

// 待更

1.3 DexVIP

// 待更

第二部分 从Robotic Telekinesis、R3M、VideoDex

2.2 R3M

// 待更

2.3 VideoDex

第三部分 MimicPlay:李飞飞团队和NVIDIA提出的基于人类视频的模仿学习框架

3.1 MimicPlay的基本原理与相关工作

3.1.1 基本原理

相比于机器人遥操作数据(如下图图1所示),人类视频数据收集速度更快且更容易。它允许大规模收集数据并涵盖各种情况和行为,且这种可扩展性在强策略泛化中起着关键作用

机器人然后从少量演示数据中学习低层操作策略,这些数据是由人类通过遥操作机器人收集的。与人类视频数据不同,演示数据收集成本高昂,但不会因为人类和机器人形态的不匹配而导致问题——说白了 就是虽量少但精准

为了将模仿学习扩展到长时程操作任务,23年2月,来自1Stanford, 2NVIDIA, 3Georgia Tech, 4UT Austin, 5Caltech的研究者提出了MimicPlay

  1. 这是一种新的模仿学习算法,利用了上述两种数据源的互补优势:低成本的人类视频数据和小规模的机器人远程操控演示
    其对应论文为:MimicPlay: Long-Horizon Imitation Learning by Watching Human Play
  2. 其作者包括:Chen Wang1, Linxi Fan2, Jiankai Sun1, Ruohan Zhang1,Li Fei-Fei1, Danfei Xu23, Yuke Zhu24†, Anima Anandkumar25†

    标粗的代表同时也是DexCap的作者
    顺带提前说一下,如作者所说,到了DexCap阶段,可以通过动捕设备(动作捕捉设备)实现厘米级别以内的追踪。这个追踪精度很高具体到手指指尖的精度,不仅限于手腕的位置。这种高精度追踪使机器人可以直接从数据中学习操作方案

    比如
    \rightarrow  对于MimicPlay,人类视频的精度只能到达五厘米或三厘米的范围,而三厘米以内的精度需要通过机器人自身学习的低级控制器(low level controller)来补足,从而实现任务
    \rightarrow  但对于DexCap,通过这种可穿戴式的数据采集设备,直接把精度做到最好,这样机器人就可以直接从数据中学习其方案

总之,MimicPlay基于一个关键的见解,即高层次的规划可以从快速收集的人类视频数据中有效学习。同时,低层次的控制技能最好从没有任何体现差距的远程操作示范数据中获得。特别是,由于人类和机器人的体现差异,找到能够弥合这两种数据源之间差距的中间表示至关重要

具体而言,如下图所示

  • (a) 训练阶段1:使用廉价的人类视频数据训练一个目标条件轨迹生成模型,以构建一个包含多样任务目标高级指导的潜在计划空间——注意此处的用词:潜在计划 说明已经降维了
     (a) Training Stage 1: using cheap human play data to train agoal-conditioned trajectory generation model to build a latent plan space that contains high-level guidance for diverse task goals.

    通过人类视频数据,高层控制器通过预测给定目标图像的未来3D人类手部轨迹来学习目标条件潜在计划。这种潜在计划在每个时间步提供丰富的3D指导(做什么和在哪里互动),通过将其转化为引导的运动生成过程来解决具有挑战性的长时程操作问题
  • (b) 训练阶段2:使用少量遥操作数据训练一个在预训练(冻结)规划器生成的潜在计划条件下的低级机器人控制器「基于这些潜在计划,低级控制器结合了进行细粒度操作所需的状态信息,以生成最终动作」
    (b) Training Stage 2: using a small amount of teleoperation data to train a low-level robot controller conditioned on the latent plans generated by the pre-trained (frozen) planner.
  • (c) 测试——相当于推理:给定一个单个长时间任务视频提示(可以是人类动作视频或机器人遥操作视频),MimicPlay生成潜在计划并引导低层控制器完成任务
    (c) Testing:Given a single long-horizon task video prompt (either human motion video or robot teleoperation video),MIMICPLAY generates latent plans and guides the low-level controller to accomplish the task.

相当于

  1. 利用预训练的潜在规划器\mathcal{P},使用成本效益高的人类视频数据(10 分钟)来将高维输入压缩成低维潜在计划向量p_{t}
    we leverage the latent planner P, pretrained with cost-effective human play data (10 minutes), to condense high-dimensional inputs into low-dimensional latent plan vectors pt.
  2. 由于这些潜在计划p_{t} 可以为制定低级机器人动作a_{t} 提供丰富的3D 指导,低级策略π 可以专注于学习在低维计划p_{t} 和动作a_{t} 之间的转换——这是一项它可以高效学习的任务 毕竟维度降低下来了
    Since these latent plans pt can offer rich 3D guidance for formulating low-level robot actions at, the low-level policy π can focus on learningthe conversion between the low-dimensional plans pt and actions at - a task it can learn efficiently due

3.1.2 相关工作:从人类视频中学习到从遥操数据中学习

首先,先看从人类视频中学习的工作

最近有大量研究探索利用大规模人类视频数据来改进机器人策略学习[29–39]。与MimicPlay工作密切相关的是R3M [40]和MVP [41],它们使用互联网规模的人类视频数据集Ego4D [42]来预训练视觉表示以进行后续模仿学习

  • 然而,由于数据来源的多样性和巨大的领域差异,将预训练的表示转移到特定的操控任务可能会很困难。值得注意的是,Hansen等人[43-On pre-training for visuo-motor control: Revisiting a learning-from-scratch baseline]发现简单的数据增强技术可以产生与这些预训练表示相似的效果
  • 为了减少领域差异,另一部分工作[29-Learning by watching: Physical imitation of manipulation skills from human videos,44,35,45,34,46,47-Human-to-robot imitation in the wild]利用域内人类视频,人类直接用自己的手与机器人任务环境互动。这类数据在人类和机器人领域之间的差距较小,从而允许对训练强化学习代理[35,45–47]和模仿学习[29,44,34]进行样本高效的奖励塑造

然而,这些工作集中于从人类视频中学习任务奖励或特征,这并不能直接帮助低层次的机器人动作生成

在MimicPlay这项工作中,作者从人类视频数据中提取有意义的轨迹级任务计划,为低层次控制器提供解决具有挑战性长时间跨度操控任务的高层次指导

怎么理解上面的这个「轨迹级」呢,如此文对作者的访谈,所说

  1. 高层次规划提供的不是像说明书一样的1、2、3步骤,也不是简单的语言描述,而是具体的三维空间轨迹,明确指出具体位置、抓取角度等,这就是我们所说的"grounding"
  2. 当你有一个大语言模型规划出1、2、3步骤后,需要进行"grounding",也就是落实到具体操作上
    比如说,大语言模型告诉你先去打开冰箱,但它没有具体说明如何打开冰箱。那么你需要找到冰箱把手,移动到把手位置,握住把手,并以某个轨迹打开冰箱。这些具体的操作就是我们所说的"grounding"。
    每个人的冰箱可能不一样,有些冰箱门是另一个方向,这就需要具体的"grounding"
  3. 高阶规划需要具体到每个细节,而大语言模型在这个落实过程中存在困难
    MimicPlay的高层次规划实际上已经包含了具体的实施细节,明确指出了如何实现这些步骤。因此,它提供的是一个已经落地的高阶规划,详细说明了如何操作

其次,咱们来看从人类遥操数据中学习的工作

受[5- Learning latent plans from play,48- Latent plans for task agnostic offline reinforcement learning,6-From play to policy: Conditional behavior generation from uncurated robot data]的启发——这是一种专注于从遥操数据中进行多任务学习的替代模仿学习范式(这种数据形式是一种不带特定目标的远程操作机器人演示),故作者也考虑使用遥操数据做进一步的微调
Our idea of leveraging human play data is heavily inspired by learning fromplay [5, 48, 6], an alternative imitation learning paradigm that focuses on multi-task learning from play data,a form of teleoperated robot demonstration provided without a specific goal.

  1. 不过,尽管遥操数据在行为上表现出高度多样性[5],但它需要繁重的远程操作过程(4.5小时[6]和6小时[7])
    Although play data exhibitshigh diversity in behavior [5], it requires the laborious teleoperation process (4.5 hours [6] and 6 hours [7])
  2. 故在MimicPlay这项工作中,作者改为两阶段模式:
    \rightarrow  首先,从人类视频数据中学习,人类可以自由地用手与场景互动。这种数据收集方法不仅节省时间,仅需10分钟,而且为机器人的运动生成提供了丰富的轨迹级指导
    \rightarrow  之后,机器人仅需极少量的远程操作数据,经验上少于30分钟,即可将指导转化为自身的运动指令,并成功执行复杂的长时间操控任务

3.2 MimicPlay:通过人类视频学习高层规划、再通过遥操学习低级控制

3.2.1 收集人类行为数据——学习高层次的规划(相对好泛化)

人类行为数据是比较容易收集的,比如在厨房中,操作员可能会打开烤箱,然后拉出托盘,或者拿起锅放在炉子上。这种类型的数据包含丰富的状态转换和关于物体可操作性和部件功能的隐性人类知识

说白了,将某个食物放进碗里,再放入微波炉加热,最后取出

  1. 人在执行这个long task时,可以给出很多策略方面的提示,比如手应该先去哪儿,怎么抓住微波炉的把手,如何打开微波炉,如何抽出托盘,把碗放上托盘,再关上微波炉
  2. 虽然人类手部轨迹和机器人的轨迹会有所不同,但做这件事的先后策略,比如去哪里找把手,去哪里拉托盘,这些策略是可以共享给机器人的,这套策略我们称之为高层次的规划
  3. 低层次的控制器(low level controller)则是在拿到规划后,控制机械臂的末端复现这些动作
    低层次的控制器因为高层次有更多人类数据的支持,学习所需的数据量也会减少——像不像NLP中 预训练-微调的模式?^_^
    它只需要按照规划的轨迹去执行20个步骤即可,不需要再考虑高层次的规划问题。这样,低层次控制器的数据需求很少,可能只是通过少量遥操作中学了一个抓取问题或移动问题。这些移动可能只需控制机器人向某个方向移动几厘米,有时甚至不需要学习

更重要的是,收集人类行为数据比远程操作更便宜且高效得多,因为它不需要任务标注或环境重置,仅需很少的时间——人类操作员可以在短短五秒内完成需要90秒机器人远程操作时间的任务(图1)

在MimicPlay这项工作中,为每个任务环境收集10分钟的人类行为视频作为训练数据集,这大约相当于3小时的机器人远程操作视频数据集的量

人类行为数据是通过让一名人类操作员用单手直接与场景互动10 分钟来收集的

  1. 整个轨迹τ 以每秒60 帧的速度记录,并且不进行剪辑或标注。3D 手部轨迹是通过一个现成的多视角人手追踪器[49] 检测的。10 分钟的人类游戏视频中的视频帧总数大约为36k
  2. 作者为每个环境训练一个潜在规划器,使用收集到的人类行为数据
    对于多环境设置(用于下表表3 中的实验),作者合并每个场景的人类行为数据来训练一个单一的潜在规划器

  3. 潜在规划器包含两个用于图像处理的ResNet-18 [57] 网络和基于MLP 的编码器-解码器网络,以及一个具有K = 5 个分布成分的GMM 模型
    最终,作者为潜在规划器训练了100k 次迭代,使用单个GPU 机器耗时12 小时

3.2.2 从人类行为数据中学习3D感知潜在计划:获取3D感知且把规划方案降维

给定一个由目标图像表示的长期任务,策略应基于此目标生成动作

  1. 作者将问题形式化为一个分层策略学习任务,其中一个目标条件高层规划器\mathcal{P}从目标观测g_{t} 中提炼关键特征,并将其转换为低维潜在计划p_{t}。这些计划随后用于引导低层电机控制器朝向目标
  2. 然而,学习这样一个基于视觉的运动规划器\mathcal{P} 需要一个大型数据集,因为它需要能够处理目标分布中固有的多模态性。作者通过利用一种廉价且易于收集的数据源——人类行为数据,来解决这个问题

在进行操作行为时,人类在脑海中构建一系列动作,然后用手与环境进行物理互动。这种互动产生的手部轨迹包含了关于个体潜在意图的丰富信息。基于手部轨迹,机器人可以通过在目标条件下重构手部轨迹来学习模仿人类的运动规划能力

然而,常见的人类视频数据集仅包含单视角观测,仅提供2D手部轨迹。这种轨迹在深度轴上存在歧义,并受到遮挡的影响

对此,作者使用两个校准过的摄像机从人类行为数据中追踪3D手部轨迹。即使用现成的手部检测器[49-Understanding human hands in contact at internet scale]从两个视角识别手部位置,基于校准摄像机参数重构3D手部轨迹。数据收集过程和系统的详细信息在原论文的附录中介绍

首先,对于学习多模态潜在计划——收集人类行为数据和相应的3D 手部轨迹\tau

通过收集的人类行为数据和相应的3D 手部轨迹\tau,作者将潜在计划学习过程形式化为一个以目标为条件的3D 轨迹生成任务

更具体地说,如下图图2(a) 所示

  1. 一个观察编码器E,由卷积网络实现,处理来自人类视频\mathcal{V}^{h}的视觉观察o_{t}^{h} 和目标图像g_{t}^{h} ,将其转化为低维特征,这些特征进一步由基于MLP 的编码器网络处理为潜在计划向量pt
  2. 基于潜在计划p_{t} 和手部位置l_{t},一个基于MLP 的解码器网络生成3D 手部轨迹的预测。然而,简单的轨迹回归无法完全涵盖人类动作丰富的多模态分布。即使对于同一个人类操作员,一个任务目标也可以通过不同的策略来实现

    为了解决这个问题,作者使用基于MLP 的高斯混合模型(GMM)[50-C. M. Bishop. Mixture density networks. 1994] 来从潜在计划p_{t} 建模轨迹分布
    对于一个如方程(1)所示的GMM
    p(\boldsymbol{\tau} \mid \boldsymbol{\theta})=\sum_{\boldsymbol{z}} p(\boldsymbol{\tau} \mid \boldsymbol{\theta}, \boldsymbol{z}) p(\boldsymbol{z} \mid \boldsymbol{\theta})
    其中
    \boldsymbol{\theta}=\left\{\boldsymbol{\mu}_{k}, \boldsymbol{\sigma}_{k}, \eta_{k}\right\}_{k=1}^{K}是GMM 的参数
    p\left(\boldsymbol{\tau} \mid \boldsymbol{\theta}, \boldsymbol{z}_{k}\right)是一个高斯分布\mathcal{N}\left(\boldsymbol{\tau} \mid \boldsymbol{\mu}_{k}, \boldsymbol{\sigma}_{k}\right),z由K 个成分组成
    特定权重\eta_{k} 代表第k个成分的概率


    GMM 比简单的MLP 更具表现力,因为它们被设计用来捕捉在人类行为数据中继承的多模态性
    最终GMM 模型的最终学习目标是最小化检测到的3D 人手轨迹τ 的负对数似然,如方程(2) 所示
    \mathcal{L}_{\mathrm{GMM}}(\boldsymbol{\theta})=-\mathbb{E}_{\boldsymbol{\tau}} \log \left(\sum_{k=1}^{K} \eta_{k} \mathcal{N}\left(\boldsymbol{\tau} \mid \boldsymbol{\mu}_{k}, \boldsymbol{\sigma}_{k}\right)\right), \text { where } 0 \leq \eta_{k} \leq 1, \sum_{k=1}^{K} \eta_{k}=1

其次,处理人类和机器人领域之间的视觉差距

作者考虑人类和机器人在同一环境中交互的设置。然而,人类和机器人领域之间不同的视觉外观(例如,图1 中的上行和下行)在将学习到的潜在规划器转移到下游机器人控制时构成了挑战

言外之意在于,高层规划也要尽可能贴近低层实际落地的现实,虽然在后续低层执行时可以通过遥操数据微调好,但要微调的gap(高层规划与低层执行之间的gap)如果过大 可不是一件好事,相对而言 都希望gap尽可能少

再进一步,面对一个任务,相当于收集到的人类行为视频尽可能贴近机器人本身所能实现的效果——比如我们要训练机器人后退 咱们没必要去收集一个人通过贴地滑步去后退的视频

对此,作者引入了一个新的学习目标,以最小化两个领域之间的视觉表示差距

  1. 给定人类视频帧o^{h} \in \mathcal{V}^{h}和机器人视频帧o^{r} \in \mathcal{V}^{r}
    作者计算由视觉编码器E 输出的人类领域\mathcal{Q}^{h}=E\left(o^{h}\right)和机器人领域\mathcal{Q}^{r}=E\left(o^{r}\right)的特征嵌入的分布(均值和方差)——在每个训练数据批次中
  2. 然后通过Kullback-Leibler (KL)散度损失最小化\mathcal{Q}^{h} 和\mathcal{Q}^{r} 之间的距离:\mathcal{L}_{\mathrm{KL}}=D_{\mathrm{KL}}\left(\mathcal{Q}^{r} \| \mathcal{Q}^{h}\right)

    注意,这个方法不需要配对的人类-机器人视频数据。{V}^{h} 和{V}^{r} 可以是不同的行为并解决不同的任务。仅使用视频中的图像帧来最小化两个领域之间的表示差距
    训练潜在规划器的最终损失函数为:\mathcal{L}=\mathcal{L}_{\mathrm{GMM}}+\lambda \cdot \mathcal{L}_{\mathrm{KL}},其中λ 是控制两个损失之间权重的超参数

3.2.3 基于潜在计划的多任务模仿学习:少量的遥操作数据训练低层机器人控制器

接下来,介绍如何生成潜在计划点以及如何用少量数据训练计划引导的低级控制器π的详细信息

首先,针对用于潜在计划生成的视频提示而言

由于目标规范的复杂性,指示机器人执行视觉运动长远任务具有挑战性

补充一下,机器人远程操作数据是通过基于IMU的手机远程操作系统RoboTurk [56]收集的

  1. 机器人手臂的控制频率为17-20Hz,夹爪的控制频率为2Hz
  2. 对于每个任务,收集20个演示。在实验中,还拥有一个包含40个演示的数据集,用于测试不同方法的样本效率

潜在规划器\mathcal{P} 从人类行为视频中学习,能够直接从人类运动视频中插值出具有3D 感知的任务级计划,这可以作为促进长远机器人操作的接口

  1. 更具体地说,使用一个一次性视频V「可以是人类视频\mathcal{V}^{h} 或机器人视频\mathcal{V}^{r}——这里为何两者都可以呢,我个人july的理解是:因为它只是作为一个prompt或引子,更在意或更关键的是在该prompt下生成的潜在计划」作为发送给预训练潜在规划器的目标规范提示,以生成机器人可执行的潜在计划p_{t}=\mathcal{P}\left(o_{t}, g_{t}, l_{t}\right), g_{t} \in \mathcal{V}
    这里的l_{t}是机器人的末端执行的3D位置
  2. 一次性视频首先被转换为一系列图像帧。在每个时间步,高级规划器\mathcal{P} 从序列中选取一张图像作为目标图像输入g_{t},并生成一个潜在计划p_{t} 以指导低级机器人动作a_{t} 的生成
    执行a_{t} 后,序列中的下一张图像帧被用作新的目标图像

在训练期间,如下图图2(a)(b)所示

目标图像g_{t}^{r}\left(g_{t}^{r} \in \mathcal{V}^{r}\right)被指定为机器人演示中当前时间步后H 步的帧的图像。H 是一个在[200, 600](10-30 秒)范围内均匀采样的整数,用作数据增强过程

其次,再看基于Transformer 的计划引导模仿

将规划与控制解耦允许低级策略π 专注于通过遵循指导p_{t} 来学习如何控制机器人——即低级策略π在潜在计划p_{t}的指导下 出动作a_t

计划引导模仿学习过程如图2(b) 所示

然而,要执行如抓取烤箱把手等细粒度行为,仅有高级指导是不够的。在动作生成过程中,同样重要的是考虑机器人末端执行器的低级细节

  1. 因此,作者将机器人的腕部摄像头观测w_{t} 和本体感知数据e_{t} 转换为低维特征向量,形状均为\mathbb{R}^{1 \times d}
  2. 然后,将这些特征与生成的潜在计划p_{t} 结合,创建一个一步的token嵌入s_{t}=\left[w_{t}, e_{t}, p_{t}\right]
    这些嵌入在T 个时间步长上的序列s_{[t: t+T]} = \left[w_{t}, e_{t}, p_{t}, \cdots, w_{t+T}, e_{t+T}, p_{t+T}\right]
    然后通过transformer 架构[51-Attention is all you need] f_{\text {trans }} 处理——包含N 层自注意力和前馈神经网络处理输入嵌入

    具体而言,给定T −1 时间步的嵌入序列,f_{\text {trans }}以自回归方式生成轨迹预测的嵌入x_{T}=f_{\operatorname{trans}}\left(w_{1: T-1}, e_{1: T-1}, p_{1: T-1}\right),其中x_T 是时间步T 的预测动作嵌入
    此处的Transformer由四个多头层组成,每层有四个头。在单个GPU机器上训练了100k次迭代,耗时12小时

    最终的机器人控制命令at 通过一个两层全连接网络处理动作特征x_{t} 而计算得到「The final robot control commands at are computed by processing the action feature xt with a two-layer fully-connected network」

为了解决机器人动作的多模态分布,作者利用基于MLP 的高斯混合模型(GMM)[50] 进行动作生成「To handle the multimodal distribution of robot actions, we also use a MLP-based GMM model [50] for theaction generation」

最后,看下多任务提示

从人类行为数据中学习使规划器能够处理多样的任务目标。作者通过设计所有评估环境为多任务,并在相同环境中共享相同的规划器P 和策略π 模型,实证展示了这一点

对于每个训练样本,提示视频是从相同任务类别的训练视频中均匀采样的

第四部分 24年纽约大学最新研究:VLM See, Robot Do

4.1 SeeDo的整体介绍及其与之前工作的对比

受[4-Ok-robot: What really matters in integrating open-knowledge
models for robotics]的启发,24年10月11日,来自纽约大学的研究者们(Beichen Wang, Juexiao Zhang, Shuwen Dong, Irving Fang, Chen Feng)发布此篇论文《VLM See, Robot Do: Human Demo Video to Robot Action Plan via Vision Language Model》

如下图所示,他们设计了一个以VLM为核心的流程,用于解释人类演示视频并为机器人生成任务计划。生成的计划被转换为机器人代码,并部署到模拟和现实世界的机器人中

其与之前工作的区别在于

  • 比如Video language planning通过使用一个具身VLM[24-Palm-e: An embodied multimodallanguage model]来构建一个视频-语言规划流程,将长远的语言指令分解为步骤,提示视频模型生成未来的视频回放,并评估当前进度,他们都依赖于人类语言指令来指定任务

    SeeDo则探索直接使用真实世界的人类演示视频作为任务规范
  • 再比如 Mimicplay: Long-horizon imitation learning by watching human play,提出将模仿学习过程分解为训练一个潜在规划器,以从人类行为数据中预测手的轨迹,并在机器人数据上训练由规划器指导的模仿策略
    虽然其分享了分解规划和动作学习的类似动机,但这项工作专注于规划部分,并采取不同的方法

    而SeeDo利用预训练的VLMs直接将人类示范视频解释为文本计划,并将生成的计划处理为LMPs,以调用任何动作原语,无论它们是基于训练的、基于控制的还是预编程的

4.2 SeeDo的三个模块:关键帧选择、视觉感知、VLM推理

进一步,如下图所示,SeeDo由三个模块组成

  1. 关键帧选择模块
  2. 视觉感知模块
  3. VLM推理模块

4.2.1 关键帧选择

在VLM处理视频时,内容长度是一个主要限制。开源VLM通常简单地均匀采样帧[13,45],但这种方法对演示视频效果较差,因为可能会错过显示重要动作的帧

因此,作者采用一种启发式方法,通过检测手速来选择关键帧。手-物体交互在演示视频中至关重要[34,35],他们观察到在拾取或放置物体时,手通常移动得较慢,这为定位关键帧提供了线索。类似的观察在文献中也有报道[50]

具体来说,作者利用一种轻量级方法[51]来检测手并绘制手速随时间变化的图[52]。生成的图经过插值和平滑处理,形成手速的波浪状表示,选择对应于波谷的帧作为关键帧

由于手检测并不总是完美的,一些波谷可能是插值的结果,因此进一步过滤掉噪声关键帧。在VLM推理模块中,作者提示VLM评估这些帧是否包含手-物体交互,结果相当准确

4.2.2 视觉感知

前VLM的视觉缺陷在文献中已有报道[53]。作者也发现VLM常常难以准确确定物体的位置及其空间关系。它们还常常无法在时间上持续区分视觉上相似的物体,这对从人类演示视频中进行规划任务至关重要

为了解决这些问题,作者在SeeDo中引入了一个视觉感知模块,以增强VLM的视觉能力

具体来说,首先指示VLM识别视频中的物体,然后使用开放词汇的目标检测器[54]用于提取第一帧中的目标边界框。这些边界框作为提示用于最新的Segment Anything Model「即SAM2,[55]」进行视频跟踪

生成的跟踪ID和掩码轮廓被标注到先前选择的关键帧上,作为视觉提示[56]。提示过的关键帧随后被交给VLM推理模块

4.2.3 VLM推理

VLM推理模块使用链式思维(即CoT)提示[19]来生成任务规划步骤,作为SeeDo的最终输出

  • 对于具体的模型选择,他们选择了GPT-4o作为SeeDo中的VLM,因为其性能优越
  • 当然,在研究界使用商业的、闭源的模型并不少见。在机器人学的VLM先前研究中[1,2,3,21,57,58],大多采用了GPT系列或其他闭源模型,如PALM[24,59]

该模块的一个关键设计是将视觉提示整合到推理中。先前的研究表明,为VLM提供包含提示视觉线索的图像对于操控[60]和导航任务[61]是有效的

在SeeDo中,识别物体及理解其空间关系对于解读人类演示视频至关重要,而这通过从视觉感知模块中获得的视频跟踪所衍生的视觉提示得到了极大增强

具体来说,在提示中维持一个从视觉感知模块中获得的物体列表。遮罩轮廓和跟踪ID被用作关键帧中的视觉提示,以帮助物体识别。通过使用轮廓而非完整遮罩,确保了关注的物体在不遮挡其外观的情况下被突出显示。遮罩的中心坐标结合相应的跟踪ID随后被附加到文本提示中,以暗示VLM物体的空间关系

经验上,我们发现这一设计在人类演示视频涉及视觉上相似的物体时,这特别有帮助,例如在玩无色木块时

如下图所示,作者在SeeDo中提供一个CoT提示示例

4.3 计划执行

SeeDo生成的任务计划可以通过任何可以接受文本输入的机器人动作模型逐步无缝处理。具体来说,按照[1]和[21]中的方法,我们使用语言模型程序(LMPs)在Pybullet模拟[62]和实际部署中实现UR10e机器人臂的任务计划

4.4 实验结果及与其他模型的比较

  • 在与闭源模型的对比下
    将 SeeDo 与闭源的商业模型Gemini 1.5 Pro 进行了比较,该模型被评为视频理解领域的最先进模型 [49]

    由于其 API 可以直接接收视频输入,作者对提示进行了轻微调整。除此之外,提示的关键部分与 SeeDo 保持一致
  • 在与开源VLM的对比下
    作者将 SeeDo 与 LLaVA One Vision [13]和 VILA [45] 进行了比较,这些模型在视频分析基准测试中也名列前茅 [49]。且遵循他们的实践和代码,从每个视频中均匀采样 16 帧作为输入。提示稍作调整以优化其模型的行为。完整的提示将会发布
  • 与使用 GPT-4o 的 SeeDo 变体的对比下
    由于作者选择 GPT-4o 作为 SeeDo 的 VLM,故他们另外测试了包含 GPT-4o 的三个变体。GPT-4o Init+Final仅以视频的初始帧和最终帧作为输入。其目的是验证视频输入是否必要

    且为了消除关键帧选择模块的影响,他们测试了 aGPT-4o Unif.,该变体在没有手动检测的情况下均匀采样 16 帧
    至于视觉感知模块,我们比较了不使用视觉提示的 aGPT-4o。这些消融结果分别在表 II 和表 III 中报告

第五部分  OKAMI:从单个RGB视频演示中模仿人类操作的人形机器人

5.1 OKAMI:结合「GPT4V的open-world vision能力」和重定向

24年10.15,来自UT Austin、NVIDIA Research的研究者们(Jinhan Li, Yifeng Zhu, Yuqi Xie, Zhenyu Jiang, Mingyo Seo, Georgios Pavlakos, Yuke Zhu)提出了OKAMI,其对应的论文为《OKAMI: Teaching Humanoid Robots Manipulation Skills through Single Video Imitation》

其类似之前博客内解读过的HumanPlus(HumanPlus基于宇树机器人 侧重全身控制,本OKAMI基于傅里叶机器人 侧重上半身控制)、SeeDo等,OKAMI使具有两个灵巧双手的双足人形机器人能够从单个RGB-D视频演示中模仿操作行为

其使用两阶段过程将人类动作重定向到人形机器人,以在不同初始条件下完成任务

  • 第一阶段,处理视频以生成参考操作计划
    使用视觉基础模型[15-GPT4V,16-Grounding dino]识别与任务相关的物体,从视频中重建人类动作,并在评估期间定位与任务相关的物体
    在测试时定位物体还可以实现运动重定向,以适应不同的背景或同类的新物体实例
  • 第二阶段,利用该计划通过运动重定向合成人形机器人的动作,以适应目标环境中的对象位置

    简言之,其分别重定向身体动作和手部姿态
    细言之,首先从任务空间中的参考计划重定向身体动作,然后根据与任务相关物体的位置扭曲重定向的轨迹,其中身体关节的轨迹通过逆运动学获得
    至于,手指的关节角从计划映射到灵巧的手上,重现手-物交互。通过物体感知的重定向,OKAMI策略能够系统性地推广到各种空间布局的物体和场景杂乱中

5.1.1 问题表述与开放世界的定义

问题表述

  • 作者将人形操作任务表述为一个离散时间马尔可夫决策过程,由一个元组定义:M=(S, A, P, R, \gamma, \mu),其中S是状态空间,A是动作空间,P(\cdot \mid s, a)是转移概率,R(s)是奖励函数,\gamma \in[0,1)是折扣因子,\mu是初始状态分布
  • 在他们的背景下,S是捕捉机器人和物体状态的原始RGB-D观测空间,A是人形机器人运动指令的空间,R是稀疏奖励函数,当任务完成时返回1
    解决任务的目标是找到一个策略π,以最大化从µ中抽取的广泛初始配置在测试时的预期任务成功率

那又什么叫做开放世界呢

  1. 考虑“从观察中模仿开放世界”的设定[4-Vision-based manipulation from single human video with open-world object graphs],其中机器人系统以录制的RGB-D人类视频V作为输入,并返回一个人形操控策略π,完成视频V中演示的任务
    此设定为“开放世界”,因为机器人对任务中涉及的对象类别或物理状态没有先验知识或真实信息访问,并且是“从观察中”,因为视频V没有附带任何真实的机器人动作。若策略执行后状态与视频V的最后一帧状态匹配,则视为成功
  2. 值得注意的是,本文对视频V做了两个假设:V中的所有图像帧均捕捉到人体,并且拍摄V的摄像机视角在整个录制过程中是静止的

5.1.2 参考计划生成:先识别、后估计、最后生成计划

为了实现对象感知的重定向,OKAMI首先为人形机器人生成一个参考计划。计划生成涉及理解与任务相关的对象是什么以及人类如何操控它们

首先,在识别和定位任务相关的对象

为了从视频V中模仿操作任务,OKAMI必须识别出要交互的任务相关对象。尽管之前的方法依赖于无监督方法与简单背景或需要额外的人为注释[50–53],OKAMI则使用现成的视觉语言模型(VLMs),即GPT-4V,通过利用模型内部化的常识知识来识别视频V中的任务相关对象

  1. 具体来说,OKAMI通过从视频演示V中采样RGB帧并将这些图像连接后提示GPT-4V,来获取任务相关对象的名称
    比如,OKAMI 使用以下prompt来调用 GPT4V,以便从提供的人类视频中识别与任务相关的对象


    再比如,识别目标物体

    还比如,识别参考物体
  2. 对于这些对象名称,OKAMI使用Grounded-SAM[16]对第一帧中的物体进行分割,并使用视频对象分割模型Cutie[54]在整个视频中跟踪它们的位置

其次,重建人体动作:相当于人体姿态估计和手势估计

为了将人体动作重新定向到人形机器人,OKAMI从V中重建人体动作以获得运动轨迹

作者采用改进版的SLAHMR [55],这是一种重建人体动作序列的迭代优化算法。虽然SLAHMR假设手掌是平的,但他们的扩展优化了SMPL-H模型[56]的手部姿势,这些姿势通过HaMeR [57]估计的手部姿势进行初始化

  1. 此修改使他们能够从单目视频中联合优化身体和手部姿势。输出是一系列捕捉全身和手部姿势的SMPL-H模型,使OKAMI能够将人体动作重新定向到人形机器人(见第3.2节)
  2. 此外,SMPL-H模型可以表示跨人口差异的人体姿势,从而能够轻松地将人类演示者的动作映射到类人机器人

具体而言

  1. 第一步,对于3D人体重建,作者首先通过视频跟踪人物,并使用4D Humans[62]获得其3D身体姿态的初步估计
    不过,此身体重建无法捕捉手部姿态的细节(即,手是平的)。因此,对于视频中人物的每次检测,作者使用ViTPose[63]检测双手,并对每只手应用HaMeR [57]以获得3D手部姿态的估计

    总之,作者先使用4D Humans提供的3D身体姿态估计和HaMeR提供的3D手部姿态来初始化该过程
    然后,使用HaMeR预测的3D手部的2D投影,通过重投影损失来约束整体模型的3D手部关键点的投影(Moreover, we usethe 2D projection of the 3D hands predicted by HaMeR to constrain the projection of the 3D handkeypoints of the holistic model using a reprojection loss)
  2. 第二步,由于由HaMeR重建的手可能与身体重建中的手臂不一致(例如,不同的手腕方向和位置)
    故为了解决这一问题,作者应用优化改进
    ,使身体和手在每一帧中保持一致,并鼓励整体身体和手的运动随时间平滑
    此优化类似于SLAHMR[55],不同之处在于除了SMPL+H模型[56]的身体姿态和位置外,作者还优化手部姿态

    具体而言,其可以在视频的持续时间内联合优化所有参数(身体位置、身体姿态、手部姿态),如SLAHMR [55]中所述
    他们修改后的SLAHMR结合了SMPL-H模型[56],以在人体运动重建中包括手部姿势「当然,如上面的第一步所述,每一帧中使用HaMeR[57]提供的3D手部估计来初始化手部姿势」
    然后,优化过程共同细化视频序列中的身体位置、身体姿势和手部姿势

    这种联合优化允许准确建模手与物体的交互方式,且该优化最小化了来自SMPL-H模型的3D关节的2D投影与从视频中检测到的2D关节位置之间的误差
    且使用标准参数和设置,如SLAHMR [55]中所述,并对其进行调整以适应SMPL-H模型

至于在推理要求上,使用的人体重建模型很大,需要在计算速度足够快的计算机上运行。他们使用的台式机配备了内存大小为24 GB的GPU RTX3090。对于一个10秒的视频,帧率为30,它处理时间为10分钟

接下来,从视频生成计划

在识别出任务相关的物体并重建人类动作后,OKAMI 从视频中生成一个参考计划,以便机器人完成每个子目标

OKAMI 通过对视频进行时间分割来识别子目标,具体过程如下:

  1. 首先使用 CoTracker [58] 跟踪关键点,并检测关键点的速度变化以确定关键帧,这些关键帧对应于子目标状态

    对于每个子目标,识别一个目标物体(由于操作而运动)和一个参考物体(通过接触或非接触关系为目标物体的运动提供空间参考)
    目标物体是基于每个物体的平均关键点速度确定的,而参考物体则通过几何启发式或由 GPT-4V预测的语义关系来识别(有关计划生成的更多实现细节,请参见附录 A.4)
  2. 在确定了子目标和相关对象后,生成一个参考计划l_{0}, l_{1}, \ldots, l_{N},其中每一步l_i对应一个关键帧,并包括目标对象O_{\text {target }}、参考对象O_{\text {reference }}的点云,以及 SMPL-H轨迹段\tau_{t_{i}: t i+1}^{\mathrm{SMPL}}

    如果不需要参考对象(例如,抓取一个对象),则O_{\text {reference }}为 null,至于点云是通过使用深度图从 RGB 图像中反投影分割的对象获得的 [59]

5.1.3 面向对象的重定向:主要是重定位

给定视频演示中的参考计划,OKAMI使人形机器人能够在V中模仿任务

机器人通过定位任务相关的对象并将SMPL-H轨迹段重定向到类人机器人上来跟随计划中的每个步骤。重定向的轨迹然后通过逆运动学转换为关节命令。此过程重复进行,直到所有步骤执行完毕,并根据任务特定条件评估成功(见附录B.1)

首先,对于测试时对象定位上

在测试时环境中执行计划时,OKAMI 必须在机器人观察中定位与任务相关的对象,提取三维点云以跟踪对象位置。通过关注与任务相关的对象,OKAMI 策略可以在各种视觉条件下泛化,包括不同的背景或出现新的与任务相关的对象实例

其次,将人类动作重新定向到仿人机器人

对象感知的关键方面是将动作适应于新对象的位置。在定位对象后,作者采用分解的重新定向过程,分别合成手臂和手的动作

  1. OKAMI首先将手臂动作适应于对象位置,以便手指置于以对象为中心的坐标框架内

    为了将身体动作从SMPL-H表示重定向到类人机器人,作者从SMPL-H模型中提取肩部、肘部和手腕的姿势
    然后使用逆向运动学来解决类人的身体关节,确保它们产生相似的肩部和肘部方向以及相似的手腕姿势「其中的逆向运动学是使用开源库Pink [64]实现的」
    至于用于肩部方向、肘部方向、手腕方向和手腕位置的IK权重分别为 0.04, 0.04, 0.08和 1.0
  2. 然后,OKAMI只需在关节配置中重新定向手指,以模仿示范者如何用手与对象互动
    具体来说,我们首先将人体动作映射到人形机器人的任务空间,调整轨迹以适应尺寸和比例的差异

    总之,先通过逆向运动学和角度映射的混合实现,将SMPL-H模型的手部重新定向到机器人的灵巧手,以下是该映射执行的详细信息
    一旦从视频演示中获得SMPL-H模型,可以从SMPL-H的手部网格模型中获得3D关节的位置
    随后,可以计算每个关节对应于特定手部姿势的旋转角度
    然后将计算得到的关节角度应用于一个标准的SMPL-H模型的手部网格,该模型预定义为与类人机器人硬件具有相同的尺寸。从这个标准的SMPL-H模型中,我们可以获得手部关节的3D关键点,并使用现有的包dex-retarget,这是一个现成的优化包,直接计算机器人的手部关节角度[65]


    对于逆运动学,要强调的是
    在扭曲手臂轨迹后,使用逆向运动学来计算机器人的关节配置
    将手部位置的权重分配为 1.0,手部旋转的权重分配为 0.08,优先考虑准确的手部放置,同时允许手臂保持自然姿态。
    为了将人类手部姿势重定向到机器人,将人类手部关节角度映射到机器人手部的相应关节。这使得机器人能够复制人类展示的细致操作,例如抓取和物体交互
    总之,作者实现确保重定向的动作对机器人在物理上是可行的,并且整体执行在任务上看起来自然且有效
  3. 接着,OKAMI 对重定向的轨迹进行变形,以便机器人手臂能够到达新的目标位置
    作者考虑了轨迹变形的两种情况——当目标物体和参考物体之间的关系状态不变时,以及当其发生变化时,分别对变形进行相应调整

    在第一种情况下在变形之后,作者使用逆向运动学计算手臂的关节配置序列,同时在逆向运动学计算中平衡位置和旋转目标的权重,以保持自然的姿势
    同时,作者将人类手部姿势重新定位到机器人的手指关节,使机器人能够执行细致的操作
  4. 最终,获得了一个用于执行的全身关节配置轨迹。由于手臂运动重定向是仿射的,他们的过程自然地扩展和调整来自不同人口特征的示范者的运动
    通过将手臂轨迹适应于物体位置并独立重定向手部姿势,OKAMI在各种空间布局中实现了泛化

在轨迹扭曲问题上,再根据原论文额外补充下

  1. 将机器人轨迹表示为\tau^{\text {robot }},其从\tau_{t_{i}: t_{i+1}}^{\text {SMPL }}重定向
    p_{\text {start }}、p_{\text {end }}分别表示\tau^{\text {robot }}的起点和终点,注意,轨迹上的所有点都在SE(3)空间中表示

    原始重定向轨迹上的每个点 p_{t} 可以通过以下函数描述:
    p_{t}=p_{\text {start }}+\left(\tau^{\text {robot }}(t)-p_{\text {start }}\right)
    其中t \in\left\{t_{i}, \ldots, t_{i+1}\right\}, \tau^{\text {robot }}\left(t_{i}\right)=p_{\text {start }}, \tau^{\text {robot }}\left(t_{i+1}\right)=p_{\text {end }}
  2. 在扭曲轨迹时,只需将轨迹适应新的目标物体位置,或将轨迹适应目标物体和参考物体的新位置,一般而言,将起始点的SE(3)变换表示为T_{\text {start }},而终点的SE(3)变换表示为T_{\text {end }}

    现在,扭曲的轨迹可以通过以下函数描述:
    p_{t}=T_{\text {start }} \cdot p_{\text {start }}+\left(\hat{\tau}^{\text {robot }}(t)-T_{\text {start }} \cdot p_{\text {start }}\right)
    其中\hat{\tau}^{\text {robot }}(t)=\frac{\tau^{\text {robot }}(t)-p_{\text {start }}}{p_{\text {end }}-p_{\text {start }}}\left(T_{\text {end }} \cdot p_{\text {end }}-T_{\text {start }} \cdot p_{\text {start }}\right)+T_{\text {start }} \cdot p_{\text {start }}, \forall t \in\left\{t_{i}, \ldots, t_{i+1}\right\}
    通过这种方式,有\hat{\tau}^{\text {robot }}\left(t_{i}\right)=T_{\text {start }} \cdot p_{\text {start }}, \hat{\tau}^{\text {robot }}\left(t_{i+1}\right)=T_{\text {end }} \cdot p_{\text {end }}
    请注意,这种轨迹扭曲假设轨迹的终点与起点不同,这是大多数操作行为的常见假设

5.2 机器人动作策略的训练

为了在OKAMI展开中训练神经视觉运动策略

  1. 作者首先在随机初始化的对象布局上运行OKAMI,以生成多个展开并收集成功轨迹的数据集,同时丢弃失败的
  2. 然后通过行为克隆算法在此数据集上训练神经网络策略。由于平滑执行对于人形操控至关重要,他们使用ACT [61]实现行为克隆,该算法通过其时间集合设计、轨迹平滑组件预测平滑动作,其中ACT中使用的相关超参数如下图所示

    且择预训练的DinoV2 [68,69]作为策略的视觉骨干,该策略以单个RGB图像和26维关节位置为输入,并输出机器人要达到的26维绝对关节位置的动作
  3. 此外,随着收集的展开数量增加,学习到的策略会有所改善。这些结果表明可以在不需要繁琐的远程操作的情况下扩展数据收集,以学习人形操控技能的潜力

5.3 实验效果及与基线的对比

在硬件设置上,OKAMI使用Fourier GR1机器人作为硬件平台,配备两个6自由度的Inspire灵巧手和D435i Intel RealSense相机用于视频记录和测试时观察。不过,他们实现了一个以400Hz运行的关节位置控制器。为了避免动作不平稳,他们以40Hz计算关节位置命令,并将这些命令插值到400Hz的轨迹上

在与基线策略ORION的PK上

  • 由于ORION是为平行爪夹持器设计的,因此在他们的实验中不能直接适用,故作者对其进行了最小化修改:使用SMPL-H轨迹估计手掌轨迹,并根据新物体位置变形轨迹。变形后的轨迹用于后续的逆运动学中,以计算机器人关节配置
  • ORION策略的大多数失败是由于未能以可靠的抓取姿态接近物体(例如,在放置零食在盘子上任务中,ORION试图从侧面抓取零食,而不是像人类视频中那样从上往下抓取),以及未能完全旋转手腕以实现诸如倒水的行为
  • 这些行为源于ORION忽略了体现信息,因此在性能上不如OKAMI。OKAMI的优越性能表明,当从人类视频中模仿时,将人类示范者的身体动作重新定位到类人机器人上的重要性

第六部分 HARMON:从语言描述生成人形机器人的全身运动

6.1 HARMON

6.1.1 HARMON

人类动作可以映射到人形机器人上,作为运动生成的知情先验。然而,人类模型和人形机器人之间的差异阻碍了直接运动重定向的有效性

首先,头部和手指动作通常在人体动作数据集中缺失,因此无法为这些身体部位生成人形动作。然而,这些动作对于机器人的全身动作的表现力至关重要

此外,由于运动学限制,重定向无法精确复制人类动作到人形机器人上,可能改变动作的语义意义和可读性

对此,24年10月16日,来自1The University of Texas at Austin 2NVIDIA Research的研究者提出了HARMON(Humanoid Robot Motion Generation),其对应论文为《HARMON: Whole-Body Motion Generation of Humanoid Robots from Language Descriptions》,作者包括:Zhenyu Jiang1,2*、Yuqi Xie1,2*、Jinhan Li1†、Ye Yuan2、Yifeng Zhu1、Yuke Zhu1,2,它通过结合人类运动先验知识,从自由形式的语言描述中生成全身类人运动

  1. 采用PhysDiff[6],这是一种基于扩散的生成模型,经过大规模人类运动数据集的训练,能够从语言描述中生成人体运动。PhysDiff在扩散过程中结合了物理约束,生成物理上合理的人体运动。它将人体运动生成为一系列的SMPL[7]参数
  2. 然后,使用逆运动学将人体运动重新定位到模拟的类人机器人上。如前所述,PhysDiff生成的运动不涉及手部和手指的动作,重新定位错误可能导致运动与语言描述不一致
  3. 为了解决这些问题,利用视觉语言模型(VLM)的常识推理能力来编辑类人运动。给定类人运动的渲染和其语言描述,VLM生成头部和手指运动并优化手臂运动

    为了在真实机器人上实现全身运动,我们将上半身和下半身运动分开,独立控制行走和上半身运动。得益于人类运动先验和基于VLM的运动编辑,可以生成与语言描述一致的自然类人运动,并在模拟和真实的类人机器人上执行这些运动
  4. 使用Fourier GR1人形机器人进行仿真和实际实验。整理了一个测试集,其中包括来自HumanML3D测试集的文本和LLM生成的动作描述,并进行了一项人类研究以评估生成动作的质量。HARMON展示了自然且与文本对齐的人形动作,在86.7%的测试案例中受到人类评估者的青睐

6.1.2 相关工作:基于文本生成人类动作、VLM的高级规划功能

最近的研究[25–27]探索了在真实和模拟人形机器人上模仿人类动作。这些方法涉及将人类动作重新定位到人形机器人上,并使用强化学习(RL)在模拟中训练机器人。其中一些研究[26- Expressive whole-body control for humanoid robots,27-H2O:Learning human-to-humanoid
real-time whole-body teleoperation
]已成功地将训练的策略部署到真实世界的机器人上

HARMON的工作专注于文本条件的人形机器人运动生成。Yoshida等人[28]也通过直接使用大型语言模型生成人形机器人运动来解决此问题。然而,他们生成的动作往往显得不自然且僵硬。相比之下,HARMON结合了人类动作先验知识以生成更自然的人形动作

关于基于文本的人类动作生成上

  1. 最近,人类动作生成领域取得了显著发展。早期的研究[29–36]以确定性方式生成了人类动作。随后,随机生成模型被应用于人类动作生成,使用GANs[37]或VAEs[38–41]从各种条件(如动作标签和文本)创建人类动作
  2. 最近,扩散模型[42,6,43]也被用于人类动作生成。这些模型可以接受诸如文本或关键帧等各种条件,并生成多样且自然的人类动作。此外,一些最近的工作[44-Motiongpt: Human motion as a foreign language,45-Motiongpt: Finetuned llms are general-purpose motion generators]将人类动作tokenize化,并使用基于transformer的自回归模型通过下一个token预测来生成人类动作
  3. 在HARMON的工作中,HARMON使用从文本生成的人体动作作为类人动作的初始化。虽然这些基于文本的人体动作生成模型为类人动作提供了良好的先验,但这些框架中的人体模型与真实类人模型之间的结构差异需要对类人动作进行进一步的优化

在机器人控制的基础模型上

基础模型,例如大型语言模型(LLMs)和视觉语言模型(VLMs),在涉及实体代理和机器人技术的任务中,作为高级语义规划器表现出色[46–55]

  1. 最近的研究[56–58]开始探索它们在学习低级机器人行为方面的潜力
    例如,L2R[58]使用少量示例来提示LLMs生成用于机器人训练的奖励函数,而Eureka[56]通过采用进化搜索系统来迭代提出改进的奖励函数,消除了对少量示例的需求
  2. RL-VLM-F[59]生成奖励函数,使代理能够通过VLMs的反馈学习新任务
    HARMON利用VLMs的零样本常识推理能力来评估和编辑人形机器人动作,改进人形机器人动作与相应语言描述之间的一致性

6.2 HARMON的方法

HARMON研究从语言描述生成类人动作的问题

比如给定一个文本描述X,HARMON的目标是生成一系列机器人关节配置Q=\left\{\mathbf{q}_{1}, \cdots \mathbf{q}_{T}\right\},\mathbf{q}_{i} \in\mathbb{R}^{c}。其中,T是序列长度,c是类人机器人关节的数量

下图图2展示了作者提出的方法,HARMON

  1. 首先,根据语言描述生成人体运动,并将此人体运动重新定位以创建初始的人形运动
  2. 为了改善人形运动与语言描述之间的对齐,使用VLM生成手指和头部运动,并迭代调整身体运动
  3. 最后,在真实的人形机器人上执行生成的运动

6.2.1 重定向:PhysDiff生成人体运动,且pink做逆求解

由于缺乏配对的数据集,直接从语言描述中训练一个生成类人动作的模型具有挑战性

  1. 故利用一个人类动作生成模型从语言描述中生成动作,然后将其重定向到类人机器人上

    给定文本描述X,作者使用PhysDiff [6- Physdiff: Physics-guided human motion diffusion model]——一种物理引导的运动扩散模型,来生成相应的人体运动
    输出是一个SMPL [7]参数序列P=\left\{\left(\theta_{1}, \mathbf{t}_{1}\right), \cdots,\left(\theta_{T}, \mathbf{t}_{T}\right)\right\},其中\theta_{i}是关节旋转,\mathbf{t}_{i}是时间步i的根部平移
  2. SMPL模型还包括一个体型参数\beta \in \mathbb{R}^{1 C},编码身高和体型等属性。给定\theta_{i}, \mathbf{t}_{i}, \beta,每个人体关节的位置J_{i}=\mathcal{S}\left(\theta_{i}, \mathbf{t}_{i}, \beta\right)通过SMPL模型S计算
    每个J_{i} \in \mathbb{R}^{24 \times 3}包含时间步i的24个人体关节的位置

    在将人类动作重新定向到人形机器人之前,首先最小化人体形状与类人机器人的差异,以确保机器人可以达到人类的关节位置

    受到 He 等人 [27-H2O:Learning human-to-humanoid real-time whole-body teleoperation] 的启发,作者将 SMPL 模型和人形机器人模型设置为相同的 T 姿势,选择两个模型上的17 对对应关节,并最小化关节位置差异
    且采用 Adam 优化器 [60] 通过优化\beta来最小化关节位置差异。优化后的\beta^{*}随后用于从 SMPL 参数计算关节位置
  3. 接下来,利用pink [61]中的逆运动学(IK)求解器,通过优化人形机器人的关节配置q,将人形机器人的关键关节与人类模型的关键关节对齐
    关键关节包括手腕、肘部、肩部、膝盖和脚踝。给定人形机器人的当前关节配置和关键关节的目标位置,求解器计算出关节速度,以驱动关键关节达到其目标位置

    大家注意:和下图最左侧不同的是
    \rightarrow  下图最左侧是HumanPlus之类的根据RGB相机拍摄人体动作,然后做姿态估计、手势估计从而映射到SMPL动作
    \rightarrow  而本节介绍的HARMON是根据语言,然后基于PhysDiff去生成SMPL动作,两者所依据的条件 截然不同

    总之,依次将目标设置为SMPL模型的空间位置,并在每个时间步用IK求解器的结果更新关节配置
    在每个时间步迭代SMPL参数后,HARMON从重新定向过程中获得了一系列机器人关节配置Q_{r}。控制机器人跟随这个序列会产生与生成的人类动作非常相似的人形机器人运动

6.2.2 基于VLM的动作编辑:相当于VLM对「人形动作」做微调

重定向过程基于生成的人类动作初始化人形机器人动作。然而,由于SMPL人体模型与人形机器人在运动学结构上的差异,重定向的动作可能与预期的语言描述不完全一致

  1. 具体而言,人形机器人可以驱动颈部和灵巧的手,而生成的人类动作缺乏头部和手指的动作。因此,重定向的动作未能充分利用人形机器人的表现力
  2. 此外,重定向过程无法在机器人上精确复制人类动作,这可能导致人形机器人动作在语义上与原始人类动作不同。这些因素可能导致人形机器人动作与语言描述之间的不一致

为了解决这个问题,将重定向的动作渲染成视频,并利用GPT-4编辑人形机器人动作以更好地对齐

对于手指和头部运动生成

为了最大化人形运动的表现力,生成手指和头部运动并将其与重定向过程中的全身运动整合是至关重要的

如下图图3所示「左上:GPT-4根据渲染的人形动作和手指动作描述在关键帧生成手指动作。右上:GPT-4识别关键帧并根据头部动作描述生成头部动作。底部:GPT-4通过评估和改进基于动作描述的渲染人形帧,迭代调整手臂动作」

  1. 手指和头部运动是分别生成的,每个都有其自身的运动描述。作者采用GPT-4从原始运动描述中提取这些特定的描述。该方法使VLM/LLM能够专注于生成精确的手指和头部运动,同时避免在这些部分不涉及时生成不必要的运动
  2. 手指运动需要与手臂运动协调。为此,使用GPT-4观察重定向后的全身运动渲染视频,并生成相应的手指动作

    如上图左上角所示,由于GPT-4只接受图像作为输入,作者从视频中等间隔采样四帧。虽然更多的帧可能捕捉到更多细节,但作者经验发现,当输入序列过长时,现有的视觉语言模型(VLMs)推理能力会下降

    对于HARMON的任务,四帧足以让VLM准确生成手指运动。作者将这四帧与手指运动描述一起输入GPT-4,提示它生成手部关节配置

    \mathbf{q}_{i}^{f} \in \mathbb{R}^{n_{f}},对于每个区间,其中n_{f}=12表示手指关节的总数量。不同区间的结果随后被连接成一个手指关节配置序列,Q_{f}
  3. 如上图右上角所示,头部运动比手指运动更独立且维度更低。因此,作者使用一个大型语言模型(LLM),特别是GPT-4,直接从头部运动描述生成头部运动

    比如向GPT-4提供头部运动描述、总帧数和每秒帧数(FPS)作为输入。然后,GPT-4确定在关键帧处的三个颈部关节的关节配置\mathbf{q}_{i}^{h} \in \mathbb{R}^{3}

    通过在这些关键帧之间进行插值,获得了由关节配置序列Q_{h}表示的平滑头部运动。关键帧索引由GPT-4自动确定,允许生成高频率的头部运动
  4. 迭代运动调整。重新定向的运动可能与语言描述不一致,主要有两个原因:
    1)生成的人类运动可能无法准确反映语言描述,2)重新定向过程可能会改变人类运动,导致与原语义不同的人形运动
    1) the generated human motion may not accurately reflect the language description, and 2) the retargeting process may alter the human motion

    为了解决这些差异,作者实施了一种迭代运动调整方案,以使人形运动与语言描述对齐。如上图图3底部所示,作者使用一个判断代理和一个调整代理来确保对齐

    与生成手指动作的过程类似,作者从生成的动作视频中以相等的间隔选择四帧。这些帧连同人类动作描述一起提供给判断代理
    GPT-4V首先生成一个描述视频中的人形机器人动作的字幕。然后,它评估这些动作是否与要求的动作描述相匹配,并提供改进建议
    在下一步中,相同的四个截图和生成的建议被输入到调整代理中。调整代理随后预测必要的调整,以使动作与提供的建议保持一致

有效的运动编辑的关键是为调整代理提供直观的界面。由于关节配置与运动之间的映射不直观,直接允许VLM编辑重定向运动的关节配置具有挑战性

  1. 此外,编辑下半身运动对于本项目并没有特别意义,因为在真实机器人实验中,下半身是由一个单独的控制器控制的。因此,作者的重点是上半身运动,它展示了更丰富的语义,并且在真实机器人上易于控制
  2. 作者设计了一组控制原语,通过逆运动学将左右手腕移动到特定方向,例如上下移动或朝向头部/胸部。关于这些原语的详细信息在附录中提供。调整代理可以组合这些原语以创建运动调整
  3. 然后应用这些调整,渲染一个新的视频,并返回到判断代理开始新的评估轮次。这个过程会重复进行,直到判断代理确认运动与语言描述一致,或者调整过程超过两轮

    由于控制原语仅限于空间手腕运动,作者在判断代理中增加了一个步骤,以确定当前运动是否可以通过编辑过程根据语言描述进行改进。如果改进不太可能,则跳过该过程。如果进行了任何调整,作者使用最终编辑轮次产生的身体关节配置序列Qb

    如果不需要编辑,直接使用重定向的运动Qr作为最终的身体关节配置序列Qb。最后,结合Qb、Qf和Qh来形成完整的身体关节配置序列Q∗

6.2.3 在真实机器人上的运动执行

直接在真实的人形机器人上执行整个身体关节配置序列Q^{*}是不可行的,因为运动学运动没有考虑到机器人的动力学和平衡

  1. 因此,按照Cheng等人的方法[26],作者在真实机器人实验中分离上下半身的运动
    比如将下半身运动简化为运动命令,并使用基于零力矩点(ZMP)的控制器[62]来进行运动。这些运动命令是从人形机器人骨盆投影到地面平面的轨迹中提取的
    We simplify the lower body motion into locomotion commands and utilize a Zero MomentPoint (ZMP)-based [62] controller for locomotion. These locomotion commands are extracted fromthe trajectory of the humanoid robot’s pelvis projected onto the ground plane.
  2. 同时,使用关节位置控制,在真实机器人上执行「从生成的关节配置序列Q^{*}来的」上半身运动
    Simultaneously, weexecute the upper-body motion from the generated joint configuration sequence Q∗on the real robotusing joint position control.

如此,通过分离运动和上半身运动,可以成功地在真实机器人上执行作者生成的运动

注:本文转载自blog.csdn.net的v_JULY_v的文章"https://blog.csdn.net/v_JULY_v/article/details/143086749"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top