伯克利曾经提出 DeepMimic框架,让智能体模仿参考动作片段来学习高难度技能。但这些参考片段都是经过动作捕捉合成的高度结构化数据,数据本身的获取需要很高的成本。而近日,他们又更进一步,提出了可以直接模仿 Youtube 视频人物高难度动作的新框架 SFV。

从 YouTube 视频中学习技能的智能体。

通过 SFV 学习到的智能体动作还原度很高,并且有很好的泛化至新环境的能力,例如从平地泛化到不规则地形。当然,仍然存在一些难以模仿的动作,例如某某鬼畜骑马舞。

无论是像洗手这样的日常任务还是惊人的杂技表演,人类都可以通过观察他人来学习一些令人难以置信的技能。随着 YouTube 等开源视频数据的激增,现在我们比以往任何时候都更容易找到感兴趣技能的视频片段。每分钟都会有 300 小时的视频传到 YouTube 上。但是,对机器人来说,从这些海量的视频中学习技能仍是一项非常艰巨的任务。大多数模仿学习方法都需要简洁的表征,比如从动作捕捉(mocap)中记录的表征。但是获取 mocap 数据相当麻烦,通常需要大量仪器。Mocap 系统容易局限于遮挡较小的室内环境,这会限制能够记录的技能类型。所以,如果智能体可以从视频片段中学习技能就再好不过了。

使用 Mocap 捕捉演员动作并复现 3D 角色的动作(电影《指环王》)。

在本文中,我们展示了一个从视频中学习技能的框架(SFV)。通过将计算机视觉领域最先进的技术与强化学习相结合,我们的系统使智能体能够从视频中学习各种技能。给定一个单目视频,视频中有人表演侧手翻或后空翻等动作,我们的智能体能够学习在物理模拟中再现该技能的策略,而无需任何手动姿势注释。

从视频中学习全身动作技能的问题在计算机图形学中受到了一些关注。以前的技术通常依赖于手工制作的控制结构,这些结构对要做的动作加了很大的限制。因此,这些方法限制了可以学习的技能类型,由此产生的动作也看起来非常不自然。最近,深度学习技术在 Atari 游戏和简单的机器人任务中进行视觉模仿取得了不错的结果。但是这些任务在演示和智能体的环境之间通常只有适度的领域变化,且主要是在动态相对简单的任务上进行持续控制。

框架

该框架包括三个阶段:姿势估计、动作重建和动作模仿。输入视频首先接受第一阶段姿势估计的处理,预测每一帧中角色的姿势。接下来,动作重建阶段将姿势估计结果固化为参考动作,并修复姿势估计结果可能带来的失真。最后,将参考动作输入到动作模仿阶段,利用强化学习训练智能体模仿动作。

整个流程包含三个步骤:姿势估计、动作重建及动作模仿。执行特定动作的人物视频片段和智能体模型充当输入,并学习一种控制策略,使智能体能够在物理模拟中再现该动作。

姿势估计

我们在一个给定的视频片段中使用一个基于视觉的姿势估计器来预测动作执行者在每一帧中的姿势 q_t hat。姿势估计器建立在人体网格恢复(human mesh recovery)的基础上,后者使用弱监督对抗性方法来训练姿势估计器以预测单目图像中的姿势。虽然需要姿势相关注释来训练姿势估计器,但一旦训练完毕,姿势估计器就可以应用于没有任何标注的新图像。

基于视觉的姿势估计器用于预测人物在每一帧中的姿势

动作重建

由于姿势估计器针对每个视频帧独立预测人物的姿势,因此各帧之间的预测可能不一致,导致出现抖动噪声。而且,尽管基于视觉的姿势估计器在近些年取得了显著进展,但它们仍然偶尔出一些大错,导致出现一些奇怪姿势。这些噪声可以呈现物理上无法模仿的姿势。因此,动作重建阶段的作用就是减轻这些噪声,以产生一些物理上更加可行的参照,使智能体更加容易模仿。为了做到这一点,我们优化了一种新的参考动作

,以实现以下目标:

公式中的 l_p(Q hat) 使得参考动作与原始姿势预测更加接近,L_sm(Q hat) 使得相邻帧的姿势更加相似,以生成更加连贯的动作。此外,W_p 和 W_sm 是不同损失的权重。

这一过程可以显著提高参考动作的质量,并且可以修复原始姿势预测里的大量噪声。

动作重建前后的参考动作对比。动作重建修复了一些失真,使参考动作更加流畅。

动作模仿

现在我们得到了参考动作

,接下来我们将训练智能体模仿该技能。动作模仿阶段使用与模拟 mocap 数据类似的强化学习方法。奖励函数鼓励策略将每一帧 t 中模仿智能体的姿势和重建参考动作 q^_t 之间的区别最小化,

这种简单的方法效果非常的好,智能体能够学习多种高难度杂技技巧,且每个技巧都仅通过一次视频展示习得。

智能体通过模仿视频片段学习多种技巧。

结果

总之,我们的智能体可以从 Youtube 的多种视频剪辑中学习 20 多种不同的技能。

我们的框架可以从视频演示中学习大量的技能组合。

即使智能体的形态和视频中的人物通常很不相同,其学习到的策略仍然可以重现很多种技能。作为更加极端的形态差异的示例,我们还可以训练一个虚拟的 Atlas 机器人来模仿人类的视频剪辑中的动作。

虚拟仿真机器人(Atlas)可以通过模仿视频剪辑学习多种动作组合。

使用虚拟智能体的一个好处是我们可以利用模仿过程来将其行为泛化到新环境中。这里我们模拟了让智能体学习适应不规则地形的动作,其中原始的视频剪辑记录的是在平地上的人物动作。

智能体在不规则的地形中也能做出模仿动作。

即使新环境和原始视频的环境很不相同,学习算法依然发展出了非常合理的策略来应对新的环境。

总而言之,我们的框架真的仅仅是使用了任何人都能想到用来解决视频模仿问题的明显方法。关键在于将问题分解为更好掌控的组成,为这些组成选择正确的方法,并有效地将它们整合到一起。然而,视频模仿技能仍然是一个极有挑战性的问题,目前仍然有大量的视频剪辑是我们无法重现的。

灵巧的舞步,例如江南 Style,仍然是很难模仿的。

但令人鼓舞的是,仅通过整合已有的技术,我们就能在这个难题上走出一大步。

论文:SFV: Reinforcement Learning of Physical Skills from Videos

  • 项目展示页:https://xbpeng.github.io/projects/SFV/index.html
  • 论文地址:https://xbpeng.github.io/projects/SFV/2018_TOG_SFV.pdf

基于动作捕捉的数据驱动的智能体可以生成高度自然的动作,而且与物理模拟相结合时可以提供对物理干扰、环境变化和形态差异的自然过程响应。动作捕捉仍然是最流行的动作数据来源,但是收集 mocap 数据通常需要配备大量仪器的环境和表演者。在本文中,我们提出了一种方法,使智能体能从视频中学习技能(SFV)。该方法基于深度姿势估计和深度强化学习,允许数据驱动的模仿利用网络上的大量公开视频片段,如 YouTube 上的视频。这有可能通过查询所需动作的视频记录来实现快速而简单的人物控制器设计。所产生的控制器对干扰具有鲁棒性,能够适应新设置,执行基本的对象交互,并能通过强化学习重新定位新形态。我们还进一步证明,该方法可以通过对观察到的姿势进行初始化得到的学习控制器进行正向模拟,进而根据静止图像预测人物的可能动作。我们的框架能够学习各种动态技能,包括运动、杂技和武术。

伯克利推出「看视频学动作」的AI智能体的更多相关文章

  1. 企业网管软件实战之看视频学装Cisco Works 2000

    650) this.width=650;" border="0" alt="125711349.jpg" src="http://img1. ...

  2. 「面向 offer 学算法」笔面试大杀器 -- 单调栈

    目录 前言 单调栈 初入茅庐 小试牛刀 打怪升级 出师试炼 前言 单调栈是一种比较简单的数据结构.虽然简单,但在某些题目中能发挥很好的作用. 最近很多大厂的笔试.面试中都出现了单调栈的题目,而还有不少 ...

  3. 看视频学SignalR—在微软虚拟学院学习SignalR

    SignalR把实时Web功能变得异常简单. 如果您希望在几个小时内对SignalR有一个直观的了解,观看微软虚拟学院(MVA)的视频教学Lighting Up Real-Time Web Commu ...

  4. 看视频学Bootstrap—在微软虚拟学院学习Bootstrap

    Bootstrap 是目前最流行的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB项目. 如果您希望在几个小时内对Bootstrap有一个直观的了解,观看微软虚拟学院(M ...

  5. 学测试,看视频?NONONO,除非这种情况

    001 前言 : 很久没周末写文章了,一个是要睡懒觉.另外一个是,周末写了大家也没有心思看(加班1周了,好不容易周末,你又让我学习 ?先睡个懒觉再说,去TM的学习). 然而,今天早早的5点就起床了,处 ...

  6. iOS模式详解—「runtime面试、工作」看我就 🐒 了 ^_^.

    Write in the first[写在最前] 对于从事 iOS 开发人员来说,当提到 ** runtime时,我想都可以说出来 「runtime 运行时」和基本使用的方法.相信很多开发者跟我当初一 ...

  7. iOS 模式详解—「runtime面试、工作」看我就 🐒 了 ^_^.

    引导 Copyright © PBwaterln Unauthorized shall not be *copy reprinted* . 对于从事 iOS 开发人员来说,所有的人都会答出「runti ...

  8. 「雕爷学编程」Arduino动手做(15)——手指侦测心跳模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  9. 精心整理「服务器Linux C/C++」 成长路程(附思维导图)

    前言 我不是名校毕业,更没有大厂的背景,我只是一个毕业不到 2 年的普普通通的程序员,在摸爬滚打的工作这段时间里,深知了有一个「完整的知识体系」是非常重要的.当事人非常后悔没有在大学期间知道这个道理- ...

随机推荐

  1. Android的界面设计工具——DroidDraw

    软件名称:DroidDraw 软件大小:489KB(Windows版本) 支持系统:Mac OS X/Windows/Linux 下载地址:http://code.google.com/p/droid ...

  2. Docker教程-01.安装docker-ce-18.06

    参考文章:http://www.runoob.com/docker/docker-tutorial.html 1.Docker简介 1)Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 ...

  3. C语言SQLite3基本操作Demo

    /************************************************************************** * C语言SQLite3基本操作Demo * 声 ...

  4. liunx服务程序的安装及配置

    1.系统运行级别:

  5. C/S架构和B/S架构

    本文内容整理自http://blog.csdn.net/tennysonsky/article/details/45062079 C/S架构和B/S架构是两种颇具影响力的软件体系结构.C/S是一种历史 ...

  6. SharePoint 列表多表联合查询

    在SharePoint平台二次开发中,我们有时需要涉及多表关联查询展示多列表中的不同字段信息:SharePoint和Sql数据表一样,也支持多表联合查询,但是不像Sql语句那样简单,有一定的局限性,需 ...

  7. 【idea】如何将idea的项目路径设置成代码目录和配置文件目录

    一:创建相应的目录 二.提升目录的等级

  8. grandstack graphql 开发模型

    当前grandstack 支持两类开发方式 js (使用Neo4j-graphql-js) 插件模型 js 模型 参考https://github.com/rongfengliang/grand-st ...

  9. Opengl研究4.0 走样与反走样

    Opengl研究4.0 走样与反走样 DionysosLai(906391500@qq.com) 2014-06-25          走样与反走样,也叫混淆与反混淆.所谓走样,是因为使用离散量(像 ...

  10. 使用 mysqldump 备份时的一些参数

    因为还没有用到 ThinkPHP 的迁移组件,暂时使用 mysqldump 来备份,并版本控制. 有几个参数需要用到. --skip-dump-date 不要完成时间. --skip-extended ...