浅谈低成本视频动作捕捉技术
近年来,随着人工智能技术的发展和移动互联网的兴起,基于视频的低成本动作捕捉技术逐渐在游戏制作、虚拟主播、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团队是快手公司在人工智能领域的探索者和先行者,致力于计算机视觉、计算机图形学、机器学习、AR/VR等领域的技术创新和业务落地,不断探索新技术与新用户体验的最佳结合点。Y-tech在北京、深圳、杭州、Seattle、Palo Alto有研发团队,成员来自于国际知名高校和公司。 长期招聘(全职和实习生):计算机视觉、计算机图形学、多模态技术、机器学习、AI工程架构、美颜技术、特效技术、性能优化、平台开发、工具开发、技术美术、产品经理等方向的优秀人才。如果你对我们做的事情感兴趣,欢迎联系并加入我们,一起做酷炫的东西,创造更大的价值。联系方式:ytechservice@kuaishou.com