初识 3D Human

 

问题描述

帮老板做三维视觉主题的路演PPT,初识 3D Human 的一些概念

常用3D人体模型

目前常用的人体参数化表示模型为德国马克斯•普朗克研究所提出的 SMPL,该模型采用 6890 个顶点(vertices), 和 13776 个面片(faces)定义人体 template mesh,并采用 10 维参数向量控制人体 shape,24 个关节点旋转参数控制人体 pose,其中每个关节点旋转参数采用 3 维向量来表示该关节相对其父关节分别沿着 x, y, z 轴的旋转角。

该研究所在 CVPR 2019 上提出 SMPL-X,采用了更多顶点来精细建模人体,并加入了面部表情和手部姿态的参数化控制。这两篇工作给出了规范的、通用的、可以与工业 3D 软件如 Maya 和 Unity 相通的人体参数化表示,并提出了一套简单有效的蒙皮策略,使得人体表面的顶点跟随关节旋转运动时不会产生明显瑕疵。

近年来也有不少改进的人体模型,如 SoftSMPL,STAR,BLSM,GHUM 等。

3d_human

3D人体姿态估计

3D 人体姿态估计是指从图像、视频、或点云中估计人物目标的体型(shape)和姿态(pose),是围绕人体 3D 研究中的一项基本任务。3D 人体姿态估计是 3D 人体重建的重要前提,也可以是人体动作驱动中动作的重要来源。目前很多 3D 姿态估计算法主要是估计场景中人体的 SMPL 参数。

  1. 单目3D人体姿态估计:根据场景不同,可以分为针对单张图像和针对动态视频的人体 3D 姿态估计。下表简要总结了目前两种场景下的一些代表工作,并给出了一些简要原理介绍和评价。

    1.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,如何有效利用合成数据来帮助真实场景训练;目前很多方法估计结果在人体深度、肢体末端如手部和脚部还存在偏差,对复杂姿势估计结果仍不够准确

    1.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 一致性约束

    • 目前挑战:帧间连续性和稳定性约束会对动作产生平滑效果,导致每一帧都不是很准确;估计出来的结果仍会存在漂浮、抖动、滑步等问题

  2. 多目3D人体姿态估计

人体三维重建

近年来与 3D 人体重建相关的工作很多,按照上述 3D 表示形式可分为基于 Voxel 表示、基于 Mesh 表示和基于 Implicit function 表示;按照输入形式可分为:基于单张图像、多视角图像和基于视频输入,这些输入都可以带有深度信息或无深度信息;按照重建效果可以分为带纹理重建和不带纹理重建,能直接驱动和不能直接驱动等等。

在需要驱动的人体三维重建任务中,衣服一般是用与 template mesh 每个顶点绑定的 deformation 来表示,但这种表示并不能精细建模衣服的纹理褶皱等细节,较难处理复杂形变如长发和裙子,在人物模型运动起来时也会很不自然。

3d_human_reconstruction

3D衣物建模

  • 建模比重建要求更高,肯定是要能驱动的。
  • 既然驱动要求的简洁参数化模型和多变的衣物之间存在矛盾,可以通过引入衣物模板来缓解这一矛盾。

再往后做,衣物驱动涉及 CG 中的仿真渲染

人体动作驱动(Animation)

  • 动作获取

目前常用的动作获取方法包括手工制作、物理模拟、视频估计的和动捕采集等。简单来说,手工制作动作可以适用于各种目标如人和动物,但代价高昂,依赖于专业美术人员的审美;物理模拟方式根据物理规则的来生成动作,但一般仅适用于少部分规则运动;基于视频估计的方法代价最低,但目前技术很难获得高质量稳定动作;因此目前对于只是使用人体动作的场景来说,动捕采集依赖于专业设备来捕捉真实的演员运动,可以获得稳定的高质量动作。

目前也有一些研究工作会基于深度神经网络来生成新动作如 PFNN、Dancing to Music,或是基于网络进行动作插值来减轻美术工作量如 Motion In-Betweening,Motion Inpainting,或是基于强化学习使目标人物学会做一些动作 。

  • 3D人体驱动

目前常用的动作驱动流程是将人体动作转换为 SMPL 参数,再根据 SMPL 的骨骼结构和蒙皮策略将目标人物 repose 到特定姿势。对于角色控制精度要求不高的情况下,直接输入 SMPL 参数来控制动作可以满足大部分需求。

既然涉及到 CG 中的渲染环节了,当然就有不需要显式 3D 重建或建模的方法了,比如用于 View Synthesis 的 NeRF (神经辐射场),比如 3D 人体驱动这里可以采用 GAN 网络基于 2D/3D 姿态参数来生成动作迁移后的目标图像或视频,如 Dense Pose Transfer,Everybody Dance Now,LWGAN,Few-shot vid2vid,TransMoMo. (搜了一下,果然已经有基于 NeRF 做人体驱动的工作了。。。)

参考

  1. CSDN