EmoteGPT: 3D Human Facial Expression from Natural Language Descriptions¶
会议: ECCV 2026
论文: ECCV 原文
项目主页: https://genintel.github.io/EmoteGPT/
领域: 图像生成
关键词: 3D人脸表情生成、多模态大语言模型、FLAME模型、Txt2Emote、显式与隐式文本控制
一句话总结¶
EmoteGPT 构建了首个包含显式特征与隐式情境双重文本标注的 3D 人脸表情基准 Txt2Emote,并基于多模态大模型引入专用 <Expr> 标记与轻量级解码器,实现了从自然语言直接、确定且高保真回归解耦 FLAME 表情参数的实时生成框架。
研究背景与动机¶
通过自然语言精确控制三维人脸表情,在虚拟数字人驱动、影视游戏动画制作以及具身人机交互等场景中具有极为广阔的应用价值。传统的表情驱动依赖于专业美术人员手动调节 Blendshape 权重或关键帧动画,不仅制作成本极其高昂,对于普通用户而言也缺乏直观交互性。随着生成式 AI 的爆发,尽管大量工作尝试利用文本引导扩散模型(如基于分数蒸馏采样 SDS 的 Text-to-3D 头部生成方法)来合成三维人脸,但这类方法普遍将身份、几何姿态与表情深度纠缠在一起,且往往伴随耗时的迭代采样与几何噪点过饱和问题,根本无法实现解耦且细粒度的纯表情操控。
然而,构建从自然语言到纯净三维表情的直接回归映射,面临着一个核心瓶颈:现有学术界极度缺乏将精细自然语言描述与精准 3D 表情参数对齐的高质量配对数据。已有的多模态人脸数据集(如 CelebA-Dialog、MMCelebA-HQ、CelebAText)主要关注发型、性别、饰品等静态视觉属性,对表情的描述大多仅局限于“微笑”或“张嘴”等极粗粒度状态,无法捕捉微小的面部肌肉群协同变动;更严重的是,现实中人类很少会用解剖学维度的肌肉运动来描述情绪,而是倾向于使用情境诱发式的隐式表达(例如“像刚中了大奖”或“在争吵中情绪失控”),现有模型面对此类情境化语言往往彻底失效。
为了解决这一矛盾,本文摆脱了传统扩散生成全头部网格的沉重范式,提出在解耦的 3DMM(FLAME)紧凑参数空间中,将文本驱动表情生成重构为回归任务。核心 idea:构建涵盖显式物理特征与隐式情境诱发描述的双粒度 3D 表情基准 Txt2Emote,并在多模态大模型中嵌入专属 <Expr> 表情标记,打通图文多模态预训练与 FLAME 参数空间,实现从任意复杂自然语言到 3D 表情参数的单次前向确定性精确解耦生成。
方法详解¶
整体框架¶
EmoteGPT 的整体流程以多模态大语言模型(MLLM)为中枢,以 FLAME 统计头部模型为几何表达空间,实现端到端参数回归。模型接受显式面部细节描述、隐式生活情境文本或人脸图像作为输入,经由指令微调的多模态大模型推理并在输出文本序列中生成专用的 <Expr> 标记;随后,从该标记对应的顶层隐状态中抽取表情特征向量,经由轻量级多层感知机(MLP)解码器直接映射为 50 维 FLAME 表情参数 \(\hat{\psi}\) 以及 6D 旋转表示的下颌关节参数 \(\hat{\theta}_{\text{jaw}}\),最后结合标准中性头模重构出具备高表达力的 3D 人脸网格,并无缝对接高斯头像(GaussianAvatars)或扩散重光照(DiffusionRig)等下游头像管线。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["自然语言输入<br/>显式面部特征描述 / 隐式情境文本"] --> B["双粒度文本与多模态表征对齐"]
B --> C["专用表情 Token 语义锚定与抽取"]
C --> D["轻量化 FLAME 表情解码与几何约束"]
D --> E["下游高保真三维/二维头像渲染与个性化驱动"]
关键设计¶
1. 双粒度文本与多模态表征对齐:破解表情语言稀疏性与语义抽象鸿沟
针对以往人脸文本数据集缺乏细致面部肌肉状态和情境诱发语境的痛点,论文构建了包含 30k 高质量样本的 Txt2Emote 基准。该数据集以涵盖 8 种主要情绪的 AffectNet 为基础进行均衡下采样,利用 EMOCAv2 高保真三维人脸重构算法获取三维网格与 FLAME 参数真值,并调用 GPT-4o 分别生成互补的“显式描述”(细致刻画眼睛、眉毛、嘴角等局部形变与整体情绪判断)和“隐式描述”(刻画能够自然诱发该表情的日常生活场景或偶发事件)。在模型训练阶段,EmoteGPT 不仅学习纯文本到 3D 表情的指令映射,还引入了大规模人脸图像到 3D 表情数据(涵盖 CelebA、AffectNet、FFHQ)以及通用的 LLaVA-1.5 视觉问答数据,通过多模态联合训练,使得大模型的语言表征空间与视觉物理人脸特征达成深层对齐,极大增强了模型对未见抽象情境的隐式推理与泛化能力。
2. 专用表情 Token 语义锚定与抽取:将连续三维几何控制无缝内嵌至离散语言空间
传统语言模型直接自回归生成浮点数参数存在数值不稳定、长序列误差累积且计算效率低下的弊端。为此,EmoteGPT 将三维人脸表情视为一种独立的模态通道,在 MLLM 的分词词表中扩展了一个专用特殊标记 <Expr>。当模型接收到表情生成提示词(例如 "USER: {description}, can you give the FLAME expression parameters of this person? ASSISTANT: Sure, it is <Expr>.")时,自回归解码会在回答关键位置生成该标记。此时系统提取 <Expr> 对应的 4096 维顶层隐状态向量 \(h_{\langle\text{Expr}\rangle} \in \mathbb{R}^{4096}\),该向量天然凝聚了大模型对上下文输入语境的深层语义理解。相比于整句隐藏状态的平均池化(会稀释掉核心表情信息)或序列末尾的 <EOS> 标记(将句子结束控制与特定语义表征深度混淆),专属 <Expr> 标记能够专职专责地作为表情几何的语义锚点。
3. 轻量化 FLAME 表情解码与几何约束:实现身份解耦与亚毫米级面部区域高保真重构
为了将高维语义隐状态转换为物理可解耦的三维面部形状,EmoteGPT 采用结构为 [5120, 5120, 50] 且带有 GeLU 激活函数的轻量级 MLP 解码头 \(\eta\)。该解码器直接将 \(h_{\langle\text{Expr}\rangle}\) 映射为 FLAME 模型的 50 维表情系数 \(\hat{\psi} = \eta(h_{\langle\text{Expr}\rangle}) \in \mathbb{R}^{50}\) 与下颌 6D 姿态参数。在合成过程中,全局头部姿态与个体身份形状参数 \(\beta\) 被严格置零,从而在先验几何结构上彻底阻断了身份与表情的混淆。在优化过程中,除了参数空间的均方误差外,进一步引入了加权网格顶点几何约束:
其中 \(M(\cdot)\) 表示 FLAME 模型从参数到顶点网格的微分映射算子,\(w\) 为面部区域感知加权权重,对嘴唇周边、眼睑和眉毛等高动态表情显著区域赋予更高权重,有效保证了细微表情肌肉抽动的高保真度与几何平滑性。
损失函数 / 训练策略¶
EmoteGPT 采用端到端联合训练策略,在微调阶段仅对 MLLM 骨干网络(LLaVA-1.5-7B 中的 Vicuna-v1.5)使用 LoRA 低秩适配,同时全量更新轻量级表情解码头 \(\eta\) 的权重,视觉编码器及其他预训练模块保持冻结。
总体损失函数由文本自回归交叉熵损失、参数空间回归损失和网格几何感知损失三部分加权构成:
实验中各损失超参数严格设定为 \(\lambda_{\text{txt}} = 1.0\)、\(\lambda_{\text{expr}} = 1.0\)、\(\lambda_{\text{mesh}} = 0.01\)。模型在 8 张 NVIDIA A40 GPU 上借助 DeepSpeed ZeRO 技术训练,使用 AdamW 优化器,基础学习率设为 \(4\times 10^{-5}\),采用 WarmupDecayLR 策略(预热 100 步),单卡 batch size 为 8 并结合 4 步梯度累积。
实验关键数据¶
主实验¶
论文在 Txt2Emote 的 2.5k 独立测试集上全面评估显式(Explicit)与隐式(Implicit)文本驱动的表情生成质量。评估包含由预训练 3D 情绪识别网络量化评估的 Valence CCC(正负向情绪一致性相关系数)、Arousal CCC(情绪唤醒度一致性相关系数)、Emotion Accuracy(离散情绪分类准确率 E-ACC),以及生成点云与真值之间的三维几何 L1 误差(毫米量级,分别统计头部全域 \(L_1^{\text{Head}}\)、面部区域 \(L_1^{\text{Face}}\) 以及嘴唇区域 \(L_1^{\text{Lip}}\))。
| 训练配置 | 测试类型 | 方法 | V-CCC ↑ | A-CCC ↑ | E-ACC ↑ | \(L_1^{\text{Head}}\) ↓ | \(L_1^{\text{Face}}\) ↓ | \(L_1^{\text{Lip}}\) ↓ |
|---|---|---|---|---|---|---|---|---|
| 无监督 / 均值 | 显式描述 | FLAME (Neutral) | - | - | - | 0.83 | 1.41 | 3.53 |
| 仅显式训练 | 显式描述 | Describe3D | 0.48 | 0.34 | 0.34 | - | - | - |
| 仅显式训练 | 显式描述 | CLIP 基线 | 0.61 | 0.57 | 0.51 | 0.66 | 1.06 | 2.46 |
| 仅显式训练 | 显式描述 | Vicuna-1.5-7B | 0.56 | 0.53 | 0.51 | 0.66 | 1.08 | 2.48 |
| 仅显式训练 | 显式描述 | EmoteGPT (Ours) | 0.61 | 0.50 | 0.51 | 0.61 | 1.00 | 2.36 |
| 显式+隐式联合 | 显式描述 | CLIP 基线 | 0.64 | 0.56 | 0.52 | 0.65 | 1.07 | 2.50 |
| 显式+隐式联合 | 显式描述 | Vicuna-1.5-7B | 0.60 | 0.55 | 0.52 | 0.65 | 1.08 | 2.50 |
| 显式+隐式联合 | 显式描述 | EmoteGPT (Ours) | 0.68 | 0.62 | 0.59 | 0.60 | 0.98 | 2.29 |
| 仅显式训练 | 隐式描述 (零样本) | CLIP 基线 | 0.36 | 0.28 | 0.32 | 0.84 | 1.45 | 3.70 |
| 仅显式训练 | 隐式描述 (零样本) | Vicuna-1.5-7B | 0.47 | 0.34 | 0.38 | 0.80 | 1.35 | 3.37 |
| 仅显式训练 | 隐式描述 (零样本) | EmoteGPT (Ours) | 0.49 | 0.44 | 0.41 | 0.74 | 1.30 | 3.27 |
| 显式+隐式联合 | 隐式描述 | CLIP 基线 | 0.49 | 0.41 | 0.41 | 0.73 | 1.24 | 3.04 |
| 显式+隐式联合 | 隐式描述 | Vicuna-1.5-7B | 0.49 | 0.39 | 0.41 | 0.71 | 1.21 | 2.94 |
| 显式+隐式联合 | 隐式描述 | EmoteGPT (Ours) | 0.57 | 0.48 | 0.44 | 0.66 | 1.09 | 2.69 |
在对比扩散全头生成 SOTA(HumanNorm 与 Portrait3D)的几何拟合实验中,EmoteGPT 同样展现出绝对优势:在显式文本下,EmoteGPT 的面部与嘴唇误差分别为 1.01 与 2.37(Portrait3D 为 1.51 与 3.64);在隐式文本下,EmoteGPT 误差为 1.19 与 2.93(Portrait3D 恶化至 1.74 与 4.43)。在面向 25 位图形学专业受试者的用户研究中,EmoteGPT 在 75% 的样本上被评为最符合文本描述,大幅压制 Portrait3D(仅 14% 偏好)。
消融实验¶
1. 训练数据模态消融(显式 vs 隐式测试表现):
| 文本数据 (Text) | VQA 指令微调 | 人脸图像数据 (Image) | 测试类型 | V-CCC ↑ | A-CCC ↑ | E-ACC ↑ | \(L_1^{\text{Head}}\) ↓ | \(L_1^{\text{Face}}\) ↓ | \(L_1^{\text{Lip}}\) ↓ |
|---|---|---|---|---|---|---|---|---|---|
| ✓ | ✗ | ✗ | 显式测试 | 0.58 | 0.56 | 0.52 | 0.64 | 1.06 | 2.49 |
| ✓ | ✓ | ✗ | 显式测试 | 0.66 | 0.61 | 0.56 | 0.60 | 1.02 | 2.32 |
| ✓ | ✓ | ✓ | 显式测试 | 0.68 | 0.62 | 0.59 | 0.60 | 0.98 | 2.29 |
| ✓ | ✗ | ✗ | 隐式测试 | 0.55 | 0.37 | 0.41 | 0.71 | 1.21 | 2.98 |
| ✓ | ✓ | ✗ | 隐式测试 | 0.55 | 0.46 | 0.42 | 0.67 | 1.15 | 2.73 |
| ✓ | ✓ | ✓ | 隐式测试 | 0.57 | 0.48 | 0.44 | 0.66 | 1.09 | 2.69 |
2. 表情 Token 架构设计消融(不同表征抽取方式):
| 表征设计方案 | 显式 \(L_1^{\text{Head}}\) ↓ | 显式 \(L_1^{\text{Face}}\) ↓ | 显式 \(L_1^{\text{Lip}}\) ↓ | 隐式 \(L_1^{\text{Head}}\) ↓ | 隐式 \(L_1^{\text{Face}}\) ↓ | 隐式 \(L_1^{\text{Lip}}\) ↓ |
|---|---|---|---|---|---|---|
| 平均池化 (Mean Pooling) | 0.62 | 1.00 | 2.35 | 0.68 | 1.15 | 2.85 |
<EOS> 标记向量 |
0.75 | 1.21 | 3.05 | 0.84 | 1.43 | 3.93 |
<Expr> 专用标记 (Ours) |
0.60 | 0.98 | 2.29 | 0.66 | 1.09 | 2.69 |
关键发现¶
- 多模态图像联合监督是提升情境泛化能力的决定性因素:消融表明,仅依靠文本训练时,模型在隐式情境上的 A-CCC 仅为 0.37,但在注入真实人脸图像和 VQA 数据后跃升至 0.48,几何唇部误差从 2.98 显著降低至 2.69。这证明视觉-表情映射能有效反哺语言模型对复杂现实情境的情感物理具象化理解。
- 专用标记机制远优于通用语义池化:
<Expr>标记相比<EOS>标记将隐式面部几何误差从 1.43 压缩至 1.09(嘴唇误差从 3.93 降至 2.69)。专用 token 明确了表征使命,避免了解码中止信号与细粒度几何形态的相互干扰。 - 纯文本泛化性能出众:即便仅在显式文本上训练,EmoteGPT 面对完全未见过的隐式情境输入时,其 E-ACC(0.41)依然超越显式+隐式联合训练的单模态 LLM 基准(0.39),展现出通用多模态基座在常识情境推理层面的强大外推能力。
亮点与洞察¶
- 将连续三维几何控制轻量化嵌入离散 LLM:EmoteGPT 巧妙利用专用词元
<Expr>捕获高维语义隐状态,仅用三层 MLP 即可直接解码 FLAME 物理参数,规避了扩散模型昂贵的反向去噪采样,实现了毫秒级单步确定性前向推理。 - 从机械肌肉参数跃升至情境化共情理解:Txt2Emote 首次构建了“日常生活偶发事件 ↔ 3D 面部肌肉形变”的隐式对应关系,打破了“用户必须懂解剖学参数才能调节表情”的人机交互壁垒。
- 高兼容度的即插即用下游适配性:由于输出完全解耦的 3DMM 纯净参数,EmoteGPT 可直接挂载至 GaussianAvatars、HeadStudio 以及 DiffusionRig 等前沿 3D/2D 生成管线中,既保全了个体身份与几何材质,又实现了高度逼真的情绪动画驱动。
局限与展望¶
- FLAME 线性统计空间的表达力上限:作者坦承 FLAME 模型基于线性 Blendshape 与 PCA 空间,对动态微表情引起的微小皮肤褶皱、剧烈挤压变形以及跨文化/跨年龄群体的面部几何细节捕捉仍显粗糙,且存在微弱的身份与表情耦合。
- 伪真值估计引入的系统固有偏差:训练集的 3D 几何真值依赖单目算法 EMOCAv2,在极端视角、低光照或大幅度遮挡时重构误差会被引入监督信号中。
- 文本标注源于封闭大模型提示:Txt2Emote 的情境描述由 GPT-4o 自动化生成,可能带有特定文化与语言背景偏好,未来可拓展至真实人类演员视频的多模态视听协同标注体系。
相关工作与启发¶
- vs Describe3D / CLIP-Face: 早期基于 CLIP 的方法仅通过全局图文余弦相似度优化参数,极易陷入局部极值,对复杂句式理解极其脆弱;EmoteGPT 依靠全参数因果大模型深层语义交互,在情绪分类准确率上从 0.34 跃升至 0.59。
- vs HumanNorm / Portrait3D: 扩散全头生成算法将几何、身份、纹理全部交织在一起,无法单独替换表情,且单次生成需数分钟甚至更久;EmoteGPT 采用结构化参数回归,严格固定身份 \(\beta=0\),推理迅速且表情控制具备确定性。
- vs LISA / ChatPose: 延续了“特定任务专用 Token”的设计哲学,将分割 mask、人体骨骼姿态的成功范式推广至连续 3D 人脸表情空间,为通用具身智能体的情感动作表达提供了优雅的标准接口。
评分¶
- 新颖性: ⭐⭐⭐⭐☆ 提出专用
<Expr>标记与首个显式/隐式双粒度 3D 表情生成基准 Txt2Emote,架构设计简洁实用。 - 实验充分度: ⭐⭐⭐⭐⭐ 涵盖几何误差、情绪量化指标、扩散 SOTA 拟合对比、图形学用户研究与消融实验,验证闭环严密。
- 写作质量: ⭐⭐⭐⭐⭐ 逻辑清晰严谨,从数据瓶颈到模型设计的论证层层递进,插图与实验呈现专业规范。
- 价值: ⭐⭐⭐⭐⭐ 彻底打通大语言模型与 3D 人脸动画管线的控制壁垒,对虚拟主播、影视动画与游戏 NPC 智能化具有重要落地意义。