原文链接

快手Y-tech  原创

最新技术干货分享
近年来,随着人工智能技术的发展和移动互联网的兴起,基于视频的低成本动作捕捉技术逐渐在游戏制作、虚拟主播、AR/VR等领域展露头角。低成本视频动捕技术大大拓展了动捕技术的受众范围,给普通用户带来了全新的内容生产体验,具有广阔的发展前景。本文主要介绍视频动捕技术的基本原理和最新的技术进展。
背景
动作捕捉是一种记录并处理人体动作的技术,已在电影、游戏、动画等领域获得广泛应用。常用的动作捕捉技术从原理上说可分为光学式、惯性式、机械式、电磁式等,例如大家耳熟能详《阿凡达》、《阿丽塔》等电影便是通过光学动捕技术采集演员的表演动作。主流的光学动捕技术可以分为主动式和被动式两种,其中被动式光学动捕的基本原理是在演员穿戴的动捕衣上贴可以反射红外线的反光球,用大量红外相机定位反光球的空间位置实现运动追踪,具有很高的捕捉精度(毫米级)和采集帧率(数百fps),应用相对较为广泛。光学动捕技术的主要缺点是价格昂贵,需要大量复杂的硬件设备和严格的演播室环境。惯性动捕技术是目前常用的另一种动捕技术,它的基本原理是使用包含陀螺仪、加速度计和磁力计等传感器的惯性测量单元(Inertial Measurement Unit,IMU)来测量人体骨骼的运动信息。一套惯性动捕设备包含的IMU数量通常在几个到十几个,价格在几千到上万元不等,仍难以普及到普通用户。

图1:电影《阿丽塔》中使用的光学动作捕捉技术
(图片来源:ALITA BATTLE ANGEL Performance Capture + Behind The Scenes Clips,https://www.youtube.com/watch?v=9YBRj3BEkEc)
近年来,随着人工智能技术的发展,视频动作捕捉技术逐渐展露头角。根据输入视频类型的不同,可以分为基于RGB相机和基于RGB+深度相机的动捕。此外,根据输入视频数量的不同,又可以分为单视角动捕和多视角动捕。考虑到深度相机需要额外的硬件支持,多视角动捕对拍摄的要求较高,本文主要考虑基于RGB相机的单视角视频动捕技术。使用基于RGB相机的单视角视频动捕技术,用户仅需要一部手机便可随时随地拍摄和采集,大大扩展了动捕技术的使用范围,提升了易用性。
单视角视频动捕技术的介绍
视频动捕技术的基础是从单张RGB照片中估计人体三维姿态,在学术界该问题通常被称为“3D Pose Estimation”。3D人体姿态估计的难度要显著高于经典的“2D Pose Estimation”任务,其主要原因在于深度方向的模糊性和庞大的人体姿态空间。此外,肢体遮挡、体型、衣着、肤色、背景、光照等因素进一步增加了该问题的复杂性。
图2:3D人体姿态估计示例[4]
从估计的目标上看,3D人体姿态估计任务可以分为估计3D关键点坐标和估计参数化人体模型的关节旋转两类,其中人体关节旋转可以通过重定向(Retargeting)直接用于驱动虚拟角色,使用起来更加便利。目前学术界广泛使用的参数化人体模型是马克斯·普朗克研究所(Max Planck Institute,MPI)提出的SMPL(Skinned Multi-Person Linear)模型[1],该模型通过线性蒙皮(Linear  Blend Skining,LBS)将人体网格(mesh)顶点绑定到24个人体关节,并定义了10个Blendshape系数控制体型。通过控制模型的姿态(pose)参数,遍可驱动模型做出不同的动作。
目前,基于参数化人体模型的3D人体姿态估计算法大致可以分为两类:基于优化的方法和基于深度学习的回归方法。
1)基于优化的方法:此类方法通过建立优化问题求解人体模型参数。例如SMPLify[2]等方法在优化问题的能量项中约束人体参数化模型3D关键点的投影和2D关键点检测结果匹配。由于从2D信息恢复3D的模糊性,可能存在大量满足投影约束的解,而这些解并不一定在可行的人体姿态空间中。因此,需要在优化问题中引入pose的先验约束,常见的pose先验建模方法包括高斯模型、混合高斯模型(Gaussian Mixture Model,GMM)和变分自编码器(Variational Auto-Encoder,VAE)[8]等。基于优化的方法原理清晰,结果较为可控,但缺点是对优化的初值较为敏感。此外由于3D关键点的投影受人体体型影响较大,而SMPLify[2]等方法中舍弃了图像的细节信息,仅利用了从图像中提取的2D关键点位置,难以准确地估计人体体型,因此精度往往不够高。后续的MonoPerfCap[10]等工作通过预先扫描和绑定演员模型,在优化中约束模型投影和分割Mask一致,能够获得较高的捕捉精度,但对于扫描模型的依赖限制了其应用范围。
2)基于深度学习的回归方法:此类方法通过训练深度神经网络直接从单张RGB图片回归人体模型参数,如HMR[3]、SPIN[4]等工作,其主要挑战在于缺少丰富的3D训练数据。由于人工标注人体3D姿态的难度极高,目前使用的配对3D训练数据主要通过光捕、惯捕等系统在室内采集获得,如H36M、Panoptic Studio等数据集,这些数据在动作的丰富度和背景的复杂度上都较为欠缺,很难泛化到复杂的动作和室外场景。为解决这一问题,现有工作通常会引入2D关键点、人体分割mask等2D信息作为中间表示或用于构建弱监督损失函数,一些工作还通过渲染虚拟人物和场景扩充训练数据,或采集室外多视角训练数据通过多视角一致性约束提升3D精度。例如,[9]中使用关键点坐标作为中间监督,并提出利用bilinear transform融合关键点信息和图像细节信息后回归人体模型参数,能够显著提升预测精度。[11]中使用Batch Mixture Normalization降低真实数据和虚拟数据之间Domain的差异,提高虚拟训练数据的泛化能力。
上述两种方法各有优缺点,一些工作中也会将两者结合以获得更好的效果。例如,SPIN通过在网络训练和优化方法间迭代,不断提升室外训练数据上的3D监督质量;Monocular Total Capture[5]中使用神经网络预测关节的3D朝向,并将该信息作为优化问题中的约束;VNect[12]中训练神经网络回归2D Heatmap和编码了3D关键点位置信息的Location-map,再通过fitting人体骨架获得3D人体姿态;XNect[13]则进一步优化了网络结构,将该方法拓展到多人场景。

对于视频输入,时域连续性的要求对动捕算法的性能提出了更高的挑战。使用单帧的3D人体姿态估计方法逐帧处理会面临动作不连续、抖动等问题,造成视觉体验不佳。现有方法往往会通过引入时域约束、后处理滤波等方法改善。例如,Monocular Total Capture[5]中使用光流约束相邻帧mesh顶点投影的位置关系。与此同时,视频输入也提供了额外的时域信息,利用好时域信息和人体动作的先验有助于降低3D人体姿态估计问题的模糊性。例如,3D Human Dynamics[6]中使用了时域卷积融合若干相邻帧的feature用于回归3D Pose,并构建了大量包含2D Pose检测结果的弱监督视频训练数据。 VIBE[7]则使用GRU + Self-Attention实现Temporal Encoder,同时引入Motion Discriminator鉴别网络预测的动作和人体动作库动作,保证网络预测的动作在合理的人体动作空间中。

图3:VIBE[7]网络架构

3D人体姿态估计算法的精度通常使用MPJPE(Mean Per Joint Position Error)衡量,MPJPE定义为预测关键点位置和groundtruth之间的平均欧式距离,并且关键点位置通常采用root-relative的表示形式,其计算方法如下:

由于MPJPE受global旋转的影响较大,现有工作中同时也会采用PA-MPJPE(Procrustes Analysis MPJPE),即先对网络预测的关键点进行刚性变换(平移,旋转和缩放)向ground truth对齐后,再计算MPJPE。目前一些代表性工作在H36M和3DPW数据集上的MPJPE和PA-MPJPE精度总结如下:

可以看到,目前性能最好的方法在室外3DPW数据集上的PA-MPJPE约为5cm。
虽然视频动捕技术近年来已取得了很大的进步,但整体性能和传统的惯捕、光捕等方案仍有较大差距,特别是在自遮挡等复杂场景下,很容易出现检测错误。目前,除了提升3D精度外,视频动捕技术的研究方向还包括多人视频动捕、提升动作真实感的物理仿真技术、同时捕捉脸和手部动作的表演捕捉(Performance Capture)技术等。
快手落地应用
针对快手主App魔表、虚拟主播、动画制作等方面的应用需求,Y-tech团队自研了包括移动端和服务端在内的多种视频动捕算法。以移动端为例,Y-tech自研的移动端视频动捕算法能够通过手机后置摄像头实现对用户肢体动作的实时捕捉,并基于快手自研的YCNN推理引擎实现高中低端机型全覆盖,让更多的用户体验到视频动捕技术带来的新奇体验。目前,快手主App已上线了“跟拍小熊”等魔表,未来还将基于视频动捕技术开发更多有趣好玩的应用。
结束语
本文简要介绍了视频动捕技术的基本原理和最新进展,以及在快手魔表中的应用。视频动捕技术具有很大的技术潜力和丰富的应用场景,未来我们将持续提升视频动捕技术的性能,不断探索更多的落地场景,为用户带来全新的内容体验。
参考文献
[1] Matthew Loper, Naureen Mahmood, Javier Romero, Gerard Pons-Moll, and Michael J Black. SMPL: A skinned multiperson linear model. ACM transactions on graphics (TOG), 34(6):248, 2015.
[2] Federica Bogo, Angjoo Kanazawa, Christoph Lassner, Peter Gehler, Javier Romero, and Michael J Black. Keep it SMPL: Automatic estimation of 3D human pose and shape from a single image. In ECCV, 2016.
[3] Angjoo Kanazawa, Michael J Black, David W Jacobs, and Jitendra Malik. End-to-end recovery of human shape and pose. In CVPR, 2018.
[4] Nikos Kolotouros, Georgios Pavlakos, Michael J. Black, and Kostas Daniilidis. Learning to reconstruct 3D human pose and shape via model-fitting in the loop. In ICCV, 2019.
[5] Xiang, Donglai and Joo, Hanbyul and Sheikh, Yaser. Monocular total capture: Posing face, body, and hands in the wild. In ICCV, 2019.
[6] Angjoo Kanazawa, Jason Y. Zhang,, Panna Felsen and Jitendra Malik. Learning 3D Human Dynamics from Video. In CVPR, 2019.
[7] Kocabas, Muhammed and Athanasiou, Nikos and Black, Michael J.  VIBE: Video Inference for Human Body Pose and Shape Estimation. In CVPR, 2019.
[8] Pavlakos, Georgios and Choutas, Vasileios and Ghorbani, Nima and Bolkart, Timo and Osman, Ahmed A. A. and Tzionas, Dimitrios and Black, Michael J. Expressive Body Capture: 3D Hands, Face, and Body from a Single Image. In CVPR, 2019.
[9] Sun, Yu and Ye, Yun and Liu, Wu and Gao, Wenpeng and Fu, YiLi and Mei, Tao. Human Mesh Recovery from Monocular Images via a Skeleton-disentangled Representation. In ICCV 2019.
[10] Xu, Weipeng and Chatterjee, Avishek and Zollhofer, Michael and Rhodin, Helge and Mehta, Dushyant and Seidel, Hans-Peter and Theobalt, Christian. MonoPerfCap: Human Performance Capture From Monocular Video. In SIGGRAPH, 2018.
[11] Tyler Zhu, Per Karlsson, and Christoph Bregler. SimPose: Effectively Learning DensePose and Surface Normals of People from Simulated Data. In ECCV, 2020.
[12] Mehta, Dushyant and Sridhar, Srinath and Sotnychenko, Oleksandr and Rhodin, Helge and Shafiei, Mohammad and Seidel, Hans-Peter and Xu, Weipeng and Casas, Dan and Theobalt, Christian. VNect: Real-time 3D Human Pose Estimation with a Single RGB Camera. In SIGGRAPH, 2017.
[13] Dushyant Mehta, Oleksandr Sotnychenko, Franziska Mueller, Weipeng Xu, Mohamed Elgharib, Pascal Fua, Hans-Peter Seidel, Helge Rhodin, Gerard Pons-Moll, Christian Theobalt. XNect: Real-time Multi-Person 3D Motion Capture with a Single RGB Camera. In SIGGRAPH, 2020.
快手Y-tech介绍
Y-tech团队是快手公司在人工智能领域的探索者和先行者,致力于计算机视觉、计算机图形学、机器学习、AR/VR等领域的技术创新和业务落地,不断探索新技术与新用户体验的最佳结合点。Y-tech在北京、深圳、杭州、Seattle、Palo Alto有研发团队,成员来自于国际知名高校和公司。
长期招聘(全职和实习生):计算机视觉、计算机图形学、多模态技术、机器学习、AI工程架构、美颜技术、特效技术、性能优化、平台开发、工具开发、技术美术、产品经理等方向的优秀人才。如果你对我们做的事情感兴趣,欢迎联系并加入我们,一起做酷炫的东西,创造更大的价值。联系方式:ytechservice@kuaishou.com
继续阅读

阅读原文

侵删 建议大家阅读微信公众号原文 阅读体验比较好

浅谈低成本视频动作捕捉技术相关推荐

  1. 视频人体动作捕捉技术

    视频人体动作捕捉技术 FesianXu 2020/08/25 at UESTC 前言 人体动作捕捉技术(简称人体动捕技术)是影视游戏行业中常用的技术,其可以实现精确的人体姿态,运动捕捉,但是用于此的设 ...

  2. 短视频动作识别技术简述

    1总体介绍 短视频在当前多媒体环境中占据着巨大流量,有效理解视频内容对于数据分发发挥着重要作用,动作识别是视频内容理解的一个重要方向.当前图像识别技术已趋于成熟,但动作识别仍未达到理想效果,相比于图像 ...

  3. 高门槛的动作捕捉技术,真的会成为VR行业灾难的缔造者吗?

    既已入局,还请认真对待. 在虚拟现实领域,动作捕捉技术中的光学定位技术和基于传感器的惯性动作捕捉技术是绑定在一起的,因为如果想要实现VR的完全互动和真实沉浸感,这两个技术缺一不可. 但相比较于硬件设备 ...

  4. 浅谈云计算和大数据技术

    浅谈云计算和大数据技术 背景: 随着计算机技术的发展,数据量日益增长,现有技术也很难满足业务的发展需求,在代码的层层迭代和优化之后,还是很难满足数据的增长需求,迫切需要一项新的技术来从事数据计算,因为 ...

  5. 基于惯性动作捕捉技术进行快速动画制作教程

    长久以来动画制作流程上有着诸多不可回避的问题,尤其在于角色动画的制作周期和动画效果方面,一般来说,每一秒钟的角色动画都需要动画师手动关键帧制作耗费8小时才能完成,也就是说,一个动画师每个月只能制作出2 ...

  6. 浅谈短视频背后的社会道德伦理问题(个人观点,仅供参考)

    浅谈短视频背后的科技伦理问题(个人观点,仅供参考) 本文根据最近发布的一则新闻:<真实的现场:快手移动连麦技术在抗疫报道中的创新应用>和之前的一篇报道: <算法不是三观不正的&quo ...

  7. 《猿族崛起》动作捕捉技术及制作流程详解

    前言: 其实最近两个月发布的原创文章,最初动机都是来自于<猿族崛起>,之前并没有太关注这部片子,后来偶然在火星时代上看到Weta发布的特效制作花絮,然后简介说是启用了<阿凡达> ...

  8. 一文读懂:那些你不了解的动作捕捉技术

    动作捕捉是一种对人体或者其他物体在真实三维空间当中的运动轨迹进行跟踪.测量和记录的一种技术,通过将相关信息记录和分析之后,借助计算机原理在虚拟空间当中重建运动模型,然后应用到各个领域当中去的一种技术. ...

  9. 计算机网络入侵技术初探论文答辩,浅谈关于计算机网络入侵报警系统技术的研究.doc...

    浅谈关于计算机网络入侵报警系统技术的研究.doc 浅谈关于计算机网络入侵报警系统技术的研究 摘 要:计算机在虚拟世界中的合法性制约着它的前进的脚步,所以渐渐的虚拟警报的构造变得复杂,但是风险性也变得更 ...

  10. 浅谈当前的手机开发技术

    浅谈当前的手机开发技术 作者:陈跃峰 出自:http://blog.csdn.net/mailbomb 随着3G时代的到来,手机软件开发成为了一个热门的软件开发技术,但是由于手机种类等一系列的原因,使 ...

最新文章

  1. 阿里开源的缓存框架JetCache,实现spring二级缓存
  2. Python介绍以及Python 优缺点
  3. mysql多表查询书籍_MySQL多表查询及子查询
  4. 手机用鸿蒙,魅族“很聪明”:宣布加入鸿蒙,让大家以为手机用鸿蒙,其实不是...
  5. strlen的神奇实现
  6. mysql gtid binlog_MySQL之-四步实现BinLog Replication升级为GTIDs Replication的代码实例
  7. APP设计没有灵感?让那些小众但富有创意的页面告诉你!
  8. lisp画垫圈_晓东CAD家园-论坛-LISP/VLISP程序库-[LISP程序]:俺的画内六角圆柱头螺钉的LISP程序-见附件 - Powered by Discuz!...
  9. Android-7.0-Nuplayer流程图
  10. ASP.NET MVC 5 默认模板的JS和CSS 是怎么加载的?
  11. 多GPU环境运行实验的一点经验
  12. python用三种方式定义字符串、并依次输出_Python中字符串拼接的三种方式
  13. 揭示Win32 API拦截细节/API hooking revealed (2)
  14. 转载一些Unity插件及资源
  15. 【USB笔记】设备功能描述符Device Capability Descriptor
  16. 蓝屏代码及其解决方案
  17. 微信公众号多域名回调系统
  18. 小动物立体定位架的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. openmeetings(八)
  20. 教育培训行业如何做好私域运营

热门文章

  1. 计算机病毒和恶意软件管理制度,白城师范学院计算机病毒防治管理制度
  2. HDMI转SDI转换器信号损失方法
  3. Ionic开发框架的安装及Ionic项目的创建
  4. 十款代码表白特效,一个比一个浪漫
  5. vue全家桶网易严选,体验网易严选购物流程
  6. Required request body is missing:public java.util.List错误
  7. OPPO设备设置第三方桌面为默认Launcher
  8. 扒一扒物理层里的那些事
  9. 昌航程序设计竞赛初赛(周五晚19点)
  10. java与seo_seo和java哪个更好