人体姿态和形状估计的视频推理:CVPR2020论文解析

VIBE: Video Inference for Human Body Pose and Shape Estimation

论文链接:https://arxiv.org/pdf/1912.05656.pdf

Code and pretrained models are available at: https://github.com/mkocabas/VIBE

摘要

人体运动是理解行为的基础。尽管在单图像三维位姿和形状估计方面取得了进展,但由于缺乏用于训练的地面真实三维运动数据,现有的基于视频的最新方法无法生成精确的自然运动序列。为了解决这个问题,本文提出了“人体姿势和形状估计的视频推理”(VIBE),它利用现有的大规模运动捕捉数据集(AMASS)和未配对的、原始的二维关键点标注。本文的主要创新点是一个对抗性学习框架,它利用AMASS来区分真实的人体运动和由本文的时间姿势和形状回归网络产生的运动。本文定义了一个时间网络架构,并展示了对抗性训练              生成运动上合理的运动序列,而不使用原始地面真值3D标签。本文进行了大量的实验来分析运动的重要性,并证明了VIBE在挑战性的三维姿态估计数据集上的有效性,从而获得最先进的性能。

1.       Introduction

在测试时,给定一个视频,本文使用预先训练的HMR[37]和本文的时间模块来预测每个帧的姿势和形状参数。本文在多个数据集上进行了广泛的实验,并优于所有最先进的方法;VIBE的输出示例见图1(底部)。重要的是,本文的基于视频的方法在具有挑战性的三维姿态估计基准3DPW[66]和MPI-INF-3DHP[44]上总是比单帧方法有显著的优势。这清楚地说明了在三维姿势估计中使用视频的好处。

总之,本文的主要贡献是:

首先,本文扩展了Kolotouros等人[37]基于模型的环内训练过程。通过视频获得更准确的监控。

其次,本文收集了大量的运动数据,用于对抗性的振动训练。这鼓励回归者产生现实的和运动上合理的运动。

第三,本文定量比较了不同的时间结构对三维人体运动估计的影响。

第四,本文使用一个运动捕捉数据的大数据集来训练鉴别器,从而获得最新的结果。

2.       Related Work

从一个图像的三维姿势和形状。参数化三维人体模型[4,42,50]由于能够捕捉人体形状的统计信息,并提供可用于多种任务的三维网格,因此被广泛用作人体姿态估计的输出目标。早期的研究探索了“自下而上”的回归方法、“自上而下”的优化方法,以及使用关键点和轮廓作为输入的多摄像机设置[1,8,19,57]。这些方法很脆弱,需要人工干预,或者不能很好地推广到野外的图像。Bogo等人[11]开发了SMPLify,这是第一个端到端的方法之一,它利用CNN的关键点检测器[53]将SMPL身体模型设置为图像。Lassneret al.[39]使用剪影和关键点进行定位算法。最近,深层神经网络被训练成直接从像素回归SMPL体模型的参数[21,29,48,51,60,62]。由于缺乏原始的的3D地面真值标签,这些方法使用从2D关键点重新投影损失获得的弱监督信号[29、60、62],使用身体/部位分割作为中间表示[48、51],或使用人在回路中[39]。Kolotouros等人 [37]通过在训练循环中使用SMPLify,以协作的方式将基于回归和基于优化的方法结合起来。在训练的每个步骤中,深网络[29]初始化SMPLify优化方法,将身体模型设置为二维关节,生成用于监督网络的改进型fit。另外,还提出了几种非参数体网格重建方法[38、54、64]。瓦罗尔等人 [64]使用体素作为输出体表示。Kolotouros等人 [38]使用图卷积网络直接回归模板体网格的顶点位置[34]。Saitoetal [54]使用像素对齐隐式函数预测身体形状,然后进行网格重建。尽管它们能够从单个图像中捕捉人体,但当应用于视频时,上述方法会产生不稳定的结果。

3D pose and shape from video

GANs for sequence modeling

3.       Approach

VIBE的总体框架如图2所示。给定一个人的输入视频

(长度T),本文使用预先训练的CNN提取每一帧的特征。本文训练一个由双向门控递归单元(GRU)组成的时间编码器,它输出包含从前后帧合并的信息的潜在变量。

3.1.  Temporal Encoder

使用当前架构背后的直觉是,后面的帧可以从前面关于人类姿势的视频信息中获取。当一个人的姿势模棱两可或身体在一个给定的框架中被部分遮挡时,这是有用的。在这里,过去的信息可以帮助解决和约束姿势估计。时间编码器充当一个生成器,给定一系列帧

,它在每一帧中输出相应的身体姿势和形状。T帧序列最初被馈送到卷积神经网络f,f作为特征生成函数,并为每个帧

输出一个向量

。这些是发送到门控递归单元(GRU)层[13],该层基于先前帧为每个帧g(f1),…,g(fT)生成潜在特征向量gi。然后,本文使用gi作为T回归的输入,迭代反馈如[29]所示。回归器以平均姿态Θ初始化,并在每次迭代k中采用输入电流参数Θk和特征gi。[37],本文使用6D连续旋转表示[70]而不是轴角度。在回归训练过程中,本文可以选择采用类似于[37]的环内设置方法。本文利用目标函数中的形状一致性和姿态平滑项,扩展了全帧匹配算法SMPLify[11]。总的来说,所提出的时间编码器的损耗loss由2D(x)、3D(x)、姿态(θ)和形状(β)损耗组成。

3.2.  Motion Discriminator

在[29]中使用的身体鉴别器和重投影损失强制生成器生成与2D关节位置对齐的可行真实世界姿势。然而,单个图像约束不足以解释姿势序列。当忽略运动的时间连续性时,多个不精确的姿态可以被认为是有效的。为了缓解这种情况,本文使用一个运动鉴别器DM来判断生成的姿势序列是否与区域列表序列相对应。将生成器的输出ˆΘ作为图3所示的多层GRU模型fM的输入,该模型fM在hi=fM(ˆΘi)的每个时间步骤i估计潜在码hi。最后,一个线性层预测一个值∈[0,1],表示ˆΘ属于貌似人类运动流形的概率。

3.3.  Training Procedure

本文使用ResNet-50网络[22]作为图像编码器,在单帧姿态和形状估计任务[29,37]上预先训练,输出fi∈R2048。与[30]类似,本文预先计算每个帧的fi,而不更新ResNet-50。本文使用T=16作为序列长度,最小批量大小为32,这使得本文的模型可以在单个Nvidia RTX2080ti GPU上训练。对于时间编码器,本文使用一个隐藏大小为1024的2层GRU。SMPL回归器有2个完全连接的层,每个层有1024个神经元,然后是输出ˆΘ∈R85的最终层,包含姿势、形状和相机参数。生成器的输出作为假样本输入到DM中,同时将地真值运动序列作为真值样本。运动鉴别器结构与时态编码器相同。对于自我注意,本文使用2个MLP层,每个层有1024个神经元和tanh激活来学习注意权重。最终线性层预测每个样本的单个假/真概率。与最近的环路内设置方法[37]类似,时间SMPLify设置算法用ˆΘ初始化。临时SMPLify使用L-BFGS优化器和一个强大的Wolfe行搜索[47]。本文还使用Adam优化器[32],G和DM的学习率分别为

。最后,损失函数中的每个项都有不同的加权系数。

4.      
Experiments Results

本文首先描述用于培训和评估的数据集。接下来,本文将本文的结果与以前基于帧和视频的最新方法进行比较。本文还进行了融合实验,以显示本文的贡献的效果。最后,本文在图4中报告定性结果。

训练

在前面的工作[29,30,37]之后,本文使用了一批混合的二维和三维数据集。PennAction[69]和PoseTrack[3]是本文使用的唯一地面真值二维视频数据集,而InstaVariety[30]和Kinetics-400[31]是使用二维关键点检测器注释的伪地面真值数据集[12,35]。本文使用Kinetics-400来补偿InstaVariety数据集丢失的部分。对于3D注释,本文使用MPI-INF3DHP[44]和Human3.6M[26]中的3D关节注释。AMASS[43]用于对抗性训练,以获得真实样本。本文还使用3DPW[66]训练集进行融合实验。请注意,本文更希望用3DPW数据集进行融合实验,以证明本文的模型在野外环境下的强度。没有它的结果也被报告与以前的方法公平比较,这些方法没有使用3DPW进行训练。

评估

本文对3DPW[66]、MPI-INF3DHP[44]和人类3.6M[26]进行了评估。本文报告有或没有3DPW训练集的结果,以便与以前的工作直接比较。报告了Procrustes对齐的平均每关节位置误差(PA-MPJPE)、平均每关节位置误差(MPJPE)、正确关键点百分比(PCK)和逐顶点误差(PVE),并与基于帧和时间的最新方法进行了比较。还报告了3DPW的加速度误差,该误差是根据地面真实值与预测的各关节三维加速度之差计算的,单位为mm/s2。

4.1.  Comparison to state-of-the-art-results

在表1中,本文将本文的模型(VIBE)与以前基于帧和时间的最新方法进行了比较。VIBE(direct comp.)对应于本文的模型,使用的数据集与Temporal HMR[30]相同。另一方面,VIBE使用3DPW训练集。作为标准实践,以前的方法不使用3DPW,但是本文想证明使用3DPW进行训练有助于提高本文模型的野外性能。表1中的模型使用SPIN[37]中的预训练HMR作为特征提取器。本文观察到本文的方法改进了自旋的结果,这是以前的最新技术。此外,VIBE在具有挑战性的野生3DPW和MPIINF-3DHP数据集中的性能显著优于所有以前的基于帧和时间的方法,同时取得了与人类最先进的方法3.6M相同的结果。请注意,Human3.6M是一个室内数据集,受试者数量有限,背景变化最小,而3DPW和MPI-INF-3DHP则包含具有挑战性的野生视频。本文观察到MPJPE和PVE指标的显著改进,因为本文的模型鼓励时间姿势和形状的一致性。这些结果验证了本文的假设,即人体运动学的开发对于改进视频中的姿态和形状估计是非常重要的。除了重建指标,例如MPJPE、PA-MPJPE,本文还报告加速误差(表1)。与基于基线帧的HMR[29,37]方法相比,本文获得了更平滑的结果,而时间HMR[30]产生了更平滑的预测。然而,本文注意到时间HMR应用了侵略性平滑,导致在快速运动的视频上精度差。本文在图5中对振动和时间HMR的定性比较中证明了这一发现。这张图描述了如何通过时间HMR平滑姿态预测,同时骶骨的准确性。图4中所示的交替视点可视化清楚地表明,本文的模型能够恢复正确的全局旋转,这是以前方法的一个严重问题,通过对MPJPE和PVE度量的改进也验证了这一点。

4.2.  Ablation Experiments

表2显示了有或没有运动鉴别器DM的模型的性能。首先,本文使用文献[29]提出的原始HMR模型作为特征抽取器。一旦本文添加了生成器G,由于缺乏足够的视频训练数据,本文得到的结果比基于帧的模型稍差但更平滑。在时间HMR方法中也观察到了这种影响[30]。然后,使用DM有助于提高G的性能,同时还能产生更平滑的预测。当本文使用来自[37]的预训练HMR时,本文观察到当使用DM超过仅使用G时类似的增强。本文还试验了MPoser作为对抗DM的强基线。MPoser在损失函数中充当正则化器,以确保姿势序列预测的有效性。尽管MPoser的性能比只使用G要好,但它比DM差。对此,一个直观的解释是,尽管AMASS是最大的mocap数据集,但它无法覆盖野生视频中所有可能出现的人体运动。由于KL散度项[61],VAEs过度正则化,因此无法捕捉在AMASS中表现不佳的真实运动。相比之下,GANs并没有遭受这个问题的困扰[16]。注意,当在AMASS上训练时,MPoser在一个保持测试集上给出4.5mm的PVE,而基于帧的对应VPoser给出6.0mm的PVE重建误差。

5.      
Conclusions

虽然目前的三维人体姿态方法效果良好,但大多数方法都没有经过训练来估计视频中的人体运动。这种运动对于理解人类行为至关重要。在这里,本文探索了几种将静态方法扩展到视频的新方法:

(1)
本文引入了一种随时间传播信息的递归架构;

(2)
利用AMASS数据集对运动序列进行判别训练;

(3)
本文在鉴别器中引入自我注意,使它学会关注人类运动的重要时间结构;              (4) 本文还从AMASS中学习了一个新的人类序列先验(MPoser),并证明了它也有助于训练put不如鉴别器强大。

本文仔细评估了本文在融合研究中的贡献,并在视频基准数据集上展示了每种选择对本文最先进的表现的贡献。这为视频训练的价值提供了明确的证据。

未来的工作应该探索使用视频监控单帧方法,检查密集的运动线索(光流)是否有更大的帮助,使用运动消除歧义多人情况下,利用运动轨迹进行遮挡跟踪。此外,本文的目标是实验其他注意编码技术,如坐标转换,以更好地估计身体运动学。

人体姿态和形状估计的视频推理:CVPR2020论文解析的更多相关文章

  1. 将视频插入视频:CVPR2019论文解析

    将视频插入视频:CVPR2019论文解析 Inserting Videos into Videos 论文链接: http://openaccess.thecvf.com/content_CVPR_20 ...

  2. 视频教学动作修饰语:CVPR2020论文解析

    视频教学动作修饰语:CVPR2020论文解析 Action Modifiers: Learning from Adverbs in Instructional Videos 论文链接:https://a ...

  3. 分层条件关系网络在视频问答VideoQA中的应用:CVPR2020论文解析

    分层条件关系网络在视频问答VideoQA中的应用:CVPR2020论文解析 Hierarchical Conditional Relation Networks for Video Question ...

  4. CVPR2020论文解析:视频语义检索

    CVPR2020论文解析:视频语义检索 Fine-grained Video-Text Retrieval with Hierarchical Graph Reasoning 论文链接:https:/ ...

  5. 慢镜头变焦:视频超分辨率:CVPR2020论文解析

    慢镜头变焦:视频超分辨率:CVPR2020论文解析 Zooming Slow-Mo:  Fast and Accurate One-Stage Space-Time Video Super-Resol ...

  6. Facebook提出DensePose数据集和网络架构:可实现实时的人体姿态估计

    https://baijiahao.baidu.com/s?id=1591987712899539583 选自arXiv 作者:Rza Alp Güler, Natalia Neverova, Ias ...

  7. 快速人体姿态估计:CVPR2019论文阅读

    快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...

  8. 人体姿态的相似性评价基于OpenCV实现最近邻分类KNN K-Nearest Neighbors

    最近学习了人体姿态的相似性评价.需要用到KNN来统计与当前姿态相似的k个姿态信息. 假设我们已经有了矩阵W和给定的测试样本姿态Xi,需要寻找与Xi相似的几个姿态,来估计当前Xi的姿态标签. //knn ...

  9. 手把手教你在Modelarts平台上进行视频推理

    摘要:为了方便小伙伴们进行视频场景的AI应用开发,Modelarts推理平台将视频推理场景中一些通用的流程抽取出来预置在基础镜像中,小伙伴们只需要简单地编写预处理及后处理脚本,便可以像开发图片类型的A ...

随机推荐

  1. 仅用一句SQL更新整张表的涨跌幅、涨跌率

    问题场景 各大平台店铺的三项评分(物流.服务.商品)变化情况: 商品每日价格的变化记录: 股票的实时涨跌浮: 复现场景 表:主键ID,商品编号,记录时的时间,记录时的价格,创建时间. 问题:获取每个商 ...

  2. hdu4499 搜索

    题意:       给你一个棋盘,最大是5*5的,问你最多可以放多少个炮,炮和炮之间不可以相互攻击,这块只的是只能走一步,不存在两个炮中间三个棋子的情况.. 思路:    刚开始想的是把所有的空位置都 ...

  3. Python中的socket网络模块

    目录 Socket 服务端(server.py) 客户端(client.py) socket中的一些常用方法 Socket 对象(内建)方法 Python Internet 模块 Python3 提供 ...

  4. Python中Scapy网络嗅探模块的使用

    目录 Scapy scapy的安装和使用 发包 发包和收包 抓包 将抓取到的数据包保存 查看抓取到的数据包 格式化输出 过滤抓包 Scapy scapy是python中一个可用于网络嗅探的非常强大的第 ...

  5. Portswigger web security academy:SQL injection

    Portswigger web security academy:SQL injection 目录 Portswigger web security academy:SQL injection SQL ...

  6. 【python】Leetcode每日一题-螺旋矩阵

    Leetcode每日一题-螺旋矩阵 [题目描述] 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素. 示例1: 输入:matrix = [[1,2,3], ...

  7. Mybatis学习之自定义持久层框架(一) 为什么要用框架而不直接用JDBC?

    前言 说起Mybatis,相信大家都不会感到陌生,它是一款优秀的持久层框架,应用于java后端开发中,为客户端程序提供访问数据库的接口. 我们都知道,JDBC是Java语言中用来规范客户端程序如何来访 ...

  8. 面试侃集合 | ArrayBlockingQueue篇

    面试官:平常在工作中你都用过什么什么集合? Hydra:用过 ArrayList.HashMap,呃-没有了 面试官:好的,回家等通知吧- 不知道大家在面试中是否也有过这样的经历,工作中仅仅用过的那么 ...

  9. utf8字符集下的比较规则

    前言: 在MySQL中,比较常用的字符集是utf8和utf8mb4.这两个字符集是类似的,utf8是utf8mb3的别名,所以之后在MySQL中提到utf8就意味着使用1~3个字节来表示一个字符,如果 ...

  10. cmake和make

    学计算机的,在写代码的时候,IDE安装好,环境按着教程配置好,就直接代码了,编辑器的具体原理只是一知半解,现在来系统学习一下,为了方便以后学习HElib! make和cmake 写程序大体步骤为: 1 ...