当前位置: 首页 > 编程日记 > 正文

无需3D运动数据训练,最新人体姿势估计方法达到SOTA | CVPR 2020


作者 | Muhammed Kocabas

译者 | 刘畅

出品 | AI科技大本营(ID:rgznai100)

人体的运动对于理解人的行为是非常重要的。尽管目前已经在单图像3D姿势和动作估计方面取得了进展,但由于缺少用于训练的真实的3D运动数据,因此现有的基于视频的SOTA方法无法产生准确且自然的运动序列。为了解决这个问题,本文提出了“用于人体姿势和形状估计的视频推理”(VIBE)方法,它利用了现有的大规模运动捕捉数据集(AMASS)以及未配对的2D关键点标注数据。

本文最关键的创新在于它是一种对抗性学习框架,该框架利用AMASS数据集来区分真实的人类动作与本文利用时序姿态和动作回归网络产生的动作。本文定义了一个时序网络体系结构,并展示了在没有真实3D标签的情况下,能够产生序列级别的合理的运动序列。本文进行了大量实验,分析了运动性的重要性,并演示了VIBE在非常有挑战性的3D姿态估计数据集上的有效性,达到了SOTA性能。

代码和预训练模型已经开源:

https://github.com/mkocabas/VIBE

引言

从单幅图像估计3D人体姿势和动作方面已经取得了巨大的进展。这对于许多应用程序是十分有用的,通过身体的运动来获取人的行为。正如约翰逊所指出的那样,即使人体仅移动了一丁点也可以得出有关行为的信息。在这里,本文介绍如何利用时间信息来更准确地从单视频中去估算人体的3D运动。尽管这个问题已经研究了30多年,但我们可能会问,为什么仍然没有可靠的方法。本文的见解是,由于训练数据不足,之前的人类运动的时间模型不能够捕获到人类实际运动的复杂性和可变性。作者在这里用一种新的方法解决了这个问题,并且表明我们可以从单视频中显著改善3D人体姿势估计的生成和判别方法。

如图1(上图)所示,现有的视频姿势和动作估计方法无法产生逼真的且运动学上合理的预测结果。造成这种情况的主要原因是缺乏数据的3D标注,对于单个图像都比较难以获得,更不用说对视频而言。之前的一些研究工作,它们将室内3D数据集与具有2D标注或关键点伪标注的视频结合在一起。但是,这有几个限制:(1)室内3D数据集在拍摄对象的数量,运动范围和图像复杂度方面受到限制;(2)带有2D姿势标注的视频数量仍然不足以训练深层的神经网络;(3)伪2D标签对于3D人体运动的建模不可靠。

为了解决这个问题,本文利用了称为AMASS的最新的大规模3D运动捕捉数据集,该数据集足够丰富,可以训练模型学习人们如何移动。本文的方法是从未标注的视频中使用2D关键点去估计3D姿势序列,是为了判别器无法分辨估计运动与AMASS数据集中运动之间的差异。与之前的一些研究工作相同,本文也会使用3D关键点。本文方法的输出是SMPL人体模型格式的一系列姿势和动作参数。

具体来说,本文通过训练基于序列的生成对抗网络来利用两个未配对的信息来源。在这里,给定一个人的视频,作者训练了一个时间模型来预测每帧SMPL人体模型的参数,而运动判别器则试图区分真实序列和回归序列。通过这样做,可以激励回归器通过最小化对抗训练损失来输出表示合理运动的姿势。作者称该方法为VIBE,它表示“用于人体姿态和动作估计的视频推理”。

在训练过程中,“ VIBE”将未标注的图像作为输入,并使用在单个图像的人体姿态估计任务上预训练的卷积神经网络去预测SMPL人体模型参数。然后,运动判别器使用预测的姿态以及从AMASS数据集采样的姿态,为每个序列输出真实/伪造的标签。整个模型由对抗性损失以及回归损失进行监督,以最大程度地减少预测的和标注的关键点,姿态和动作参数之间的误差。本文使用了改进的SPIN方法,该方法使用基于模型的拟合器来训练深度回归器。但是,SPIN是一种单帧方法。为了处理视频序列,作者通过将SMPLify扩展到视频,使得SPIN方法可以融入时序信息。

在测试时,给定一段视频,作者使用预训练的HMR和时间模块来预测每帧的姿势和动作参数。并在多个数据集上进行了大量的实验,超过了所有最新技术;有关VIBE输出的示例,请参见图1(底部)。重要的是,作者证明了基于视频的方法在具有挑战性的3D姿态估计基准数据集3DPW和MPI-INF-3DHP上总是比单帧方法好得多。这清楚地证明了在3D姿势估计中使用视频的好处。

综上,本文的主要贡献如下:首先,作者扩展了Kolotouros等人的基于模型的fitting-in-the-loop训练过程,对视频进行了更准确的监督。其次,作者利用了AMASS运动数据集,以进行VIBE的对抗训练。第三,作者定量比较了不同时间架构的3D人体运动估计。第四,作者使用大型的运动捕捉数据集来训练鉴别器,从而获得了SOTA的结果。

方法

整个VIBE方法的结构如下图2所示,输入是一段单人的视频。对每一帧使用一个预训练的模型去提取特征,接下来使用双GRU组成的编码器去训练。然后特征会被用于回归SMPL人体模型的参数。最后会从AMASS数据集中采样样本,进入动作判别器,去区分真假样本,完成整个流程。

时序编码器(Temporal Encoder)

作者在训练该编码器的时候,使用了4个损失函数,如下,包括2D损失、3D损失、姿态损失和动作损失。

每一项的具体计算方法如下:

其中L_adv是动作判别器的损失。

动作判别器(Motion Discriminator)

作者使用动作判别器来判断生成的姿态序列是否对应于真实的序列。如下图所示:

判别器的损失项计算方式如下:

而动作判别器的目标函数如下:

实验

作者首先介绍了训练和测试用的数据集,接下来,将本文方法的结果与之前的基于帧和基于视频的最新方法(SOTA)进行比较,如表格1所示。此外还做了消融实验,展示本文的贡献。最后,图4展示了可视化的结果。

本文方法与SOTA方法对比

作者证明了使用3DPW训练集,是有助于改善模型对in-the-wild数据的处理能力。由于本文方法保持了时序姿态和动作的一致性,因此MPJPE和PVE指标得到了显著的提升。

消融实验(关于动作判别器)

可以观察到,一旦添加了生成器G,由于缺少足够的视频训练数据,与基于帧的模型相比,本文获得的效果会稍差一些,但视觉效果会更平滑。在Temporal-HMR方法中也观察到了这种效果。另外,使用动作判别器可以有助于改善G的性能,同时仍会产生更加平滑的预测结果。

消融实验(关于自注意力机制)

如表3所示,与静态池化相比,动作判别器中的动态特征聚合可显著的改善最终结果。使用自注意力机制,可以加强动作判别器在时间上的相关性。在大多数情况下,使用自注意力机制会产生更好的结果。

下面图4和图5是本文方法的可视化结果,可以发现它能够正确复原全局旋转,这个是之前的方法都难以解决的一个问题。

总结

尽管当前的3D人体姿态方法效果很好,但是其中大多数都是未经过训练去估计视频中的人体运动。这种运动对于理解人体行为至关重要。

在这里,本文探索了几种将静态方法扩展到可以处理视频的方法:(1)介绍了一种随时间传播信息的循环体系结构;(2)介绍了使用AMASS数据集引入运动序列的判别训练;(3)本文在判别器中引入了自注意力机制,使它学会了关注人体运动的时间结构;(4)本文还从AMASS学习了一种新的人体先验序列信息(MPoser),并表明它也有助于训练结果,虽然能力不如判别器。未来的工作,作者会探索使用视频来监督单帧的方法,比如看看光流信息是否可以帮助提升结果。

原文链接:

https://arxiv.org/abs/1912.05656

【end】

原力计划

《原力计划【第二季】- 学习力挑战》正式开始!即日起至 3月21日,千万流量支持原创作者!更有专属【勋章】等你来挑战

推荐阅读

  • Python数据清理终极指南(2020版)

  • 口罩检测识别率惊人,这个Python项目开源了

  • 谈论新型冠状病毒、比特币、苹果公司……沃伦•巴菲特受访中的 18 个金句,值得一看!

  • 天猫超市回应大数据杀熟;华为Mate Xs被热炒至6万元;Elasticsearch7.6.1发布

  • 一张图对比阿里、腾讯复工的区别

  • 不看就亏系列!这里有完整的 Hadoop 集群搭建教程,和最易懂的 Hadoop 概念!| 附代码

  • 你点的每个“在看”,我都认真当成了AI

相关文章:

Linux内核跟踪之trace框架分析【转】

转自:http://blog.chinaunix.net/uid-20543183-id-1930846.html------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一: 前言本文主要是对trace的框架做详尽…

写给Python开发者:机器学习十大必备技能

作者 | Pratik Bhavsar译者 | 明明如月,编辑 | 夕颜来源 | CSDN(ID:CSDNnews)有时候,作为一个数据科学家,我们常常忘记了初心。我们首先是一个开发者,然后才是研究人员,最后才可能是数学家。我…

Linux环境程序栈溢出原理

当在缓冲区中输入过多的数据时,缓冲区溢出就会发生,C语言提供了多种方法,可以使在缓冲区中输入的数据比预期的多。 局部变量可以被分配到栈上。这就意味着在栈的某个地方有一个固定大小的缓冲区。 而栈是向下增长的,而且一些重要…

[翻译]Joomla 1.5架构(十一) model 包

这个包包含了跟数据表交互的所有相关类 JModel This abstract class is the base class for all Joomla! data access objects. 所有数据访问类的抽象基类。 以下的类都分别实现对不同表的访问,不再翻译了。 Adapter Folder JModelCategory This is a data access …

度量快速开发平台端口映射的介绍

度量快速开发平台在客户中部署的时候,可能会想内网与外网用户同时使用。一般情况下,服务端都是部署在内网的,那外网用户要访问,就可能用到端口映射的功能。端口映射基本都是在路由器上进行。下面就是几个常用的路由器上的设置方法…

为什么栈和堆的生长方向不一样

栈的生长方向 8051的栈是向高地址增长,INTEL的8031、8032、8048、8051系列使用向高地址增长的堆栈;但同样是INTEL,在x86系列中全部使用向低地址增长的堆栈。其他公司的CPU中除ARM的结构提供向高地址增长的堆栈选项外,多数都是使用…

简单粗暴理解与实现机器学习之逻辑回归:逻辑回归介绍、应用场景、原理、损失以及优化...

作者 | 汪雯琦责编 | Carol来源 | CSDN 博客出品 | AI科技大本营(ID:rgznai100)学习目标知道逻辑回归的损失函数知道逻辑回归的优化方法知道sigmoid函数知道逻辑回归的应用场景应用LogisticRegression实现逻辑回归预测知道精确率、召回率指标的区别知道如…

生命的脆弱——悼念朋友

生命的脆弱让我们敲希望的钟啊多少祈祷在心中让大家看不到失败叫成功永远在让地球忘记了转动啊四季少了夏秋冬让宇宙关不了天窗叫太阳不西沉让欢喜代替了哀愁啊微笑不会再害羞让时光懂得去倒流叫青春不开溜让贫穷开始去逃亡啊快乐健康留四方让世界找不到黑暗幸福像花开放让大家…

VMware Tools手动下载

2019独角兽企业重金招聘Python工程师标准>>> VMware自己下载VMware Tools非常慢。你可以自己手动下载它。 下载地址为: version: 8.8.2 http://softwareupdate.vmware.com/cds/vmw-desktop/ws/8.0.3/ 选择最新的build,例如: http:…

Linux查看多核CPU利用率

1.top 使用权限:所有使用者 使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 说明:即时显示process的动态 d :改变显示的更新速度,或是在交谈式指令列( interactive command)按s q :没有任何延迟的显示速度&#xf…

仓央嘉措《那一天,那一月,那一年,那一世》

那一天,   我闭目在经殿的香雾中,   蓦然听见你颂经中的真言;     那一月,   我摇动所有的经筒,   不为超度,   只为触摸你的指尖;     那一年,   磕长头匍匐在…

AI+大数据助力抗疫,带你认识百度地图的新玩法!

作者 | Aholiab责编 | Carol出品 | AI科技大本营(ID:rgznai100)“喂,你好,我是百度地图的客服,请问是xx店铺对吗?”“嗯,什么事?”“您家在疫情期间还照常营业,对吗&…

Coursera Machine Learning 作业提交问题

关于作业提交问题的解决办法 Octave 4.0.0无法正常提交 解决办法:打两个补丁 补丁1:平台通用补丁2:Win,Linux or Mac 注:补丁文件中有安装说明

Linux查看进程内存状况

查看全部进程 通过top或ps -ef | grep 进程名 得到进程的PID。该命令可以提供进程状态、文件句柄数、内存使用情况等信息。 #pa aux 先查看进程 nginx的工作进程是5757 pmap命令 可以显示一个或多个进程所使用的内存数量。你可以使用这个工具来了解服务器上的某个进程分配…

用于小型图形挖掘研究的瑞士军刀:空手道俱乐部的图表学习Python库

作者 | Benedek Rozemberczki译者 | 天道酬勤 责编 | Carol出品 | AI科技大本营(ID:rgznai100)空手道俱乐部(Karate Club)是NetworkX Python软件包的无监督机器学习扩展库。详细可以参阅此处的文档:https://github.com…

电子商务创造的第二次产业机会

即将迎来冬至节气的这个周末,天寒地冻,却是电子商务的饕餮之季。淘宝网商交易大会刚刚在成都落下帷幕,而比网货交易会更令业界期待的“2009中国电子商务创新发展高峰论坛”也在北京顺利召开。大会由国内最大的电子商务软件及服务提供商ShopEx…

C#趣味程序---个位数为6,且能被3整出的五位数

using System;namespace ConsoleApplication1 {class Program{static void Main(string[] args){int count 0;int k;for (int i 1000; i < 9999; i){k i * 10 6;if (k % 3 0){Console.WriteLine(k);count;}}Console.WriteLine(count); }} }

c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值

第一种方法: 用委托,Form2和Form3是同一组 Form2 usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Text; usingSystem.Windows.Forms; namespaceTestMouseMove { pub…

TCMalloc

tcmalloc 业界最有名的内存分配库&#xff0c;当数google 的tcmalloc。Tcmalloc 在管理小 内存块时非常有效&#xff0c;而且能够避免在大内存分配时的mmap()系统调用。它在多 线程中的表现也不错能很好的减少锁碰撞(glibc 致命的问题)。Tcmalloc 现在基 本上成了mysql DBA 的标…

前沿技术探秘:知识图谱构建流程及方法

作者 | 郑毅封图| CSDN│下载于视觉中国出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;随着AI技术的发展和普及&#xff0c;当今社会已经进入了智能化时代。与以往不同的是&#xff0c;在这一波浪潮中&#xff0c;企业不仅是向数字化转型&#xff0c;更是向…

【HDOJ】3275 Light

这就是个简单线段树延迟标记。因为对bool使用了~而不是&#xff01;&#xff0c;wa了一下午找不到原因。 1 /* 3275 */2 #include <iostream>3 #include <sstream>4 #include <string>5 #include <map>6 #include <queue>7 #include <set>…

lighttpd+PHP安装

lighttpd版本&#xff1a;1.4.32 php版本&#xff1a;5.4.11 2013.2.3第一次 php版本&#xff1a;5.4.12 2013.3.14第二次修改 1.lighttpd官网地址 http://www.lighttpd.net 2.下载安装lighttpd #wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttp…

描述C#多线程中 lock关键字

本文介绍C# lock关键字&#xff0c;C#提供了一个关键字lock&#xff0c;它可以把一段代码定义为互斥段&#xff08;critical section&#xff09;&#xff0c;互斥段在一个时刻内只允许一个线程进入执行&#xff0c;而其他线程必须等待。 每个线程都有自己的资源&#xff0c;但…

从样本处理到决策模型,如何用NLP识别盗版资源?

作者 | 阿里文娱高级开发工程师千起出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;背景随着5G时代来临&#xff0c;新媒体行业快速发展&#xff0c;盗版传播平台多样化、形式多样化&#xff0c;版权方难以通过有限的人力实现最大限度的维权。根据MUSO报告显示2017年…

利用.htaccess绑定子域名到子目录(亲测万网可用)

http://www.xmgho.com/archives/783.html 利用.htaccess绑定域名到子目录,前提你的空间服务器必须支持apache的rewrite功能&#xff0c;只有这样才能使用.htaccess。如果你的空间是Linux服务器 一般默认都开启了的。绑定域名 登陆域名管理台&#xff08;如DNSPod&#xff09; 把…

Memcached内存池分析

针对Memcacged1.4.15代码 1.完整slabs内存池图 这是我画的memcached的slabs内存池对象关系图&#xff1a; 2.内存池数据结构 typedef struct {unsigned int size; /* 每个item的大小 */unsigned int perslab; /* 每个page中包含多少个item */void *slots; …

Google重磅发布开源库TFQ,快速建立量子机器学习模型

整理 | 弯月编辑 | 郭芮出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;近日&#xff0c;Google 与滑铁卢大学、大众汽车等联合发布 TensorFlow Quantum&#xff08;TFQ&#xff09;&#xff0c;一个可快速建立量子机器学习模型原型的开源库。TFQ提供了必…

.net3.5的安装与修复

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />.net3.5的安装与修复.net3.5正常安装的顺序是先安装windows IIS组件&#xff0c;然后再安装.net3.5安装包&#xff0c;而.net3.5安装包的下载地址可以去百度和google上搜一下&…

jquery easy ui 简单字段选择搜索实现

写的比较粗糙&#xff0c;望见谅。 要实现的效果&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>jQuery EasyUI Application Demo</title><link rel"stylesheet" t…

训练数据也外包?这家公司“承包”了不少注释训练数据,原来是这样做的……...

作者 | Lionbridge AI译者 | 天道酬勤 责编 | 徐威龙封图| CSDN│下载于视觉中国出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;在机器学习领域&#xff0c;训练数据准备是最重要且最耗时的任务之一。实际上&#xff0c;许多数据科学家声称数据科学的很…