My App

Human Motion Generation: A Survey

human motion generation 旨在生成生成自然的人类motion序列, moion数据采集生成方式近些年进步很快, 多基于文本, 视频, 场景上下文生成, 由于人类动作本身的复杂性, 这一领域仍有许多未探索的挑战. 这篇首篇关于human motion的调查, 阅读了大量的文献, 关注文本, 音频, 场景控制生成这三个子场景, 提供常见数据集和指标的概述.

介绍

human motion generation 的目标是生成自然, 真实, 多样的动作用于多种应用.

自回归模型, VAE编码, 归一化, GAN, DDPM, 这些技术推动了这一领域的发展, 社区对这一领域兴趣增加.

开始指出human motion generation这一任务的难点, 1)非线性由关节连接的, 受物理和生物学的限制, 2)人类大脑对不自然的运动异常敏感, 3)动作生成有条件驱动, 这就要求不仅动作本身要合理, 还需要和控制条件和谐, 4)作为非语言媒介, 要表达和控制信号一致的语义.

范围

专注于基于文本, 语音和场景控制的人类动作生成, 不包含动作补全, 动作编辑, 动作可以通过关键点, 关节旋转, 参数化人类身体多种方式表示, 但是不包含用物理仿真环境的表示.

基础知识

motion数据

motion数据表示

motion-survey-data-representation

主要有两种表示方法, 基于关键点的和基于旋转角的, 图中ab是普通的表示方法, 还有通过更多的坐标拓展到c的, 游戏和动画行业多使用d基于旋转角的表示, forward kinematics(FK)和inverse kinematics(IK)可以实现两种方法的相互转换.

基于旋转角的表示是基于这样的观察: 身体各部位具有层次结构, 单一部位的旋转和层次结构中上一级有关. 旋转可以使用欧拉角, 轴角, 四元数多种方法参数化.

SMPL(Skinned Multi-Person Linear)模型通过一系列的姿势和形状参数, 可以用来生成人类motion的3D网格. 姿势参数θRK×3\theta \in \mathcal{R}^{K \times 3}, K=24, 即先规定根关节的位置, 然后根据层次关系依次规定各关节的旋转角, 形状参数 βR10\beta \in \mathcal{R}^{10}指示身高等信息. 我对照上图基于关键点的表示b图数了一下, 考虑对称各关节间的连接数刚好是10个, 因此β\beta 参数应该表示各关节间的长度信息. 输入姿势和形状信息, SMPL模型可以生成一个包含N=6890个顶点的三角网格M(θ,β)RN×3\mathcal{M}(\theta, \beta) \in \mathcal{R}^{N \times 3}, 该过程可微.(总结一下, 给定位置和形状信息, SMPL可以输出N个顶点坐标, 渲染出来就是'人'的形状)

motion数据收集

motion-survey-data-collection

marker-based motion捕获通过在人的关键点放置标记(图a中的红色绑带)来跟踪人物移动.

markerless motion捕获不使用标记, 多个RGB或RGB-D相机在捕获过程中协同, 这种方法效果没有marker-based好, 但是更方便.

pseudo-labeling(伪标记)指使用OpenPose等动作估计方法从单眼图片或视频生成动作表示.

人工标注指人工标注:)图d展示的是MikuMikuDance的交互界面.

motion生成方法

motion-survey-generation-model

粗略可以分为两类, 基于自回归的方法和基于生成式模型的方法.

GAN网络. 一个生成器G, 一个辨别器D, G生成更逼真的图片混淆D, D准确的的区分G生成的图片和真实图片. 这种方法存在训练不稳定, 很难收敛和模式崩塌的问题.

Variational Autoencoders(VAE). 包含一个编码器一个解码器, 训练loss是ELBO(Evidence Lower Bound), 可以通过重参数化技巧提高训练效率和稳定性. 相比GAN, 存在后验崩溃的风险, 生成的样本可能不清晰.

Normalizing Flows. 目前读的论文还没见过这种方法, 开头提到GAN和VAE都隐式的学习数据的概率分布, 很难精确计算似然度, 这种方式显式的学习概率分布, 不太理解问了一下GPT, 大致含义是它的前向和后向是一个可逆的过程, 在训练过程中取真实样本x->使用反向过程映射到简单空间分布z->计算z在简单分布下的概率->计算x的似然概率并最大化, 在生成阶段, 从简单分布采样z, 使用正向过程x=f(z)生成新样本. 这种方法提供了灵活性, 精确的似然计算和简单的数据采样(so, why not Gradient Descent?笔者注), 但是需要大量的转换, 计算复杂度高, 很难训练.

扩散模型. 加噪和去噪的过程, 加噪通过一个调度器完成, 当TT \to \infty, xTx_T事实是高斯分布, 难在预测方向过程, 根据自己的知识可能和论文中讲述有一点不一致, 我们训练一个神经网络来预测噪声, 计算(μ,σ2)(\mu, \sigma^2), 从N(μ,σ2)N(\mu, \sigma^2) 中采样作为噪声, 执行去噪. 优点训练稳定质量高, 缺点马尔科夫链多步去噪, 比VAE和GAN耗时耗资源.

动作图. 直接看上图中motion graph列, 穷举所有的动作, 用路径连接, 生成动作就是要找到一条最好的路径.

Text控制的动作生成

Action to Motion

简单来说定义了一个明确的action类, 比如['Walk', 'Kick', 'Throw', ...], 用onehot编码表示, 根据action类生成对应的motion片段.

下面就介绍了GAN, latent Space, VAE, Transformer, 对比学习, 离散token表示+GPT-like, Diffusion直接预测样本, Stable Diffusion, 不同的技术.

上述这些方法只能生成单一的动作, 最近MultiAct提出了生成多动作的方法.

Text to Motion

相对于Action to Motion从预设的action类生成motion, Text to Motion从多样的自然语言描述生成motion.

依次介绍了GAN, 文本和motion联合嵌入, VAE, Transformer.

上面的方法利用给定的数据集, 面临零样本挑战. 介绍一些方法对他的改进, 如融合文本和图片CLIP, 基于参考的运动生成方式, 文本-姿态生成器生成和文本一致的姿态掩码.

上面方法的text都很简单, 主要包含action类名, 介绍近些年的工作, 如利用VQ-VAE并行训练text-to-motion和motion-to-text, VQ-VAE+Transformer, diffusion, Transform预测序列+diffusion生成动作.(思路都是将motion离散化表示, 然后使用transform预测, 笔者注)

Audio控制的动作生成

Music to Dannce🎵

根据跟定的音乐生成相关的舞蹈动作, 与序列到序列的翻译一致. 介绍了一系列全监督的回归模型, 去最小化预测动作和真实动作之间的距离: LSTM, Transformer, 额外的舞者选择阶段生成多人舞蹈, global-local 动作表示. 然后指出即使是同一个音乐片段, 也会有多样的动作表示.

从生成的角度, 介绍了GAN, 音乐风格编码+改进GAN, Normalizing Flows, VQ-VAE离散化3D motion, diffusion, motion图.

生成长舞蹈存在错误积累问题, 介绍了3中方法对它的改进.

Speech to Gesture

Speech to Gesture 任务旨在根据输入的语音音频, 以及在某些情况下还包括文本转录, 生成一系列人类手势, 主要应用是手语.

一些从文本转录开始的方式: GAN, motion和audio分别编码映射, 风格控制, 手势模板集, motion和audio共享表示空间, 脸部手部头部分离表示, motion分成内容和节奏段, 寻找最优motion, Transformer+diffusion.

指出人与人之间的手势会有差异, 没有同时考虑speech和转录文本模态, 介绍一些方法对它的改进: 同时考虑文本语音speaker, 情感编码, 学习speakers不同的风格, 考虑脸部表情情绪上下文含义, 建模语言和手势间的节奏和语义关系, ...

场景控制的动作生成

(场景生成只做了解, 简单过一下)

scene to motion任务旨在生成与场景上下文一致的合理人类动作. 场景表示方法有2D 图像, 点云, 网格, 3D 对象, 目标位置. 多阶段流程一般是预测目标位置/交互锚点->规划路径/轨迹->填充运动.

数据集

Text 条件

NameVenueCollectionRepresentationSubjectsSequencesFramesLengthRemarks
KIT Motion LanguageBig data 2016Marker-basedKpts. (3D)1113911-10.3h6.3k Text descriptions
UESTCMM 2018MarkerlessKpts. (3D)11825.6K-83h40 Action classes
NTU-RGB+DTPAMI 2019MarkerlessKpts. (3D)106114.4K-74h120 Action classes
HumanAct12MM 2020MarkerlessKpts. (3D)12119190K6h12 Action classes
BABELCVPR 2021Marker-basedRot.344--43.5h260 Action classes
HumanML3DCVPR 2022Marker-based & MarkerlessKpts. (3D)34414.6K-28.5h44.9K Text descriptions
TED-GestureCVRA 2019Pseudo-labelingKpts. (3D)-1,295-52.7hTED talks

音乐条件

NameVenueCollectionRepresentationSubjectsSequencesFramesLengthRemarks
Tang et al.MM 2018Marker-basedKpts. (3D)-61907K1.6h4 genres
Lee et al.NeurIPS 2019Pseudo-labelingKpts. (2D)-361K-71h3 genres
Huang et al.ICLR 2021Pseudo-labelingKpts. (2D)-790-12h3 genres
AIST++ICCV 2021MarkerlessRot.301,40810.1M5.2h10 genres
PMSDTOG 2021Marker-basedKpts. (3D)8--3.8h4 genres
ShaderMotionTOG 2021Marker-basedKpts. (3D)8--10.2h2 genres
Chen et al.TOG 2021Manual annotationRot.--160K9.9h9 genres
PhantomDanceAAAI 2022Manual annotationRot.-260795K3.7h13 genres
MMD-ARCMM 2022Manual annotationRot.-213-11.3h-
MDCMM 2022Manual annotationRot.-798-3.5h2 genres
Aristidou et al.TVCG 2022Marker-basedRot.32--2.4h3 genres
AIOZ-GDANCECVPR 2023Pseudo-labelingRot.>4000--16.7h7 dance styles, 16 music genres

speech 条件

NameVenueCollectionRepresentationSubjectsSequencesFramesLengthRemarks
TrinityIVA 2018Pseudo-labelingKpts. (2D)123-4.1hCasual talks
Speech2GestureCVPR 2019Pseudo-labelingKpts. (2D)10--144hTV shows, Lectures
TED-Gesture++TOG 2020Pseudo-labelingKpts. (3D)-1,766-97.0hExtension of TED-Gesture
PATSECCV 2020Pseudo-labelingKpts. (2D)25--251hExtension of Speech2Gesture
Speech2Gesture-3DIVA 2021Pseudo-labelingKpts. (3D)6--33hVideos from Speech2Gesture
SHOWCVPR 2023Pseudo-labelingRot.---27hVideos from Speech2Gesture

Speech, Text, Emotion 条件

NameVenueCollectionRepresentationSubjectsSequencesFramesLengthRemarks
BEATECCV 2022Marker-basedRot.30250830M76h8 emotions, 4 languages
Chinese GestureTOG 2022Marker-basedRot.5--4hChinese
ZEGGSCGF 2023Marker-basedRot.167-2.3h19 Styles

Scene, Object 条件

NameVenueCollectionRepresentationSubjectsSequencesFramesLengthRemarks
WBHMICAR 2015Marker-basedRot.433704691K7.68h41 objects
PiGraphTOG 2016MarkerlessKpts. (3D)5630.1M2h30 scenes, 19 objects
PROXICCV 2019MarkerlessRot.20600.1M1h12 indoor scenes
3DBSIGGRAPH 2019Pseudo-labelingKpts. (3D)1---15 scenes
SAMPICCV 2021Marker-basedRot.1-185K0.83h7 objects
COUCHECCV 2022Marker-basedRot.6>500-3h3 chairs, hand interaction on chairs

场景条件

NameVenueCollectionRepresentationSubjectsSequencesFramesLengthRemarks
GTA-IMECCV 2020Marker-basedKpts. (3D)501191M-Synthetic, 10 indoor scenes
GRABECCV 2020Marker-basedRot.1013341.6M-51 objects
HPSCVPR 2021Marker-basedRot.7-300K-8 large scenes, some > 1000 m²
HUMANISENeurIPS 2022Marker-basedRot.-19.6K1.2M-643 scenes
CIRCLECVPR 2023Marker-basedRot.5>7K4.3M10h9 scenes

无条件

NameVenueCollectionRepresentationSubjectsSequencesFramesLengthRemarks
Human3.6MTPAMI 2014Marker-basedKpts. (3D)11-3.6M5.0h15 actions
CMU MocapOnline 2015Marker-basedRot.1092605-9h6 categories, 23 subcategories
AMASSICCV 2019Marker-basedRot.34411265-40.0hUnifies 15 marker-based MoCap datasets
HuMManECCV 2022MarkerlessRot.1000400K60M-500 actions

评价指标

CategorySubcategoryMetric
FidelityComparison with Ground-truthDistance
Accuracy
NaturalnessMotion space
Feature space
Physical PlausibilityFoot sliding
Foot-ground contact
DiversityIntra-motionVariation
Freezing rate
Inter-motionCoverage
Multi-modality
Condition ConsistencyText-MotionAccuracy
Distance
Audio-MotionBeat
Semantics
Scene-MotionNon-collision score
Human-scene contact
User StudySubjective EvaluationPreference
Rating