本文简要介绍与 3D 数字人相关的研究,包括常用 3D 表示、常用 3D 人体模型、3D 人体姿态估计,带衣服 3D 人体重建,3D 衣服建模,以及人体动作驱动等。
常用3D表示
目前 3D 学习中,物体或场景的表示包括 显式表示与 隐式表示两种,主流的显式表示包括基于 voxel、基于 point cloud、和基于 polygon mesh 三种,隐式表示包括基于 Occupancy Function [1]、和基于 Signed Distance Functions[2]两种。下表简要总结了各种表示方法的原理及其相应优缺点。
1.1 Voxel
表示图像:
表示原理:体素用规则的立方体表示 3D 物体,体素是数据在三维空间中的最小分割单位,类似于 2D 图像中的像素。
优缺点:
+ 规则表示,容易送入网络学习
+ 可以处理任意拓扑结构
- 随着分辨率增加,内存呈立方级增长
- 物体表示不够精细
- 纹理不友好
1.2 Point Cloud
表示 图像:
表示 原理:点云将多面体表示为三维空间中点的集合,一般用激光雷达或深度相机扫描后得到点云数据。
优缺点:
+ 容易获取
+ 可以处理任意拓扑结构
- 缺少点与点之间连接关系
- 物体表示不够精细
- 纹理不友好
1.3 Polygon Mesh
表示 图像:
表示 原理:多边形网格将多面体表示为顶点与面片的集合,包含了物体表面的拓扑信息。
优缺点:
+ 高质量描述 3D 几何结构
+ 内存占有较少
+ 纹理友好
- 不同物体类别需要不同的 mesh 模版
- 网络较难学习
1.4 Occupancy Function
表示 图像:
表示 原理:occupancy function 将物体表示为一个占有函数,即空间中每个点是否在表面上。
优缺点:
+ 可以精细建模细节,理论上分辨率无穷
+ 内存占有少
+ 网络较易学习
- 需后处理得到显式几何结构
1.5 Signed Distance Function
表示 图像:
表示 原理:SDF 将物体表示为符号距离函数,即空间中每个点距离表面的距离。
优缺点:
+ 可以精细建模细节,理论上分辨率无穷
+ 内存占有少
+ 网络较易学习
- 需后处理得到显式几何结构
常用3D人体模型
目前常用的人体参数化表示模型为德国马克斯•普朗克研究所提出的 SMPL[3],该模型采用 6890 个顶点(vertices), 和 13776 个面片(faces)定义人体 template mesh,并采用 10 维参数向量控制人体 shape,24 个关节点旋转参数控制人体 pose,其中每个关节点旋转参数采用 3 维向量来表示该关节相对其父关节分别沿着 x, y, z 轴的旋转角。
该研究所在 CVPR 2019 上提出 SMPL-X [4],采用了更多顶点来精细建模人体,并加入了面部表情和手部姿态的参数化控制。这两篇工作给出了规范的、通用的、可以与工业 3D 软件如 Maya 和 Unity 相通的人体参数化表示,并提出了一套简单有效的蒙皮策略,使得人体表面的顶点跟随关节旋转运动时不会产生明显瑕疵。
近年来也有不少改进的人体模型,如 SoftSMPL[5],STAR [6],BLSM [7],GHUM [8]等。
2.1 SMPL
基本表示:
示意图:
2.2 SMPL-X
基本表示:
mesh 表示:10475 vertices, 20908 faces
pose 控制:身体 54 个关节点,75 维 PCA
手部控制:24 维 PCA
表情控制:10 维向量
shape 控制:10 维向量
示意图:
3D人体姿态估计
3D 人体姿态估计是指从图像、视频、或点云中估计人物目标的体型(shape)和姿态(pose),是围绕人体 3D 研究中的一项基本任务。3D 人体姿态估计是 3D 人体重建的重要前提,也可以是人体动作驱动中动作的重要来源。目前很多 3D 姿态估计算法主要是估计场景中人体的 SMPL 参数。
根据场景不同,可以分为针对单张图像和针对动态视频的人体 3D 姿态估计。下表简要总结了目前两种场景下的一些代表工作,并给出了一些简要原理介绍和评价。
3.1 单张图像
代表工作:
Keep it SMPL: Automatic Estimation of 3D Human Pose and Shape from a Single Image. In ECCV, 2016.
End-to-end Recovery of Human Shape and Pose. In CVPR, 2018.
Learning to Estimate 3D Human Pose and Shape from a Single Color Image. In CVPR, 2018.
Delving Deep into Hybrid Annotations for 3D Human Recovery in the Wild. In ICCV, 2019.
SPIN: Learning to reconstruct 3d human pose and shape via model-fitting in the loop. In ICCV, 2019.
I2L-MeshNet: Image-to-Lixel Prediction Network for Accurate 3D Human Pose and Mesh Estimation from a Single RGB Image. In ECCV, 2020.
Learning 3D Human Shape and Pose from Dense Body Parts. In TPAMI, 2020.
ExPose: Monocular Expressive Body Regression through Body-Driven Attention. In ECCV, 2020.
Hierarchical Kinematic Human Mesh Recovery. In ECCV, 2020.
Pose2Mesh: Graph Convolutional Network for 3D Human Pose and Mesh Recovery from a 2D Human Pose. In ECCV, 2020.
原理及评价:
主要思路:估计 SMPL 参数,加入 2D keypoint loss,adversarial loss,silhouette loss 等;有 3D 真值时可以加入 SMPL 参数真值、Mesh 真值、3D joint 真值约束;融合 regression-based 和 optimization-based 方法协作提升;从估计 SMPL 估计更精细的 SMPL-X,对手部和头部强化处理;
目前挑战:现实场景缺乏真值数据,如何产生有用的监督信号或 pseudo ground-truth 来帮助训练;合成数据有真值但存在 domain gap,如何有效利用合成数据来帮助真实场景训练;目前很多方法估计结果在人体深度、肢体末端如手部和脚部还存在偏差,对复杂姿势估计结果仍不够准确;
3.2 动态视频
代表工作:
Learning 3D Human Dynamics from Video. In CVPR, 2019.
Monocular Total Capture: Posing Face, Body, and Hands in the Wild. In CVPR, 2019.
Human Mesh Recovery from Monocular Images via a Skeleton-disentangled Representation. In ICCV, 2019.
VIBE: Video Inference for Human Body Pose and Shape Estimation. In CVPR, 2020.
PoseNet3D: Learning Temporally Consistent 3D Human Pose via Knowledge Distillation. In CVPR, 2020.
Appearance Consensus Driven Self-Supervised Human Mesh Recovery. In ECCV, 2020.
原理及评价:
主要思路:估计单帧 SMPL 参数基础上加入帧间连续性和稳定性约束;帧间联合优化;appearance 一致性约束。
目前挑战:帧间连续性和稳定性约束会对动作产生平滑效果,导致每一帧都不是很准确;估计出来的结果仍会存在漂浮、抖动、滑步等问题。
3D人体重建
近年来与 3D 人体重建相关的工作很多,按照上述 3D 表示形式可分为基于 Voxel 表示、基于 Mesh 表示和基于 Implicit function 表示;按照输入形式可分为:基于单张图像、多视角图像和基于视频输入,这些输入都可以带有深度信息或无深度信息;按照重建效果可以分为带纹理重建和不带纹理重建,能直接驱动和不能直接驱动等等。
4.1 单张RGB图像
重建效果:
+ 带衣服褶皱
+ 带纹理
+ 能直接驱动
代表工作:
360-Degree Textures of People in Clothing from a Single Image. In 3DV, 2019.
Tex2Shape: Detailed Full Human Body Geometry From a Single Image. In ICCV, 2019.
ARCH: Animatable Reconstruction of Clothed Humans. In CVPR, 2020.
3D Human Avatar Digitization from a Single Image. In VRCAI, 2019.
基本原理及评价:
带衣服人体表示:SMPL+Deformation+Texture;
思路1:估计 3D pose 采样部分纹理,再用 GAN 网络生成完整纹理和displacement;
重建效果:
+ 带衣服褶皱
+ 带纹理
- 不能直接驱动
代表工作:
PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization. In ICCV, 2019.
PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization. In CVPR, 2020.
SiCloPe: Silhouette-Based Clothed People. In CVPR, 2019.
PaMIR: Parametric Model-Conditioned Implicit Representation for Image-based Human Reconstruction. In TPAMI, 2020.
Reconstructing NBA Players. In ECCV, 2020.
基本原理及评价:
重建效果:
+ 带衣服褶皱
- 不带纹理
- 不能直接驱动
代表工作:
BodyNet: Volumetric Inference of 3D Human Body Shapes. In ECCV, 2018.
DeepHuman: 3D Human Reconstruction From a Single Image. In ICCV, 2019.
基本原理及评价:
带衣服人体表示:voxel grid occupancy;
思路1:预测 voxel grid 每个格子是否在 body 内部;
优势:适用于任意 pose,可建模复杂外观如长发裙子
4.2 多视角RGB图像
重建效果:
+ 带衣服褶皱
+ 带纹理
- 不能直接驱动
代表工作:
Deep Volumetric Video From Very Sparse Multi-View Performance Capture. In ECCV, 2018.
PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization. In ICCV, 2019.
PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization. In CVPR, 2020.
基本原理及评价:
带衣服人体表示:Occupancy + RGB;
思路:多视角 PIFU;
优势:多视角信息预测更准确;适用于任意 pose;可建模复杂外观如长发和裙子;
4.3 单张RGBD图像
重建效果:
+ 带衣服褶皱
+ 带纹理
- 不能直接驱动
代表工作:
NormalGAN: Learning Detailed 3D Human from a Single RGB-D Image. In ECCV, 2020.
基本原理及评价:
带衣服人体表示:3D point cloud + triangulation;
思路:GAN 网络生成 front-view 和 back-view 的 depth 和 color,再用 triangulation 得到 mesh;
优势:适用于任意 pose;可建模复杂外观如长发和裙子;
4.4 RGB视频输入
重建效果:
+ 带衣服褶皱
+ 带纹理
+ 能直接驱动
代表工作:
Video Based Reconstruction of 3D People Models. In CVPR, 2018.
Detailed Human Avatars from Monocular Video. In 3DV, 2018.
Learning to Reconstruct People in Clothing from a Single RGB Camera. In CVPR, 2019.
Multi-Garment Net: Learning to Dress 3D People from Images. In ICCV, 2019.
基本原理及评价:
带衣服人体表示:SMPL+Deformation+Texture;
思路1:多帧联合估计 canonical T-pose 下的 SMPL+D,投影回每帧提取纹理融合;
优势:可直接驱动;生成纹理质量较高;简单场景下效果较好;
重建效果:
+ 带衣服褶皱
- 不带纹理
- 不能直接驱动
代表工作:
MonoClothCap: Towards Temporally Coherent Clothing Capture from Monocular RGB Video. In 3DV, 2020.
基本原理及评价:
带衣服人体表示:SMPL+Deformation;
思路:每帧估计 SMPL 参数并联合多帧优化得到稳定 shape 和每帧 pose,为不同衣服建模形变参数化模型,约束 Silhouette, Clothing segmentation, Photometric, normal 等信息一致
优势:无需 3D 真值;可以建模较为细致的衣服形变;
4.5 RGBD视频输入
重建效果:
+ 带衣服
+ 带纹理
+ 也许能直接驱动
代表工作:
Robust 3D Self-portraits in Seconds. In CVPR, 2020.
TexMesh: Reconstructing Detailed Human Texture and Geometry from RGB-D Video. In ECCV, 2020.
基本原理及评价:
带衣服人体表示:Occupancy+RGB;
思路1:RGBD 版 PIFU 生成每帧先验,TSDF(truncated signed distance function)分为 inner model 和 surface layer,PIFusion 做 double layer-based non-rigid tracking,多帧联合微调优化得到 3D portrait;
优势:建模较精细,可以处理较大形变如长发和裙子;不需要扫描真值;
4.6 Depth视频输入
重建效果:
+ 带衣服褶皱
- 不带纹理
+ 也许能直接驱动
代表工作:
DoubleFusion: Real-time Capture of Human Performances with Inner Body Shapes from a Single Depth Sensor. In CVPR, 2018.
基本原理及评价:
带衣服人体表示:outer layer + inner layer(SMPL)
思路:joint motion tracking, geometric fusion and volumetric shape-pose optimization
优势:建模较精细;速度快,可以实时;
3D衣服建模
在 3D 人体重建任务中,衣服一般是用与 template mesh 每个顶点绑定的 Deformation 来表示,但这种表示并不能精细建模衣服的纹理褶皱等细节,在人物模型运动起来时也会很不自然。
因此近年来也有一部分工作将 3D 衣服建模与深度神经网络结合,旨在不同 shape 和 pose 情况下,准确逼真地模拟、预测人体衣服的形变。
5.1 TOG 2018
Physics-Inspired Garment Recovery from a Single-View Image. In TOG, 2018.
基本原理:
简要评价:
问题:衣服特征估计受光照和图像质量影响较大,受限于 garment 模版的丰富程度;需要后期通过衣物仿真联合优化来调整效果;
5.2 ECCV 2018
DeepWrinkles: Accurate and Realistic Clothing Modeling. In ECCV, 2018.
基本原理:
简要评价:
思路:统计模型学习衣服在某 pose 和 shape 下的大致效果,GAN 模型生成更细致的褶皱;
优势:用 GAN 可以生成逼真细致的褶皱;
问题:依赖 4D 扫描动作序列真值;需提前做好衣服注册;
5.3 ICCV 2019
Multi-Garment Net: Learning to Dress 3D People from Images. In ICCV, 2019.
基本原理:
简要评价:
思路:human parsing 分割衣服并预测类别,估计衣服 PCA 参数和细节 Displacement;
优势:明确 3D scan segmentation 和 Garment registration 的 pipeline;引入 Human parsing 可以得到更准确的衣服类别;
问题:过度依赖 3D 真值训练;PCA 参数表示的准确性依赖 dataset 大小;
5.4 EUROGRAPHICS 2019
Learning-Based Animation of Clothing for Virtual Try-On. In EUROGRAPHICS, 2019.
基本原理:
简要评价:
思路:衣服仿真生成真值帮助网络训练,基于 shape 学习衣服模版变形,基于 pose 和 shape 学习动态褶皱,
优势:衣物仿真可以得到任意 pose 下的大量真值数据;
问题:与现实数据差距较大;依赖衣物模版的丰富程度;直接学习 defromation 不够稳定,容易穿模需后处理;
5.5 CVPR 2020
TailorNet: Predicting Clothing in 3D as a Function of Human Pose, Shape and Garment Style. In CVPR, 2020.
基本原理:
简要评价:
思路:将衣服形变分为高频和低频,低频部分用网络估计大致形变,高频部分估计多个特定 style-shape 模型,每个模型负责估计特定形变及加权权重;
优势:可以得到较为细致的衣服褶皱;提出合成数据集,仿真 20 件衣服,1782 个 pose 和 9 种 shape;
问题:在不同 shape 和 style 上训练得到结果过于平滑,不够真实;
5.6 ECCV 2020
BCNet: Learning Body and Cloth Shape from A Single Image. In ECCV, 2020.
基本原理:
简要评价:
思路:基于单张图像估计 SMPL 参数和上下身的 Garment 参数,用两个网络分别估计 displacement 和 skining weight;
优势:对 garment 学习蒙皮权重,动起来可以更自然;garment mesh 与 body mesh 不绑定,可以重建更多衣服类别;
问题:将衣服分为上下半身,对连衣裙和长款不友好;
5.7 ECCV 2020
Deep Fashion3D: A Dataset and Benchmark for 3D Garment Reconstruction from Single Images. In ECCV, 2020.
基本原理:
简要评价:
问题:当衣服类型与 adaptable template 差距较大时,handle-based Laplcacian deformation 优化较难;
人体动作驱动
人体动作驱动目的是使 3D 人体按照我们预先设置的动作运动起来,这里面一般需要考虑两个问题:人体动作怎么来?怎么驱动人体得到满意结果?
动作获取
目前常用的动作获取方法包括手工制作、物理模拟、视频估计的和动捕采集等,每种策略的详细优缺点可以参考 [9]。简单来说,手工制作动作可以适用于各种目标如人和动物,但代价高昂,依赖于专业美术人员的审美;物理模拟方式根据物理规则的来生成动作,但一般仅适用于少部分规则运动;基于视频估计的方法代价最低,但目前技术很难获得高质量稳定动作;因此目前对于只是使用人体动作的场景来说,动捕采集依赖于专业设备来捕捉真实的演员运动,可以获得稳定的高质量动作[10]。
目前也有一些研究工作会基于深度神经网络来生成新动作如 PFNN [11]、Dancing to Music [12],或是基于网络进行动作插值来减轻美术工作量如 Motion In-Betweening [13],Motion Inpainting [14],或是基于强化学习使目标人物学会做一些动作 [15]。
3D人体驱动
一般来说,目前常用的动作驱动流程是将动捕采集数据转换为 SMPL 参数,再根据 SMPL 的骨骼结构和蒙皮策略将目标人物 repose 到特定姿势。对于角色控制精度要求不高的情况下,直接输入 SMPL 参数来控制动作可以满足大部分需求。
而在要求较高的动画场景中,或者是驱动其他骨骼结构类似的角色时,因为角色之间的骨骼长度,体型等会存在差异,只是输入参数控制会产生一些问题如动作不能做到位,产生穿模等等。因此,目前也有一些研究工作探索不同骨骼结构之间的 motion retargeting,如 [16, 17, 18]等。
人体动作迁移
另外值得一提的是,只是进行动作迁移也可以不需要对角色进行显式的 3D 建模,目前常用策略是采用 GAN 网络基于 2D/3D 姿态参数来生成动作迁移后的目标图像或视频,如 Dense Pose Transfer[19],Everybody Dance Now [20],LWGAN[21], Few-shot vid2vid [22],TransMoMo [23]等等。
总的来说,基于 3D 目标重建的动作迁移的优势在于可以泛化到各种动作,运动起来外观比较稳定,而难点在于如何精确重建外观几何如衣服和头发等位置,如何在驱动的时候产生逼真的外观变化效果如衣摆运动和头发飘起等;基于 GAN 生成的动作迁移优势在于可以生成逼真的外观变化,而难点在于如何应对复杂动作和新动作下的外观生成,如何保证生成视频的人物动作和外观稳定性等。
总结
本文简要概述了与 3D 人体相关的一些研究工作,包括 Representation、Body、Pose、Reconstruction、Cloth、Animation 等多个方面,涉及到各种细分的研究领域,如人体模型表示、人体姿态估计、人体重建、衣服建模、动作合成与驱动等等。
从深度学习的角度来看,这些研究方向的主要挑战是缺乏 3D 真值数据,目前 3D 数据的采集还受限于特定环境和设备且价格不菲,而数据的标注则需要专业的 3D 知识和 CG 技术,因此从仿真数据中学习一些规律并利用自监督或无监督学习算法来迁移到现实场景也是目前研究工作在探索的方向。
目前各种技术的终极目标是在虚拟世界里还原真实的人类,除了外观和动作,还有说话、语音、表情、交互等多个方面。此外值得一提的是,渲染技术也是 3D 数字人领域的关键技术,提升渲染技术的真实性和实时性对于该领域发展有着重要意义。
参考文献
[1] Occupancy Networks: Learning 3D Reconstruction in Function Space. In CVPR, 2019.
[2] DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation. In CVPR, 2019.
[3] SMPL: A Skinned Multi-Person Linear Model. In SIGGRAPH Asia, 2015.
[4] Expressive Body Capture: 3D Hands, Face, and Body from a Single Image. In CVPR, 2019.
[5] SoftSMPL: Data-driven Modeling of Nonlinear Soft-tissue Dynamics for Parametric Humans. In Eurographics, 2020.
[6] STAR: Sparse Trained Articulated Human Body Regressor. ECCV, 2020.
[7] BLSM: A Bone-Level Skinned Model of the Human Mesh. ECCV, 2020.
[8] GHUM & GHUML: Generative 3D Human Shape and Articulated Pose Models. CVPR (Oral), 2020.
[9] 3D Human Motion Editing and Synthesis: A Survey. In CMMM, 2020.
[10] MoSh: Motion and Shape Capture from Sparse Markers. In SIGGRAPH Asia, 2014.
[11] Phase-Functioned Neural Networks for Character Control. In SIGGRAPH, 2017.
[12] Dancing to Music Neural Information Processing Systems. In NeurIPS, 2019.
[13] Robust Motion In-betweening. In SIGGRAPH, 2020.
[14] Human Motion Prediction via Spatio-Temporal Inpainting. In ICCV, 2019.
[15] DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills. In SIGGRAPH 2018.
[16] RigNet: Neural Rigging for Articulated Characters. In SIGGRAPH, 2020.
[17] Skeleton-Aware Networks for Deep Motion Retargeting. In SIGGRAPH, 2020.
[18] Motion Retargetting based on Dilated Convolutions and Skeleton-specific Loss Functions. In Eurographics, 2020.
[19] Dense Pose Transfer. In ECCV, 2018.
[20] Everybody Dance Now. In ICCV, 2019.
[21] Liquid Warping GAN: A Unified Framework for Human Motion Imitation, Appearance Transfer and Novel View Synthesis. In ICCV, 2019.
[22] [Few-shot Video-to-Video Synthesis. In NeurIPS 2019.
[23] TransMoMo: Invariance-Driven Unsupervised Video Motion Retargeting. In CVPR, 2020.