欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > Talking Head Review (数字人算法综述)

Talking Head Review (数字人算法综述)

2025/3/11 22:06:00 来源:https://blog.csdn.net/kebijuelun/article/details/143985774  浏览:    关键词:Talking Head Review (数字人算法综述)

文章目录

  • 引言
  • 3D Model based
    • GeneFace
      • 背景
      • 方案
      • 实验
    • GeneFace++
      • 背景
      • 方案
      • 实现细节
      • 实验
    • Real3D-Portrait
      • 背景
      • 方案
      • 实现细节
      • 实验
    • MimicTalk
      • 背景
      • 方案
      • 实现细节
      • 实验
    • face-vid2vid
      • 背景
      • 方案
      • 实现细节
      • 实验
    • MegaPortraits
      • 背景
      • 方案
      • 实现细节
      • 实验
    • VASA-1
      • 背景
      • 方案
      • 实现细节
      • 实验
    • LivePortrait
      • 背景
      • 方案
      • 实现细节
    • EMOPortraits
      • 背景
      • 方案
      • 实现细节
      • 实验
    • INFP
      • 背景
      • 方案
      • 实现细节
      • 实验
  • 3D Model Free
    • Loopy
      • 背景
      • 方案
      • 实现细节
      • 实验
    • MUSETALK
      • 背景
      • 方案
      • 实现细节
      • 实验
    • X-Portrait
      • 背景
      • 方案
      • 实现细节
      • 实验
    • EchoMimic
      • 背景
      • 方案
      • 实现细节
      • 实验
    • OmniHuman-1
      • 背景
      • 方案
      • 实现细节
      • 实验
  • 总结

引言

近年来,3D 说话人脸生成技术取得了显著进展,并在虚拟数字人、视频制作、远程教育和 AI 交互等多个领域展现出广泛应用前景。从传统 3D 形变模型 (3DMM) 到基于神经辐射场 (NeRF)扩散模型 (Diffusion) 的生成方法,研究人员不断优化生成质量、实时性和泛化能力。本文对当前最前沿的 3D 说话人脸生成模型进行了深入梳理,包括 GeneFaceGeneFace++Real3D-PortraitMimicTalkVASA-1LivePortraitMegaPortraitsEchoMimicOmniHuman-1 等。本文详细介绍了各个模型的背景、核心技术方案、实现细节及实验对比,为读者提供全面的技术概览和发展趋势分析。

3D Model based

GeneFace

  • URL:https://geneface.github.io/
  • 作者:浙大 + 字节,ICLR 2023
  • 效果:中
  • 开源:是
  • 实时性:差(0.064 FPS)

背景

  • 3D Morphable Model (3DMM) 只能定义粗略的人头3D网格,细节(如头发、皱纹、牙齿等)被忽略,这为基于GAN的方法实现逼真结果带来了挑战。NeRF能够渲染出包含丰富细节(如头发、皱纹)的高保真图像。
  • 而当前基于 NeRF 的方法面临由于音频到运动训练数据不足导致的弱泛化问题,以及一对多映射引起的“平均脸”问题。

方案

  • 本文开发了一种名为 GeneFace 的说话人脸生成系统
    • 为了解决弱泛化问题,本文设计了一种音频到运动的模型,该模型根据输入音频预测3D面部标志点。利用了来自大规模唇读数据集 (Lrs3-ted) 的数百小时音频-运动对,学习鲁棒的映射。
    • 针对“平均脸”问题,本文采用了基于变分自编码器(VAE)且具有流形先验的音频到运动模型架构,生成准确且富有表现力的面部运动。

在这里插入图片描述

  • 本文系统包括三个阶段:
    • 音频到运动:提出一种变分运动生成器,根据输入音频生成准确且富有表现力的面部标志点。

      • 音频特征:采用 HuBERT 模型提取输入音频的语义特征,作为生成器的条件输入。
      • 运动表示:选取重建 3D 头部网格中的 68 个关键点,以其位置作为运动表示,定义为:
        L M 3 D = { ( M − M mean ) i ∣ i ∈ I } , LM_{3D} = \{(M - M_{\text{mean}})_i | i \in I\}, LM3D={(MMmean)iiI},
        其中 L M 3 D ∈ R 68 × 3 LM_{3D} \in \mathbb{R}^{68 \times 3} LM3DR68×3 M M M M mean M_{\text{mean}} Mmean 分别为 3DMM 网格和平均网格, I I I 为关键点的索引。
      • 训练:
        • 为了克服传统 VAE 高斯先验的局限性(如时间点独立性和多样性受限),本文引入归一化流(Normalizing Flow)作为 VAE 的时间相关复杂先验分布,提升生成效果、
        • 由于流先验的引入,采用 Monte-Carlo ELBO 损失训练 VAE 模型:
          L VG ( ϕ , θ , ψ ) = − E q ϕ ( z ∣ l , a ) [ log ⁡ p θ ( l ∣ z , a ) ] + KL ( q ϕ ( z ∣ l , a ) ∣ ∣ p ψ ( z ∣ a ) ) − E l ^ ∼ p θ ( l ∣ z , c ) [ log ⁡ D sync ( l ^ ) ] , L_{\text{VG}}(\phi, \theta, \psi) = -\mathbb{E}_{q_\phi (z|l,a)}[\log p_\theta (l|z, a)] + \text{KL}(q_\phi (z|l, a) || p_\psi (z|a)) - \mathbb{E}_{\hat{l} \sim p_\theta (l|z, c)}[\log D_{\text{sync}}(\hat{l})], LVG(ϕ,θ,ψ)=Eqϕ(zl,a)[logpθ(lz,a)]+KL(qϕ(zl,a)∣∣pψ(za))El^pθ(lz,c)[logDsync(l^)],
          其中 ϕ , θ , ψ \phi, \theta, \psi ϕ,θ,ψ 分别表示编码器、解码器和先验的参数, l l l l ^ \hat{l} l^ 分别为真实和预测的 3D 关键点。
    • 运动域适应:为克服域偏移,提出一种半监督对抗训练流程,训练一个域自适应后处理网络,将多说话人域的 3D 标志点调整到目标人物域。
      在这里插入图片描述

      • 通过 Post-net 将生成的 3D 关键点调整至目标人物域,同时满足以下要求:
        1. 保持时间一致性与唇部同步。
        2. 准确映射至目标人物域。
      • Post-net 采用 1D CNN 架构,同时引入同步专家(Sync-expert)监督唇部同步,并设计 MLP 结构的帧级鉴别器,评估关键点帧与目标人物的身份相似度。
        • 训练:Post-net 与鉴别器对抗训练,同时利用目标人物数据提供弱监督信号。最终损失函数为:
          L PN ( ω ) = E l ^ ∼ p θ ( l ∣ z , c ) [ ( D δ ( P N ω ( l ^ ) ) − 1 ) 2 ] + E l ^ ∼ p θ ( l ∣ z , c ) [ D sync ( l ^ ) ] + E l ^ ′ ∼ p θ ( l ∣ z , c ′ ) [ ( ( P N ω ( l ^ ′ ) − l ′ ) 2 ] , L_{\text{PN}}(\omega) = \mathbb{E}_{\hat{l} \sim p_\theta (l|z,c)}[(D_\delta (PN_\omega (\hat{l})) - 1)^2] + \mathbb{E}_{\hat{l} \sim p_\theta (l|z,c)}[D_{\text{sync}}(\hat{l})] + \mathbb{E}_{\hat{l}' \sim p_\theta(l|z,c')}[((PN_\omega (\hat{l}') - l')^2], LPN(ω)=El^pθ(lz,c)[(Dδ(PNω(l^))1)2]+El^pθ(lz,c)[Dsync(l^)]+El^pθ(lz,c)[((PNω(l^)l)2],
          其中 ω \omega ω δ \delta δ 为 Post-net 和鉴别器的参数。
    • 运动到图像:设计了一种基于 NeRF 的渲染器,以预测的3D标志点为条件渲染高保真帧。
      在这里插入图片描述

      • 提出条件 NeRF,以 3D 关键点 l l l 操控头部的颜色与几何。隐函数定义为:
        F θ : ( x , d , l ) → ( c , σ ) , F_\theta : (x, d, l) \to (c, \sigma), Fθ:(x,d,l)(c,σ),
        其中 c c c σ \sigma σ 分别表示颜色和辐射场中的密度。
        通过对相邻三帧的关键点标准化,提升了帧间连续性和视觉质量。基于体渲染公式,每个像素的颜色为:
        C ( r , l ; θ ) = ∫ t n t f σ θ ( r ( t ) , l ) ⋅ c θ ( r ( t ) , l , d ) ⋅ T ( t ) d t , C(r, l; \theta) = \int_{t_n}^{t_f} \sigma_\theta (r(t), l) \cdot c_\theta (r(t), l, d) \cdot T(t) dt, C(r,l;θ)=tntfσθ(r(t),l)cθ(r(t),l,d)T(t)dt,
        其中 T ( t ) T(t) T(t) 为累积透射率。
      • 为更好地建模头部和躯干运动,本文分别训练头部-NeRF 和躯干-NeRF。为了缓解头部和躯干分离问题,设计了一种新方法,将头部渲染结果 C head C_{\text{head}} Chead 作为躯干-NeRF 的像素级条件。
      • 训练:通过从视频帧中提取 3D 关键点,构建关键点-图像对训练 NeRF 渲染器。优化目标是减少渲染图像与真实图像之间的重建误差,损失函数定义为:
        L NeRF ( θ ) = ∑ r ∈ R ∣ ∣ C θ ( r , l ) − C g ∣ ∣ 2 2 , L_{\text{NeRF}}(\theta) = \sum_{r \in R} ||C_\theta (r, l) - C_g||_2^2, LNeRF(θ)=rR∣∣Cθ(r,l)Cg22,
        其中 R R R 为摄像机射线集合, C g C_g Cg 为真实图像的颜色。

实验

  • 唇部同步:GeneFace 在 LMD 上表现最佳,并且同步得分优于其他基线。对于域外音频,LSP 和 AD-NeRF 的同步得分明显下降,而 GeneFace 保持良好性能。
  • 视觉质量:GeneFace 获得最佳视觉质量。一些单次方法(如 Wav2Lip、MakeItTalk 和 PC-AVS)由于图像保真度较低,FID 分数较差。GeneFace 利用 3D 关键点作为 NeRF 渲染器的条件,解决了“平均脸”问题,实现了更好的唇部同步和视觉质量。
    在这里插入图片描述

GeneFace++

  • URL:https://genefaceplusplus.github.io/
  • 作者:浙大+字节,2024 年工作
  • 效果:中(基本不眨眼,表情丰富度一般)
  • 开源:是
  • 实时性:好(NVIDIA RTX 3090 GPU,23.55 FPS)

背景

  • 现代的说话人脸生成方法需实现以下目标:广义的音频-唇部同步、高质量的视频生成以及高效的系统性能。
  • 近年来,神经辐射场(NeRF)成为该领域热门的渲染技术,因为它能够利用仅几分钟的训练视频生成高保真且3D一致的说话人脸。然而,基于NeRF的方法仍面临以下挑战:
    1. 唇部同步:难以生成时间一致性和音频-唇部精确度较高的长面部运动序列;
    2. 视频质量:由于渲染器训练数据有限,容易在域外输入条件下生成质量较差的渲染结果;
    3. 系统效率:原始 NeRF 较慢的训练和推理速度严重阻碍了其在实际应用中的使用。

方案

在这里插入图片描述

  • 为了解决这些问题,本文提出 GeneFace++,首个实现稳定和实时说话人脸生成的基于 NeRF 的方法,同时实现了广义音频-唇部同步能力。采用以下策略:
    1. 在面部运动预测过程中引入 音高轮廓 作为辅助特征,并添加时间损失以提高时间一致性和音频-唇部同步精度;
    2. 提出 关键点局部线性嵌入方法,对预测运动序列中的异常值进行调节,以提升系统的鲁棒性;
    3. 设计了一种计算效率高的基于 NeRF 的运动到视频渲染器,实现快速训练与实时推理。
    • 利用可学习的 3D 特征网格编码 3D 空间信息,相比原始 NeRF 通过密集 MLP 计算空间特征,网格编码直接查询连续 3D 空间中的特征,显著提升训练和推理效率。使用占用网格(Occupancy Grid)记录 NeRF 的密度值 σ \sigma σ,以修剪射线路径。

实现细节

  • 训练数据

    • 为训练广义音频到运动模块,使用 LRS3-TED 的清洁子集,包含 190 小时高质量音频-运动对。
    • 为训练基于 NeRF 的目标人物渲染器,采用 Live Speech Portraits 和 AD-NeRF 提供的数据集,包括 5 个平均长度为 6,000 帧(25 FPS)的视频。
  • 预处理:

    • 提取音频特征:从音频轨中提取 HuBERT 特征和音高轮廓。
    • 提取运动特征:从视频帧中提取头部姿态和 3D 关键点。
    • 图像处理:将目标人物视频裁剪为 512 × 512 512 \times 512 512×512 分辨率,并使用自动解析方法 MaskGAN 分割头部和躯干部分,提取干净背景。
  • 训练细节

    • 在 1 块 NVIDIA RTX 3090 GPU 上训练:
      • 音频到运动模块中的 VAE 和 Postnet:分别需要 40k 和 10k 步收敛(约 12 小时)。
      • 即时渲染模块:头部和躯干分别训练 200k 步,总计 400k 步(约 10 小时)。

实验

  • GeneFace++ 实现了接近实时的推理速度(约 23.55 FPS),相比 GeneFace 的 0.064 FPS 有显著提升。
    在这里插入图片描述

Real3D-Portrait

  • URL:https://real3dportrait.github.io/
  • 作者:浙大 + 字节,ICLR 2024
  • 效果:中(头部运动不自然,表情丰富程度低)
  • 开源:是
  • 实时性:差

背景

  • 二维方法由于缺乏明确的三维建模,在处理大幅度头部运动时容易出现扭曲伪影和不真实的变形。
  • 基于神经辐射场 (NeRF) 的三维方法即使在大幅度头部姿态下也能保持真实的三维几何结构并保留丰富的纹理细节。然而,这些方法大多针对特定人物进行过拟合,导致每个未见身份都需要昂贵的单独训练。因此,探索单次 3D 谈话人脸生成任务具有重要意义,即根据未见人物的参考图像,将其转换为三维化身,并通过输入条件进行动画化以生成逼真的 3D 谈话人物视频。

方案

在这里插入图片描述

  • 本文提出了 Real3D-Portrait,一种单次且逼真的 3D 谈话头像生成方法,其主要贡献包括:
    • 通过 I2P 模型与运动适配器提升 3D 重建与动画能力;
      • I2P 模型是一个前馈网络,可以通过单次前向操作重建输入图像的三维表示。
    • 通过 HTB-SR 模型实现自然的躯干运动与可切换背景渲染;
      • 包括一个超分辨率分支用于对低分辨率体积渲染的头部图像进行上采样,一个基于变形的躯干分支用于建模独立的躯干运动,以及一个背景分支用于实现可切换背景渲染。
    • 提出了一个通用的 A2M 模型,成为首个同时支持音频与视频驱动场景的单次 3D 人脸系统。
      • 将音频信号转换为运动表示 projected normalized coordinate code (PNCC)。该音频到运动模型无需适配即可很好地泛化到未见身份,并支持显式的眨眼与嘴部振幅控制。

实现细节

  • 训练数据集
    • 训练运动适配器和 HTB-SR 模型:CelebV-HQ。该数据集包含约 65 小时的视频数据,共 35,666 个分辨率为 512 × 512 512 \times 512 512×512 的视频片段,涉及 15,653 个身份
    • 为训练 A2M 模型,使用了 VoxCeleb2 数据集,这是一个时长为 2,000 小时的大规模低保真唇语阅读数据集,能够保证音频到运动映射的泛化能力

实验

  • 视频驱动的同/跨身份重演:Real3D-Portrait 在 L1、PSNR、SSIM、LPIPS 和 FID 方面表现最佳,实现了最高的图像质量。其次,Real3D-Portrait 获得了最高的 CSIM,表明其能够很好地保留源图像的身份信息。最后,该方法在 AED、APD 和 AKD 上表现最佳,表明能够根据输入条件准确地为 3D 化身动画化。
    在这里插入图片描述
  • 音频驱动的谈话人脸生成:与两个单次二维方法 MakeItTalk 和 PC-AVS 相比,本文方法在身份相似性 (CSIM)、图像质量 (FID)、唇部同步 (AED 和 Sync 分数) 方面表现显著更好。与针对特定人物的三维方法 RAD-NeRF 相比(该方法通过对测试身份 3 分钟视频进行过拟合训练),Real3D-Portrait 除了在唇部同步上表现更优外,凭借充分训练的 I2P 模型和运动适配。在这里插入图片描述

MimicTalk

  • URL:https://mimictalk.github.io/
  • 作者:浙大 + 字节,NeurIPS 2024
  • 效果:中(表情丰富度一般,头部运动小)
  • 开源:是
  • 实时性:差

背景

  • 语音驱动的人脸生成(Talking Face Generation, TFG)旨在使目标身份的人脸生成真实的语音视频。尽管现有方法通常通过为每个身份单独学习神经辐射场(NeRF)来隐式存储该身份的静态和动态信息,但本文发现这种方法由于按身份单独训练的框架以及有限的训练数据,效率低下且泛化能力不足。

方案

在这里插入图片描述

  • 在 Real3D-Portrait 模型基础上提出了 MimicTalk,首次尝试利用基于 NeRF 的与身份无关的通用模型的丰富知识来提高个性化 TFG 的效率和鲁棒性。具体而言:
    • 首先提出了一个与身份无关的三维 TFG 模型作为基础模型,并提出将其适配到特定身份;
      • 从目标人物的源图像 I src I_{\text{src}} Isrc 中重建一个规范化的三维人脸表征(基于三平面表示)。
      • Mip-NeRF 的体积渲染器可通过控制相机生成任意头部姿态下的动态说话人脸
    • 提出了一种静态-动态混合 (SD-hybrid) 适配管道,以帮助模型学习个性化的静态外观和面部动态;
      • LoRA 对通用模型进行适配以学习目标人物的个性化面部动态
      • 本文发现图像到三维转换过程中的信息丢失是导致静态相似性不足的主要原因,提出了一种三平面反演技术,将规范化三维人脸表示视为可学习参数并进行优化,以最大化静态身份相似性
    • 提出了一种上下文感知的风格化音频到动作(ICS-A2M)模型,使其能够在生成语音同步面部动作的同时模仿目标人物的语音风格。
      • 引入了一种高级生成模型——流匹配 (Flow Matching),用于生成表达性面部运动。

实现细节

  • 训练配置
    • 针对 SD-Hybrid 适配,在 1 张 Nvidia A100 GPU 上训练模型,批量大小为 1,总训练迭代次数为 2000,使用约 8 GB GPU 内存,耗时约 0.26 小时。
    • 关于 ICS-A2M 模型,我们在 4 张 Nvidia A100 GPU 上训练,每张 GPU 的批量大小为 20,000 个 Mel 帧。
    • 基于流匹配的 ICS-A2M 模型训练了 500,000 次迭代,总耗时 80 小时。
  • 训练数据
    • 训练 ICS-A2M 模型,本文使用了大规模唇读数据集 VoxCeleb2
  • 推理使用 Classifier-Free Guidance (CFG) 提升风格模仿,权重设置为 2
  • 得益于基于 LoRA 的适应过程的高效性,本文方法在 2000 次迭代和 15 分钟内就能适应新的身份(比 RAD-NeRF 快 47 倍)。适应过程也只需要较低的GPU内存使用 (8.239 GB)。

实验

  • SD-Hybrid 适应比之前的人物特定方法具有更好的训练/样本效率
    在这里插入图片描述

face-vid2vid

  • URL:https://nvlabs.github.io/face-vid2vid/
  • 作者:NVIDIA,CVPR 2021 (Oral)
  • 效果:中(表情丰富度低)
  • 开源:否
  • 实时性:未提及,理论上可以优化到实时

背景

  • 与基于 3D 的模型相比,基于 2D 的方法具有多个优势。首先,它避免了 3D 模型获取过程,该过程通常繁琐且昂贵
  • 现有的基于 2D 的 one-shot 学习说话人头方法也有其局限性。由于缺少 3D 图形模型,这些方法只能从原始视角合成说话人头,无法从新视角渲染。

方案

  • 通过一种新颖的 3D 关键点表示实现了新视角渲染,将人物特定信息和运动相关信息进行分解。
    • 关键点及其分解均通过无监督学习获得。通过分解,可以对人物特定表示应用 3D 变换,从而在输出视频中模拟头部姿态变化,例如旋转说话人头。
    • 在基准说话人头数据集上与商用 H.264 标准进行了比较,表明本文的方法可以实现 10 倍的带宽减少。
    • source image 是驱动视频的一帧时可以看成是视频重建任务;source image 不来自驱动视频时,这是动作迁移任务
      在这里插入图片描述
  • 本文方案包含三个主要步骤:
    • 源图像特征提取
      • 基于 3D 外观特征提取网络提取 3D 外观特征体积,该 3D 特征包含三个空间维度:宽度、高度和深度
      • 用一个标准的 3D 关键点检测网络提取 K 个 3D 关键点,本文 K 设置为 20。关键点是无监督学习获取的,与常见的面部 landmark 不一样。这些关键点应独立于面部的姿态和表情,仅编码人物的几何特征
      • 从图像中提取姿态和表情信息:使用一个头部姿态估计网络估计头部姿态,参数化为旋转矩阵 R 和平移向量 t。另外使用一个表情形变估计网络来估计一组 K 个 3D 形变 δ \delta δ,表示关键点从中性表情的形变。
      • 通过 R、t、 δ \delta δ 可以将 source image 的 3D 关键点进行变换,如下图所示:
        在这里插入图片描述
    • 驱动视频特征提取
      • 对驱动视频中的每一帧 d 都以相同的方式处理。 在这里插入图片描述
    • 视频生成
      • 通过对源特征体进行变形,然后将结果输入图像生成器 G,以合成输出图像 y。变形过程近似于从源图像 s 到驱动图像 d 的非线性变换,重新定位源特征以完成合成任务。
        在这里插入图片描述

实现细节

  • 训练:
    • 使用包含单个人物的说话头视频数据集来训练模型。对于每个视频,我们从中采样两帧:一帧作为源图像 s,另一帧作为驱动图像 d
    • loss 包含:
      • Perceptual loss
      • GAN loss
      • Equivariance loss:确保图像特定的关键点保持一致性。在计算损失前,通过正交投影将 3D 关键点投影到图像平面
      • Keypoint prior loss:鼓励估计的图像特定关键点在面部区域内均匀分布。计算每对关键点之间的距离,如果距离小于预设阈值,则对模型进行惩罚。还使用关键点深度先验损失,鼓励关键点的平均深度接近预设值。
      • Head pose loss:使用预训练的姿态估计网络来估计头部姿态,有监督学习。
      • Deformation prior loss:惩罚表情变形幅度,由于变形建模的是因表情变化导致的偏离规范关键点的程度,其幅度应保持较小

实验

  • 评估使用数据集

    • VoxCeleb2
    • TalkingHead-1KH:新收集的大规模说话头视频数据集,包含 18 万个视频,其质量和分辨率通常高于 VoxCeleb2
  • 定量对比效果达到了当时的 SOTA
    在这里插入图片描述

MegaPortraits

  • URL:https://neeek2303.github.io/MegaPortraits/
  • 作者:三星,ACMM 2022
  • 效果:中(artifacts 明显)
  • 开源:否
  • 实时性:实时(蒸馏针对特定外观的小模型,130 FPS on NVIDIA RTX 3090,FP16)

背景

  • face vid2vid 生成的视频质量受到训练数据集分辨率的严重限制,只能在最高 512x512 分辨率下生成头像。由于需要同时满足大规模和多样性(包括数千人、每人多帧、不同人口统计特征、光照、背景、面部表情和头部姿态),这一限制难以通过收集更高分辨率的数据集轻松绕过。

方案

  • MegaPortraits 方案在 face vid2vid 基础上有以下三个方面优化
    • 提出了一种新的 one-shot 神经头像模型,能够在高达 512×512 分辨率下实现最先进的跨驱动质量。采用了 face vid2vid 将头像外观表示为潜在 3D 体积的思想,并提出了一种将其与潜在运动表示结合的新方法,其中包括一种新颖的对比损失,使 MegaPortraits 系统能够在潜在运动和外观表示之间实现更高程度的解耦。此外,还添加了一个特定问题的注视损失,提高了眼睛动画的真实感和准确性。
    • 展示了如何通过高分辨率静态图像的额外数据集,将基于中等分辨率视频训练的模型“升级”到百万像素(1024×1024)分辨率
    • 由于许多人类头像创建的实际应用需要实时或比实时更快的渲染,将百万像素模型提炼为一个快十倍的学生模型,该模型在现代 GPU 上以 130 FPS 的速度运行。这种显著的加速得益于学生模型针对特定外观进行训练(与可以为以前未见过的人创建新头像的主模型不同)

在这里插入图片描述

  • 训练设置:在每一步中,从数据集中采样两个随机帧:源帧 x s x_s xs 和驱动帧 x d x_d xd。该模型将驱动帧的运动(即头部姿势和面部表情)施加到源帧的外观上,以生成图像 x ^ s → d \hat{x}_{s\rightarrow d} x^sd。主要的学习信号来自于源帧和驱动帧来自同一视频的训练阶段,因此模型的预测被训练以匹配驱动帧

  • 基础模型结构

    • 源帧 x s x_s xs 通过外观编码器 E a p p E_{app} Eapp,输出局部体积特征 v s v_s vs(第四维对应通道)和全局描述符 e s e_s es
    • 通过分别对每个图像应用运动编码器 E m t n E_{mtn} Emtn 来计算源帧和驱动帧的运动描述符。该编码器输出头部旋转 R s / d R_{s/d} Rs/d、平移 t s / d t_{s/d} ts/d 和潜在表情描述符 z s / d z_{s/d} zs/d
    • 将源元组 ( R s , t s , z s , e s ) (R_s, t_s, z_s, e_s) (Rs,ts,zs,es) 输入到变形生成器 W s → W_{s\rightarrow} Ws,生成 3D 变形场 w s → w_{s\rightarrow} ws,通过将体积特征 v s v_s vs 映射到规范坐标空间来去除运动数据。这些特征随后由 3D 卷积网络 G 3 D G_{3D} G3D 处理。
    • 将驱动元组 ( R d , t d , z d , e s ) (R_d, t_d, z_d, e_s) (Rd,td,zd,es) 输入到单独的变形生成器 W → d W_{\rightarrow d} Wd,其输出 w → d w_{\rightarrow d} wd 用于施加驱动运动。
    • 最终的 4D 体积特征以如下方式获得:
      v s → d = w → d ∘ G 3 D ( w s → ∘ v s ) v_{s\rightarrow d} = w_{\rightarrow d} \circ G_{3D} (w_{s\rightarrow} \circ v_s) vsd=wdG3D(wsvs)
      其中 ∘ \circ 表示 3D 变形操作。
      • 设计思路
        • 这种方法的思路是首先将体积特征旋转到正面视角,去除从 z s z_s zs 解码的任何面部表情运动,通过 3D 卷积网络处理,然后施加驱动的头部旋转和运动。
        • 本文使用预训练网络估计头部旋转数据,但潜在表情向量 z s / d z_{s/d} zs/d 和到规范坐标空间的变形是在没有直接监督的情况下训练的。
        • 体积特征编码和显式使用头部姿势的灵感来自于 face vid2vid。然而,与 face vid2vid 的显著区别在于,本文不使用关键点来表示表情,而是依赖潜在描述符 (Latent Pose Descriptors),该描述符被解码为显式 3D 变形场,以更加个人无关的方式表示面部表情。
        • 已观察到,当增加头像系统的容量以支持更高分辨率时,Neural Head Reenactment 中提出的运动解耦方案开始失效。这个问题导致从驱动帧到预测图像出现严重的外观泄漏。为了解决这一问题,本文提出使用循环一致性损失,并改进驱动图像的预处理管道。
    • 最后,使用与 face vid2vid 相同的方法,将驱动体积特征 v s → d v_{s\rightarrow d} vsd 正交投影到相机帧,记为 P P P。通过 2D 卷积网络 G 2 D G_{2D} G2D 将得到的 2D 特征图解码为输出图像:
      x ^ s → d = G 2 D ( P ( v s → d ) ) \hat{x}{s\rightarrow d} = G_{2D}(P(v_{s\rightarrow d})) x^sd=G2D(P(vsd))
      将上述网络组合称为 G b a s e G_{base} Gbase,因此有:
      x ^ s → d = G b a s e ( x s , x d ) \hat{x}{s\rightarrow d} = G_{base}(x_s, x_d) x^sd=Gbase(xs,xd)

实现细节

  • 第一阶段训练 loss

    • perceptual loss (用了三个模型:imagenet 训练的 vgg19 + VGGFace + VGG16 的专用注视损失模型)
    • GAN loss
    • 循环一致性 loss:用于防止运动描述符中出现外观泄漏。这对于光照、发型、胡须风格或太阳镜等驱动帧特征可能泄漏到预测图像中的情况尤为重要
      • 使用一个额外的源-驱动对 x s ∗ x_{s^*} xs x d ∗ x_{d^*} xd,这对图像从不同的视频中采样,因此与当前的 x s x_s xs x d x_d xd 对具有不同的外观
      • 应用完整的基础模型,生成以下交叉重现图像: x ^ s ∗ → d = G b a s e ( x s ∗ , x d ) \hat{x}{s^{*}\rightarrow d} = G_{base}(x_{s^{*}}, x_d) x^sd=Gbase(xs,xd),并单独计算运动描述符 z d ∗ = E m t n ( x d ∗ ) z_{d^{*}} = E_{mtn}(x_{d^*}) zd=Emtn(xd)
      • 使用基础网络各自前向传播中存储的运动描述符 z s ∗ → d z_{s^*\rightarrow d} zsd z s → d z_{s\rightarrow d} zsd
      • 将运动描述符排列成应相互对齐的正对 P P P P = ( z s → d , z d ) , ( z s ∗ → d , z d ) P = (z_{s\rightarrow d}, z_d), (z_{s^*\rightarrow d}, z_d) P=(zsd,zd),(zsd,zd),以及负对 N N N N = ( z s → d , z d ∗ ) , ( z s ∗ → d , z d ∗ ) N = (z_{s\rightarrow d}, z_{d^*}), (z_{s^*\rightarrow d}, z_{d^*}) N=(zsd,zd),(zsd,zd)。这些对用于计算以下余弦距离:
        d ( z i , z j ) = s ⋅ ⟨ z i , z j ⟩ − m d(z_i, z_j) = s \cdot \langle z_i, z_j \rangle - m d(zi,zj)=szi,zjm
        其中 s s s m m m 都是超参数。然后,使用该距离计算大间隔余弦损失(CosFace):
        L c o s = − ∑ ( z k , z l ) ∈ P log ⁡ exp ⁡ d ( z k , z l ) exp ⁡ d ( z k , z l ) + ∑ ( z i , z j ) ∈ N exp ⁡ d ( z i , z j ) L_{cos} = -\sum_{(z_k,z_l)\in P} \log \frac{\exp d(z_k, z_l)}{\exp d(z_k, z_l) + \sum_{(z_i,z_j)\in N}\exp d(z_i, z_j)} Lcos=(zk,zl)Plogexpd(zk,zl)+(zi,zj)Nexpd(zi,zj)expd(zk,zl)
  • 第二阶段训练:二阶段固定基础神经头像模型 G b a s e G_{base} Gbase,仅训练图像到图像的转换网络 G e n h G_{enh} Genh,将分辨率为 512 × 512 512 \times 512 512×512 的输入 x ^ \hat{x} x^ 映射到分辨率为 1024 × 1024 1024 \times 1024 1024×1024 的增强版本 x ^ H R \hat{x}_{HR} x^HR

    • 训练数据使用 styleGAN 提出的高分辨率人脸图片数据集,假设所有图片都不是相同的 identity 来训练。
    • 训练 loss 有两组:
      • 标准超分辨率目标:使用 L 1 \mathcal{L}1 L1 损失(记为 L M A E L_{MAE} LMAE)和 GAN 损失 L G A N L_{GAN} LGAN
      • 无监督监督目标,目的是确保模型在跨驱动场景中生成的图像表现良好。对于每个训练图像 x H R x_{HR} xHR,采样一个额外图像 x H R c x_{HR}^c xHRc,并生成其初始重建 x ^ c = G b a s e ( x L R , x L R c ) \hat{x}c = G_{base}(x_{LR}, x_{LR}^c) x^c=Gbase(xLR,xLRc),其中 x L R c x_{LR}^c xLRc 用于估计运动, x L R x_{LR} xLR 用于估计外观。由于对 x ^ H R c = G e n h ( x ^ c ) \hat{x}_{HR}^c = G{enh}(\hat{x}_c) x^HRc=Genh(x^c) 没有高分辨率 ground truth,只能通过补丁判别器将其分布与 ground truth 匹配。此外,可以通过在低分辨率应用循环一致性损失来保证内容保持:
        L c y c c = L M A E ( D S 4 ( x ^ c ) , D S 8 ( x ^ H R c ) ) L^c_{cyc} = L_{MAE}(D_{S4}(\hat{x}c), D_{S8}(\hat{x}_{HR}^c)) Lcycc=LMAE(DS4(x^c),DS8(x^HRc))
        其中 D S k D_{S_k} DSk 表示 k k k 倍下采样算子。
  • 模型蒸馏

    • 学生模型被训练以模仿全模型(教师模型) G H R = G e n h ∘ G b a s e G_{HR} = G_{enh} \circ G_{base} GHR=GenhGbase(结合基础模型和增强器)的预测
    • 仅在跨驱动模式下训练,通过使用教师模型生成伪 ground truth
    • 在有限数量的头像上训练学生网络,因此使用索引 i i i 进行条件化,该索引从全部 N N N 个外观集合 x i i = 1 N {x_i}_{i=1}^N xii=1N 中选择一幅图像
    • 训练过程如下:采样驱动帧 x d x_d xd 和索引 i i i。然后匹配以下两幅图像:
      x ^ i → d D T = G D T ( x d , i ) \hat{x}^{DT}_{i\rightarrow d} = G_{DT}(x_d, i) x^idDT=GDT(xd,i)
      x ^ i → d H R = G H R ( x i , x d ) \hat{x}^{HR}_{i\rightarrow d} = G_{HR}(x_i, x_d) x^idHR=GHR(xi,xd)
      使用感知损失和对抗性损失的组合来训练该网络

实验

  • 训练数据集:VoxCeleb2、VoxCeleb2HQ、FFHQ
    • 通过下载原始视频并使用比特率和图像质量评估,VoxCeleb2 获得了高质量版本 VoxCeleb2HQ,数据集缩减到原始数据集的十分之一(15,000)
    • 使用一个专有数据集(20,000 个自拍视频和 100,000 张自拍图片)来训练学生模型。学生模型蒸馏了 100 个头像
  • 定量指标大部分达到当时的最优。
    • 交叉重现评估使用 VoxCeleb2HQ 和 FFHQ 数据集的样本
    • 自重现评估使用 VoxCeleb2 和 VoxCeleb2HQ 数据集
      在这里插入图片描述

VASA-1

URL:https://www.microsoft.com/en-us/research/project/vasa-1/
作者:微软,2024
效果:好(表情丰富)
开源:否
实时性:实时(online streaming mode, 512x512, 40 FPS, preceding latency 170ms, NVIDIA RTX 4090 GPU)

背景

  • 人脸不仅仅是一个面孔,而是一个动态的画布,每一个微妙的动作和表情都能表达情感、传达未言之语,并促进共情联系。
  • 人工智能生成的会说话的面孔的出现,为我们打开了一扇窗,让我们看到了一个技术增强人与人之间、人与人工智能互动丰富性的未来。这样的技术有望丰富数字通信,为沟通障碍者增加可及性,通过互动式人工智能辅导转变教育方法,并在医疗保健中提供治疗支持和社交互动。
  • 当前的技术主要关注唇部动作,同时生成效率较慢,难以实时处理

方案

  • VASA:根据单个静态图像和语音音频剪辑生成具有吸引力的视觉情感技能(VAS)的逼真会说话的面孔
    • 生成与音频完美同步的唇部动作
    • 产生一系列面部细微表情和自然头部动作
    • 支持在线生成高达 40 FPS 的 512×512 视频,几乎没有启动延迟

实现细节

在这里插入图片描述

  • 构建既高度解耦又表现力强的人脸潜空间,并训练人脸编码器和解码器

    • 基于 face vid2vid 中的 3D-aid 面部重演框架进行建模。将面部图像分解为以下潜变量:
      • 3D 外观体积 V a p p V^{app} Vapp
      • 身份代码 z i d z^{id} zid
      • 3D 头部姿势 z p o s e z^{pose} zpose
      • 面部动态代码 z d y n z^{dyn} zdyn
    • 除了 V a p p V^{app} Vapp 以外的其他潜变量都是通过独立的 encoder 从人脸图像中提取。 V a p p V^{app} Vapp 是参考 MegaPortraits,首先提取带姿态的 3D 体积,然后通过刚性和非刚性 3D 变形到规范体积来构建的。
    • 一个单一的解码器 D 将这些潜在变量作为输入,重建面部图像。在此过程中,首先将与 V a p p V^{app} Vapp 相关的逆向变形场应用于其上,以获得带姿态的外观体积。
    • 为了学习解耦的潜空间,核心思想是通过在视频中的不同图像之间交换潜变量来构建图像重建损失。在 MegaPortraits 的 loss 基础上增加了额外的几个损失函数:
      • 参考 DPE,添加了一对一的头部姿态和面部动态转移损失:设 I i I_i Ii I j I_j Ij 为从同一视频中随机采样的两帧。使用编码器提取它们的潜在变量,并将 I i I_i Ii 的头部姿势转移到 I j I_j Ij 上:
        I ^ j , z i p o s e = D ( V j a p p , z j i d , z i p o s e , z j d y n ) \hat{I}_{j,z^{pose}_i} = D(V^{app}_j, z^{id}_j, z^{pose}_i, z^{dyn}_j) I^j,zipose=D(Vjapp,zjid,zipose,zjdyn)
        I j I_j Ij 的面部运动转移到 I i I_i Ii 上:
        I ^ i , z j d y n = D ( V i a p p , z i i d , z i p o s e , z j d y n ) \hat{I}_{i,z^{dyn}_j} = D(V^{app}_i, z^{id}_i, z^{pose}_i, z^{dyn}_j) I^i,zjdyn=D(Viapp,ziid,zipose,zjdyn)
        随后最小化 I ^ j , z p o s e i \hat{I}_{j,z^{pose}i} I^j,zposei I ^ i , z d y n j \hat{I}_{i,z^{dyn}j} I^i,zdynj 之间的差异损失 l c o n s i s t l_{consist} lconsist
    • 为了加强身份和运动之间的解耦,添加跨身份姿势和面部运动转移结果的面部身份相似性损失 l c r o s s _ i d l_{cross\_id} lcross_id。设 I s I_s Is I d I_d Id 为两个不同主体的视频帧,可以将 I d I_d Id 的运动转移到 I s I_s Is 上:
      I ^ s , z d p o s e , z d d y n = D ( V s a p p , z s i d , z d p o s e , z d d y n ) \hat{I}_{s,z^{pose}_d,z^{dyn}_d} = D(V^{app}_s, z^{id}_s, z^{pose}_d, z^{dyn}_d) I^s,zdpose,zddyn=D(Vsapp,zsid,zdpose,zddyn)
      然后应用 ArcFace 从 I s I_s Is I ^ s , z d p o s e , z d d y n \hat{I}_{s,z^{pose}_d,z^{dyn}_d} I^s,zdpose,zddyn 中提取的深度人脸身份特征之间的余弦相似性损失。
  • 训练了一个简单但功能强大的 DiT (Diffusion Transformer),用于在测试时基于音频和其他条件建模运动分布并生成运动潜变量。也即实现无身份约束的整体面部动态生成(HFDG)

    • 与现有的方法通常为不同的因素应用独立的模型,并采用交错的回归和生成方法不同。VASA-1 学习到的潜代码表示所有的面部运动,包括唇部运动、(非唇部的)表情、眼睛注视和眨眼等
    • 从视频片段中提取运动序列定义为 X = { ∣ z p o s e i , z d y n i ∣ } X=\{|z_{pose}^{i}, z^{i}_{dyn}|\} X={zposei,zdyni},用 Wav2Vec2 提取同步的音频特征 A = { f a u d i o i } A=\{f_{audio}^{i}\} A={faudioi} A A A 作为 condition 输入 DiT
    • 附加信号
      • 眼睛注视方向 g:通过球面坐标系定义的一个向量,表示生成的口型面部的注视方向。用 L2CS-Net 提取每帧的方向然后聚类为注视方向的标签。
      • 头部距离 d:一个归一化标量,控制面部与虚拟摄像机之间的距离。使用 3D 人脸重建网络提取头部距离标注。
      • 情感偏移 e:用于调节口型面部上展示的情感。情感通常与音频紧密相关,并且可以从音频中大部分推断出来,因此 e 只是作为全局偏移,在需要时增强或适度改变情感。使用 HSEmotion 网络提取情感偏移标注。
    • 实现相邻窗口之间的无缝过渡:
      • 将上一窗口的音频特征和生成的运动的最后 K 帧作为当前窗口的条件。
      • DiT 的输入条件有
        C = [ X p r e , A p r e ; A , g , d , e ] C=[X_{pre},A_{pre};A,g,d,e] C=[Xpre,Apre;A,g,d,e]
        所有条件信号都与噪声在时间维度上进行拼接,作为 input 给 DiT
  • 无分类器引导(CFG):训练阶段会随机丢弃每个输入条件在推理阶段,使用以下公式
    X 0 ^ = ( 1 + ∑ c ∈ C λ c ) ⋅ H ( X t , t , C ) − ∑ c ∈ C λ c ⋅ H ( X t , t , C ∣ c = ∅ ) \hat{X_0} = (1 + \sum_{c \in C}\lambda_c) \cdot H(X_t, t, C) - \sum_{c \in C}\lambda_c \cdot H(X_t, t, C|_{c=\emptyset}) X0^=(1+cCλc)H(Xt,t,C)cCλcH(Xt,t,Cc=)
    其中 λ c \lambda_c λc 是条件 c c c 的无条件引导尺度。 C ∣ c = ∅ C|_{c=\emptyset} Cc= 表示条件 c c c 被替换为空集。

    • 在训练期间,对于每个条件使用 0.1 的丢弃概率,除了 X p r e X_{pre} Xpre A p r e A_{pre} Apre 使用 0.5 的丢弃概率。这是为了确保模型能够很好地处理没有前序音频和动作的第一个窗口(即设置为空)。
    • 还需要随机丢弃 A A A 的最后几帧,以确保对音频序列长度短于窗口长度的情况能够进行稳健的动作生成。
  • 推理方式

    • 给定任意人脸图像和音频片段,首先使用训练好的人脸编码器提取 3D 外观体积 V a p p V_{app} Vapp 和身份编码 z i d z_{id} zid
    • 然后提取音频特征,将其分割成长度为 W W W 的片段,并使用训练好的 DiT,以滑动窗口方式逐个生成头部和面部运动序列 X = [ z p o s e i , z d y n i ] {X = {[z_{pose_i}, z_{dyn_i}]}} X=[zposei,zdyni]
    • 使用训练好的解码器生成最终视频

实验

  • 训练数据

    • 人脸潜在空间的学习:VoxCeleb2,该数据集包含大约 6000 名主体的说话人脸视频。重新处理该数据集,并通过 Blind image quality assessment (BIQA) 的方法丢弃包含多个人物的片段以及质量较低的片段
    • 运动潜在生成:在 VoxCeleb2 和收集的另一个高分辨率对话视频数据集上进行训练,后者包含约 3500 名主体。
  • 训练配置

    • 3D-aid 人脸潜在模型在 4 个 NVIDIA RTX A6000 GPU 工作站上大约需要 7 天的训练时间,而 DiT 大约需要 3 天。
    • 用于训练的总数据量约为 50 万段,每段持续 2 到 10 秒。
    • 3D-aid 人脸潜在模型和 DiT 模型的参数量分别约为 200M 和 29M。
  • 推理速度 (1x NVIDIA RTX 4090):

    • 离线批处理模式下,可生成分辨率为 512×512 的视频帧,速度为 45 帧/秒
    • 在线流处理模式下,支持最高 40 帧/秒,且前置延迟仅为 170 毫秒
  • 定量评估对比:在音频-嘴部同步得分( S C S_C SC S D S_D SD)方面,VASA-1 的方法远远优于其他所有方法(得分甚至优于真实视频,这是由于音频 CFG 的影响)。从 Δ P \Delta P ΔP 可以看出 VASA-1 头部运动的强度也表现出最高的强度。同时 FVD 得分显著低于其他方法,证明了 VASA-1 的更高视频质量和真实感。
    在这里插入图片描述

LivePortrait

URL:https://liveportrait.github.io/
作者:快手,2024
效果:好(表情跟随能力强)
开源:是
实时性:好 (RTX 4090 GPU, 12.8 ms)

背景

  • 人像动画 (Portrait animation) 从单个源图像生成逼真的视频,以其作为外观参考,并通过驱动视频、音频、文本或生成的方式获得运动信息(如面部表情和头部姿势)
  • diffusion 相关的方法通常计算开销较大,并且缺乏精确的可控性,例如拼接控制
    在这里插入图片描述
  • 近期的视频驱动人像动画方法可分为基于非扩散模型的方法和基于扩散模型的方法,具体总结如上表所示
  • Non-diffusion 的人像动画方法:对于非扩散模型,基于隐式关键点的方法使用隐式关键点作为中间的运动表示,通过光流将源人像根据驱动图像进行变形。这类方法包括:
    • FOMM (First-Order Motion Model):在每个关键点附近执行一阶泰勒展开,并使用局部仿射变换近似关键点邻域内的运动。
    • MRAA (Motion Representation by Articulated Animation):利用基于主成分分析(PCA)的运动估计来表示关节运动。
    • Face-vid2vid:通过引入 3D 隐式关键点表示扩展了 FOMM,实现了自由视角人像动画。
    • IWA (Image Warping Animation):基于跨模态注意力改进了变形机制,可扩展为使用多个源图像。
    • TPSM (Thin-Plate Spline Motion):为了更灵活地估计光流并更好地处理大范围运动,使用非线性薄板样条变换表示复杂运动。
    • DaGAN (Dense-depth GAN):利用密集深度图估计隐式关键点,以捕捉关键驱动运动。
    • MCNet (Memory Compensation Network):设计了基于身份表示的记忆补偿网络,以解决复杂驱动运动引起的不明确生成问题。
    • 其他方法 ROME、GIF 等使用了预定义的运动表示,例如 3DMM混合形状(Blendshapes)
    • 还有一些方法从头开始学习潜在表情表示。
      • MegaPortrait:利用超高分辨率图像,将动画分辨率从中等分辨率提升至百万像素。
      • EMOPortraits:采用了富含表情的视频训练数据集以及表情增强损失,以表现剧烈的运动。
  • 基于扩散模型的人像动画方法:扩散模型通过逐步去噪,从高斯噪声中合成所需的数据样本。这类方法包括:
    • Latent Diffusion Models (LDMs):将训练和推理过程转移到压缩的潜在空间中,以实现高效计算。LDMs 已广泛应用于全身舞蹈生成、音频驱动的人像动画和视频驱动的人像动画。
    • FADM (First diffusion-based Animation Method):首个基于扩散模型的人像动画方法。通过预训练的隐式关键点模型获得初步动画结果,然后在 3DMM 的引导下,通过扩散模型生成最终动画。
    • Face Adapter:引入身份适配器增强源人像的身份保留,并使用空间条件生成器生成显式的空间条件(如关键点和前景掩膜)作为中间运动表示。
    • AniPortrait:使用显式空间条件(如关键点)作为中间运动表示。
    • X-Portrait:直接使用原始驱动视频生成动画,而不依赖中间运动表示。通过基于隐式关键点的方法 face vid2vid 进行跨身份训练以实现此目标。
    • MegActor:同样利用原始驱动视频生成动画,结合现有的换脸和风格化框架生成跨身份训练样本,同时编码背景外观以提高动画的稳定性。

方案

  • 开发了一种名为 LivePortrait 的视频驱动人像动画框架,探索并扩展了基于隐式关键点的框架的潜力,该框架在计算效率和可控性之间实现了有效平衡
    • 将训练数据扩展到约 6900 万高质量帧
    • 采用混合图像-视频训练策略
    • 升级网络架构
    • 并设计了更优的运动变换和优化目标
    • 此外,我们发现紧凑的隐式关键点可以有效地表示某种混合形状(blendshapes),并精心提出了一种拼接和两个重定向模块,这些模块仅需一个具有极低计算开销的小型 MLP,即可显著提升可控性。

实现细节

  • 基于 Face vid2vid 框架改进:
    • Face vid2vid 是一个用于动画静态肖像的开创性框架,通过从驱动视频序列中提取运动特征。原始框架由以下组件构成:
      • 外观特征提取器 F F F
      • 规范隐式关键点检测器 L L L
      • 头部姿势估计网络 H H H
      • 表情变形估计网络 Δ \Delta Δ
      • 变形场估计器 W W W
      • 生成器 G G G
    • F F F 将源图像 s s s 映射到 3D 外观特征体 f s f_s fs。源 3D 关键点 x s x_s xs 和驱动 3D 关键点 x d x_d xd 的转换如下:
      x s = x c , s R s + δ s + t s x_s = x_{c,s}R_s + \delta_s + t_s xs=xc,sRs+δs+ts
      x d = x c , s R d + δ d + t d x_d = x_{c,s}R_d + \delta_d + t_d xd=xc,sRd+δd+td
      其中:
      x s x_s xs x d x_d xd 分别是源和驱动的 3D 隐式关键点
      x c , s ∈ R K × 3 x_{c,s} \in \mathbb{R}^{K \times 3} xc,sRK×3 表示源图像的规范关键点
      R s R_s Rs R d ∈ R 3 × 3 R_d \in \mathbb{R}^{3 \times 3} RdR3×3 是源和驱动的姿势
      δ s \delta_s δs δ d ∈ R K × 3 \delta_d \in \mathbb{R}^{K \times 3} δdRK×3 是表情变形
      t s t_s ts t d ∈ R 3 t_d \in \mathbb{R}^3 tdR3 是平移
    • 接下来, W W W 使用隐式关键点表示 x s x_s xs x d x_d xd 生成变形场,并采用该流场对源特征体 f s f_s fs 进行变形。随后,变形后的特征通过解码器生成器 G G G 转换到图像空间,从而生成目标图像。

在这里插入图片描述

  • LivePortrait 的 stage1 训练如上,在 face vid2vid 基础上做了以下的优化:
    • 高质量数据整理:训练数据包含来自约 18.9K 身份和 60K 静态风格化肖像的 6900 万帧视频(过滤前为 9200 万帧)
      • 公开数据集:Voxceleb、MEAD 和 RAVDESS,以及风格化图像数据集 AAHQ
      • 收集了大量 4K 分辨率的肖像视频,这些视频包含了多种姿势和表情,200 小时的讲话头视频,并利用了私人数据集 LightStage。同时收集了几百个风格化肖像视频和图像。
      • 数据清洗:将长视频切割成不超过 30 秒的小片段,并使用人脸跟踪和识别确保每个片段仅包含一个人。为了保证训练数据的质量,我们使用 KVQ 筛选掉低质量的视频片段
    • 混合图像和视频训练:仅使用真实肖像视频训练的模型在处理真人肖像时表现良好,但在泛化到风格化肖像(例如动漫)时表现较差。由于风格化肖像视频稀缺,我们仅收集了约 1.3K 个片段,涉及不到 100 个身份。相比之下,高质量的风格化肖像图像更为丰富,我们收集了约 60K 张图像,每张图像代表一个独特的身份,提供了多样化的身份信息。为了利用这两种类型的数据,我们将单张图像视为单帧视频片段,并在图像和视频上训练模型。
    • 升级的网络架构
      • 将原始的标准隐式关键点检测器 L L L、头部姿态估计网络 H H H 和表情形变估计网络 Δ \Delta Δ 统一为一个单一模型 M M M,并采用 ConvNeXt-V2-Tiny 作为主干网络,直接预测输入图像的标准关键点、头部姿态和表情形变。
      • 本文遵循 open face vid2vid 的方法,采用 SPADE 解码器作为生成器 G G G,其性能优于 face vid2vid 中的原始解码器。经过变形的特征体积 f s f_s fs 被巧妙地输入到 SPADE 解码器中,其中特征体积的每个通道作为语义图,用于生成动画图像。
      • 为提升效率,本文在 G G G 的最终层加入 PixelShuffle 层,将分辨率从 256 × 256 256 \times 256 256×256 升级至 512 × 512 512 \times 512 512×512
    • 可扩展的运动变换:原始隐式关键点变换忽略了尺度因子,这通常将缩放因素纳入表情形变中,从而增加了训练的难度。为了解决这一问题,本文在运动变换中引入了尺度因子,更新后的变换 τ \tau τ 表示为:
      x s = s s ⋅ ( x c , s R s + δ s ) + t s , x d = s d ⋅ ( x c , s R d + δ d ) + t d , x_s = s_s \cdot (x_{c,s} R_s + \delta_s) + t_s, \quad x_d = s_d \cdot (x_{c,s} R_d + \delta_d) + t_d, xs=ss(xc,sRs+δs)+ts,xd=sd(xc,sRd+δd)+td,
      其中, s s s_s ss s d s_d sd 分别为源输入和驱动输入的尺度因子。需要注意的是,该变换不同于尺度正交投影,后者的形式为:
      x = s ⋅ ( x c + δ ) R + t 。 x = s \cdot (x_c + \delta)R + t。 x=s(xc+δ)R+t
      实验发现,尺度正交投影会导致学习到的表情形变 δ \delta δ 过于灵活,在跨身份驱动时会引起纹理闪烁。因此,该变换可以被视为灵活性和可驱动性之间的折中方案。
    • 基于标志点的隐式关键点优化。原始的 face vid2vid 对驱动面部表情(如眨眼和眼球运动)的表现能力较为有限。特别是,生成的人像中眼球的注视方向受限于头部姿态,与其保持平行。本文在复现实验中也观察到这一局限性,并将其归因于无监督方式学习细微面部表情(如眼球运动)的难度。为此,本文引入了能够捕捉微表情的二维标志点,并将其作为指导优化隐式关键点的学习。基于标志点的损失函数 L guide L_{\text{guide}} Lguide 表示如下:
      L guide = 1 2 N ∑ i = 1 N ( Wing ( l i , x s , i , : 2 ) + Wing ( l i , x d , i , : 2 ) ) , L_{\text{guide}} = \frac{1}{2N} \sum_{i=1}^{N} (\text{Wing}(l_i, x_{s,i,:2}) + \text{Wing}(l_i, x_{d,i,:2})), Lguide=2N1i=1N(Wing(li,xs,i,:2)+Wing(li,xd,i,:2)),
      其中, N N N 为选定的标志点数量, l i l_i li 为第 i i i 个标志点, x s , i , : 2 x_{s,i,:2} xs,i,:2 x d , i , : 2 x_{d,i,:2} xd,i,:2 分别表示对应隐式关键点的前两个维度,损失函数采用 Wing loss。在实验中, N N N 设置为 10,选定的标志点来自眼睛和嘴唇区域。
    • 级联损失项:遵循 face vid2vid 的方法,采用隐式关键点等变损失 L E L_E LE、关键点先验损失 L L L_L LL、头部姿态损失 L H L_H LH 和形变先验损失 L Δ L_\Delta LΔ。为了进一步提升纹理质量,本文对输入图像的全局区域以及面部和嘴唇的局部区域应用感知损失和 GAN 损失,分别定义为级联感知损失 L P , cascade L_{P,\text{cascade}} LP,cascade 和级联 GAN 损失 L G , cascade L_{G,\text{cascade}} LG,cascade。其中, L G , cascade L_{G,\text{cascade}} LG,cascade 包括 L GAN , global L_{\text{GAN},\text{global}} LGAN,global L GAN , face L_{\text{GAN},\text{face}} LGAN,face L GAN , lip L_{\text{GAN},\text{lip}} LGAN,lip,分别依赖于从零开始训练的判别器 D global D_{\text{global}} Dglobal D face D_{\text{face}} Dface D lip D_{\text{lip}} Dlip。面部和嘴唇区域由二维语义标志点定义。此外,为了保持源图像的身份信息,本文引入面部身份损失 L faceid L_{\text{faceid}} Lfaceid(参见 ArcFace)。第一阶段的整体训练目标函数表示为:
      L base = L E + L L + L H + L Δ + L P , cascade + L G , cascade + L faceid + L guide L_{\text{base}} = L_E + L_L + L_H + L_\Delta + L_{P,\text{cascade}} + L_{G,\text{cascade}} + L_{\text{faceid}} + L_{\text{guide}} Lbase=LE+LL+LH+LΔ+LP,cascade+LG,cascade+Lfaceid+Lguide
      在第一阶段,模型从零开始进行完整训练。

EMOPortraits

URL:https://neeek2303.github.io/EMOPortraits/
作者:帝国理工学院,2024
效果:好(表情跟随能力强)
开源:是
实时性:好

背景

  • 面部表情的准确转移,特别是那些强烈和不均匀的表情,在头像动画中仍然是一个重大挑战,尤其是对于跨驾驶合成 (Cross-driving synthesis)
  • 本文作者是 MegaPortraits 的原作者,MegaPortraits 以其在跨驾驶合成中的最先进的结果而著称。使用这种方法的一个额外优点是,与许多依赖有限预定义动作描述符的头像系统不同,MegaPortraits 从头开始学习表情表示,允许对更广泛的表情有更大的适应性

方案

  • 本文工作旨在准确驱动高强度和不对称的表情,引入了新的 EMOPortraits 模型
    • 研究了 MegaPortraits 的潜在表情空间和训练方法,以增强 MegaPortraits 描绘广泛面部表情的能力。支持用小规模数据集训练。
    • 整合了语音驱动模式
    • 提出了面部极端表情数据集 FEED (23 个 ID),表情丰富且分辨率高

实现细节

  • FEED 数据集

    • 数据集包含各种表情,包括强烈的不对称表情、舌头和面颊运动、眨眼、头部旋转、眼部运动以及更微妙的手势。
      在这里插入图片描述
    • 23 位受试者的 520 个多视角视频组成,使用 3 台摄像机捕捉。
    • 4K 高分辨率
    • 采集人执行以下 7 个任务增加表情丰富性
      在这里插入图片描述
    • 与现有数据集对比分辨率更高,表情更丰富
      在这里插入图片描述
  • 模型方案整体和 MegaPortraits 类似

    • 模型架构
      在这里插入图片描述
    • 基于 Latent expression space 分析设计 latent 维度:
      • 奇异值累积解释方差曲线下面积(此处记为 A U C z AUC_z AUCz)可以作为某些潜在空间降维的有效指标。这一指标使我们能够预测模型性能:更大的坍缩意味着潜在空间中的熵降低,这与较低的表征质量相关。
      • 以下两个指标对于模型开发很重要,与模型传递强烈表情的能力高度相关。在 MegaPortraits 中,仅少数几个主成分显著影响方差,只有18个成分构成了99%,这表明其512维的 z z z 空间尺寸过大。对于本文模型,发现128维的 z z z 是最优的,能提供稳定的性能并减少不平衡数据中的过拟合。使用以下公式计算第 i i i 个成分的解释方差 ( E V i EVi EVi) 和 A U C z AUC_z AUCz,其中涉及对 Z Z Z 进行标准化并按降序排列特征值 λ \lambda λ
        Z s t d = Z − Z ‾ σ ( Z ) Z_{std} = \frac{Z-\overline{Z}}{\sigma(Z)} Zstd=σ(Z)ZZ λ = sorted desc ( e i g ( 1 n − 1 Z s t d ⊤ Z s t d ) ) \lambda = \text{sorted}_{\text{desc}}({eig} (\frac{1}{n-1} Z{std}^{\top}Z_{std})) λ=sorteddesc(eig(n11ZstdZstd))
        E V i = λ i ∑ j = 1 p λ j EV_i = \frac{\lambda_i}{\sum_{j=1}^{p} \lambda_j} EVi=j=1pλjλi A U C z = 1 d ∑ i = 1 d ∑ k = 1 i λ k ∑ j = 1 d λ j AUC_z = \frac{1}{d} \frac{\sum_{i=1}^{d}\sum_{k=1}^{i} \lambda_k}{\sum_{j=1}^{d} \lambda_j} AUCz=d1j=1dλji=1dk=1iλk
        在这里插入图片描述
    • 增加更中性的规范体积约束 loss
      在这里插入图片描述
      • 如上图所示发现 MegaPortraits 中的规范体积( V C V^C VC)实际上保留了源图像的大量表情信息,这导致强烈表情的转换效果 poor
      • 本文认为,更中性的规范体积可以提高表情平移任务的可处理性和有效性。为克服这一问题,本文提出在训练期间匹配同一人不同图像的规范体积( V s n C V^{C}_{s^{n}} VsnC V d n C V^{C}_{d^{n}} VdnC):
        L C V n = L M A E ( V s n C , V d n C ) L_{CV}^{n} = L_{MAE}(V^{C}_{s^n}, V^{C}_{d^n}) LCVn=LMAE(VsnC,VdnC)
        这一损失确保 V C V^C VC 保持稳定且与表情无关,这对于平移强烈表情至关重要。
    • 源-驱动不匹配损失
      • 除了保持无表情的 V C V^C VC,从表情向量 z z z 中移除所有身份信息也至关重要。尽管 MegaPortraits 中的对比损失旨在解决这一问题,但本文实验表明它们不足以防止在不平衡数据场景中过拟合,其中情感强烈的图像仅占训练集的 0.1%,但采样比例为 25%
      • 引入了一种新颖的自监督损失,以减轻潜在表情向量中的身份信息:
        L s d m ( z s , z d ) = w ⋅ max ⁡ ( 0 , cos ⁡ ( z s , z d ) − margin ) \mathcal{L}_{sdm}(\mathbf{z}_s, \mathbf{z}_d) = w \cdot \max(0, \cos(\mathbf{z}_s, \mathbf{z}_d) - \text{margin}) Lsdm(zs,zd)=wmax(0,cos(zs,zd)margin)
        w ; margin = { 1 ; 0.5 if  z s , z d are from VC2 10 ; 0.25 if  z s , z d are from FEED w; \text{margin} = \begin{cases} 1; 0.5 & \text{if } \mathbf{z}_s, \mathbf{z}_d \text{ are from VC2} \\ 10; 0.25 & \text{if } \mathbf{z}_s, \mathbf{z}_d \text{ are from FEED} \end{cases} w;margin={1;0.510;0.25if zs,zd are from VC2if zs,zd are from FEED
        这里, z s , z d z_s, z_d zs,zd 是源图像和驱动图像的情感向量, w w w margin \text{margin} margin 分别调整损失的强度和严格程度。由于 FEED 的采样率较高,本文增加了 w w w,并降低了 margin \text{margin} margin 以更确定地获得 s , d s, d s,d 中的表情方差。下图总结了所有增强潜在情感空间的自监督损失。
        在这里插入图片描述
  • 音频驱动

    • 潜在空间解缠:将一个驱动图像的表情与另一个图像的头部姿势相结合,会导致 MegaPortraits 模型性能较差,如图 7(底部行)所示。解缠的表情潜在空间不仅扩展了模型的使用场景,对语音驱动模式也起着至关重要的作用。当潜在向量 z z z 与头部姿势数据纠缠在一起时,从语音预测它变得困难,因为语音缺乏头部旋转信息
      在这里插入图片描述
    • 这里的创新是一种新型的采样策略:对于每个 x s , x d x_s, x_d xs,xd 对,在 x s ∗ x_s^{*} xs x d ∗ x_d^{*} xd 之外再随机采样一对 x s m x_{s^{m}} xsm x d m x_{d^{m}} xdm。然后应用模型生成以下交叉重演移动图像,使用来自 x s ∗ x_s^{*} xs 的源身份,来自 x s m x_{s^{m}} xsm 的期望头部姿势以及来自 x d x_d xd 的表情,表示为: x ^ s ∗ m → d = G b a s e ( x s ∗ m , x d ) \hat{x}_{s^{*m} \to d} = G_{base}(x_{s^{*m}}, x_d) x^smd=Gbase(xsm,xd)。这创建了一个具有相同期望表情但头部姿势不同的正对样本。
      动作描述符被组织成正对样本 P P P 用于对齐,以及负对样本 N N N 用于非对齐: P = { ( z s → d , z d ) , ( z s ∗ → d , z d ) , ( z s ∗ m → d , z d ) } P = \{(z_{s \to d}, z_d), (z_{s^{*} \to d}, z_d), (z_{s^{*m} \to d}, z_d)\} P={(zsd,zd),(zsd,zd),(zsmd,zd)},且 N = { ( z s → d , z d ∗ ) , ( z s ∗ → d , z d ∗ ) , ( z s ∗ m → d , z d ∗ ) } N = \{(z_{s \to d}, z_{d^{*}}), (z_{s^{*} \to d}, z_{d^{*}}), (z_{s^{*}m \to d}, z_{d^{*}})\} N={(zsd,zd),(zsd,zd),(zsmd,zd)}(见图6)。这些对样本用于计算以下余弦距离:
      d ( z i , z j ) = s ⋅ ( ⟨ z i , z j ⟩ − m ) , d(z_i, z_j) = s \cdot (\langle z_i, z_j \rangle - m), d(zi,zj)=s(⟨zi,zjm),
      其中 s s s m m m 都是超参数。然后使用该距离计算一个大边距余弦损失(CosFace):
      L c o s = − ∑ log ⁡ exp ⁡ { d ( z k , z i ) } exp ⁡ { d ( z k , z i ) } + ∑ ( z i , z j ) ∈ N exp ⁡ { d ( z i , z j ) } L_{cos} = - \sum \log \frac{\exp \{d(z_k, z_i)\}}{\exp \{d(z_k, z_i)\} + \sum_{(z_i, z_j) \in N} \exp \{d(z_i, z_j)\}} Lcos=logexp{d(zk,zi)}+(zi,zj)Nexp{d(zi,zj)}exp{d(zk,zi)}
      这种损失防止了头部姿态泄露到嵌入中。通过这样做,实现了将 z i z_i zi 解释为一个潜在向量,封装了图像 x i x_i xi 中的情感内容的能力。这一进步为推理期间的一个有趣可能性打开了大门:这个向量的预测可能来自音频信号而不是面部图像,使用运动编码器 E m o t i o n E_{motion} Emotion,有效地将模型转变为一个由语音驱动的系统。这里的关键挑战是将音频输入与预训练的潜在空间对齐。通过引入一个额外的音频编码器 E aud E_{\text{aud}} Eaud 并使用 E m o t i o n E_{motion} Emotion 作为这个新编码器的教师模型来解决这个问题。在实现唇部同步的显著准确性方面,一个关键因素是本文工作能够隔离表情潜在空间中的特定组件,这些组件仅负责嘴巴运动。
    • 嘴巴运动
      • 为了训练音频编码器 E aud E_{\text{aud}} Eaud 以从语音中预测 z z z,选择使用运动编码器 E m o t i o n E_{motion} Emotion 作为教师模型。然而,直接匹配来自 E aud E_{\text{aud}} Eaud 的向量 z audi z_{\text{audi}} zaudi 和来自 E m o t i o n E_{motion} Emotion 的伪真实值 z i z_i zi 会产生较差的结果。本文认为这背后的原因是,虽然从语音中派生的 z audi z_{\text{audi}} zaudi 能够捕捉嘴唇运动,但在处理其他面部运动时,尤其是在上半脸时,表现不佳。因此,我们专注于使用主成分分析(PCA)在表情潜在空间中隔离嘴巴运动组件。对从具有各种面部表情的图像生成的广泛表情向量 Z Z Z 进行 PCA 分析,得到具有解释方差( E V i EV_i EVi)的主成分。改变这些组件,特别是那些具有高 E V i EV_i EVi 的组件,会显著改变图像中的面部表情。然而,它们通常影响面部特征的组合(图8上排),而不是像嘴巴或眼睛这样的隔离区域。
        在这里插入图片描述
        为了专注于嘴巴运动,本文从一个人进行嘴巴操作的单个视频中创建了一组独特的 Z m Z_m Zm,并手动编辑它以最小化上半脸运动。这涉及到在所有后续帧中使用第一帧的静止上半脸,确保主成分主要代表嘴巴运动。对 Z m Z_m Zm 进行 PCA 分析表明,大多数主成分仅负责嘴巴运动。有关第一个组件的说明,请参见图8(下排)。基于提取的组件,我们引入了嘴巴 PCA 损失:
        L PCA ( v i , v j , n ) = 1 n ∑ k = 1 n P C v i ( k ) − P C v j ( k ) L_{\text{PCA}}(v_i, v_j, n) = \frac{1}{n} \sum_{k=1}^{n} PC_{v_i}(k) - PC_{v_j}(k) LPCA(vi,vj,n)=n1k=1nPCvi(k)PCvj(k)
        其中 n n n 是要考虑的主成分数量, P C z i ( k ) PC_{z_i}(k) PCzi(k) P C z j ( k ) PC_{z_j}(k) PCzj(k) 分别是向量 z i z_i zi z j z_j zj 的第 k k k 个主成分。实施这种损失显著提高了我们结果的质量和准确性。

实验

  • 挤眉弄眼能力很强,比 MegaPortraits 好
    在这里插入图片描述

  • video-driven 指标对比
    在这里插入图片描述

  • audio-driven 指标
    在这里插入图片描述

  • 消融实验,添加的 loss 都是有用的
    在这里插入图片描述

INFP

  • URL:https://grisoon.github.io/INFP/
  • 作者:字节,2024
  • 效果:好
  • 开源:否
  • 实时性:未知,方案看起来理论上可以实时

背景

  • 大部分研究只聚焦于单一方面的交流,如说话或倾听,忽视人与人互动中的双向性。
  • 一个交流机器人应该能自由地根据当前对话上下文切换倾听和说话状态,而非预先被定义为一种角色

方案

  • 提出了 INFP,一种面向双人对话的音频驱动交互式头部生成框架。该框架基于双人对话中的双轨音频和任意角色的单张肖像图像,能够动态生成包含真实感面部表情和节奏性头部动作的语言、非语言及交互性角色视频。此外,INFP 框架既轻量化又功能强大,使其在视频会议等即时通信场景中具有实际应用价值。INFP 代表的方法具有交互性(Interactive)、自然性(Natural)、高效性(Flash)和通用性(Person-generic)
    在这里插入图片描述

  • INFP 包括两个阶段:

    • 基于动作的头部模仿阶段(Motion-Based Head Imitation):模型学习从现实生活中的对话视频中提取面部交互行为,并将其投射到低维动作潜在空间中,然后利用这些动作潜在编码对静态图像进行动画化
    • 音频引导的动作生成阶段(Audio-Guided Motion Generation):模型通过去噪技术学习从输入的双轨音频到动作潜在编码的映射,从而在交互场景中实现音频驱动的头部生成
  • 引入了 DyConv:一个从互联网上收集的大规模丰富双人对话数据集,包含来自不同背景中人物的未经过稿的视频对话,记录了他们在各种举讨主题和情感情景下的深入讨论,体现了现实中的交流情景。相比 ViCo、ViCo-X、RealTalk,DyConv 具有更大规模、更高质量和更丰富的交互信息

实现细节

在这里插入图片描述

  • Stage1:基于动作的头部模仿阶段(Motion-Based Head Imitation)
    • 人头运动使用了类似 MegaPortraits 这样的架构进行人脸外观和运动的解耦。使用一个运动编码器 E m E_{m} Em 学习隐式潜在表示,该表示捕捉输入人脸图像中的言语和非言语交互行为。编码器 E m E_{m} Em 由一个基于卷积的特征提取器和多层感知机(MLP)层组成,它将运动特征压缩为一个潜在编码。
      • 选择隐式表示而非显示的 3DMM 系数,因为 3DMM 模型的表达能力有限,而现有的 3D 人脸估计方法所预测的常用表情系数与脸部形状存在一定程度的耦合
      • 输入 mask 大部分面部像素,仅保留眼睛和嘴唇区域,阻止诸如头发和背景等无关信息对表情提取的干扰
  • Stage2:音频引导的动作生成阶段(Audio-Guided Motion Generation)
    • 提出了一种新的范式,模型直接接收代理和对话伙伴的音频输入,消除了显式角色分配或切换的必要性。从双轨对话音频中提取交互信息,构建说话-聆听混合动作,并将这些动作映射到第一阶段的动作潜空间,以实现音频驱动的头部生成
    • 引入交互动作引导器,从输入音频中提取动作特征,有两个记忆库 M v M_v Mv M n v M_{nv} Mnv,分别存储语言动作非语言动作。每个动作记忆库由可学习的嵌入组成,用于记忆典型动作,表示为 e 1 : K e_{1:K} e1:K,其中 e k ∈ R d e_k \in \mathbb{R}^d ekRd 表示第 k k k 个动作嵌入, d d d 为维度。在实验中,我们设置 K = 64 K=64 K=64 d = 512 d=512 d=512
      • 当代理在说话时, A self A_{\text{self}} Aself 包含丰富信息,因此我们将其作为查询(Query),通过交叉注意力层从 M v M_v Mv 中获得语言动作特征(将其作为键(Key)和值(Value))。由于对话伙伴处于聆听状态, A other A_{\text{other}} Aother 信息较少,因此无法从 M n v M_{nv} Mnv 中获得有效的非语言动作特征。经过特征融合(包括逐元素求和及多个 MLP 层),语言动作特征占主导地位,驱使代理表现出预期的说话状态。
      • 但当对话伙伴开始说话时, A self A_{\text{self}} Aself 信息变弱, A other A_{\text{other}} Aother 则变得关键。因此,从 M n v M_{nv} Mnv 中提取的非语言动作特征占主导地位,促使代理表现出聆听状态。通过这种方式,我们的模型能够基于对话音频内容动态构建交互动作特征 f m f_m fm,使代理传达出预期状态。 A self A_{\text{self}} Aself A other A_{\text{other}} Aother 在输入模型之前,均通过现成的 HuBERT 音频编码器编码到特征空间中。
      • 引入了一个动作风格向量 s m s_m sm,通过 StyleGAN2 提出的风格调制层显式编辑记忆库的动作嵌入。风格向量 s m s_m sm 首先通过动作风格编码器 E style E_{\text{style}} Estyle 从动作潜代码中提取,然后沿时间维度压缩为全局描述符。我们认为 s m s_m sm 包含情感和态度等全局信息,从而增强了生成结果的真实感和生动性。在训练阶段, s m s_m sm 来源于驱动个体的任意视频片段;而在测试阶段, s m s_m sm 可以从任意视频中提取,或设置为空值。
    • 将交互动作 f m f_m fm 映射到第一阶段的预训练动作潜空间,采用了一个条件扩散变换器 T T T。对于数据分布 q ( m 1 : N , f m ) q(m_{1:N}, f_m) q(m1:N,fm),其中 m 1 : N m_{1:N} m1:N 表示具有 N N N 帧的动作潜代码,扩散模型近似条件分布 q ( m 1 : N ∣ f m ) q(m_{1:N} | f_m) q(m1:Nfm) T T T 仅包含 4个块,使框架足够轻量化以实现实时交互。每个块包括自注意力层、动作注意力层和时间注意力层。 T T T 在每个去噪步骤中预测添加到真实动作潜代码中的噪声。
      • 扩散时间步被转换为正弦嵌入,然后在时间维度上与加噪的动作潜代码连接。在动作注意力层中,将前一自注意力层输出的潜特征作为查询(Query),而交互动作特征 f m f_m fm 被用作键(Key)和值(Value)。受 AnimateDiff 的启发,实现了一个时间层,以确保相邻窗口之间的平滑过渡。具体而言,将前一个窗口生成的动作潜代码的最后 10 帧作为当前窗口的条件。
      • 推理时,向自身动作潜代码 m 1 : N self m_{1:N}^{\text{self}} m1:Nself 添加噪声,这些潜代码从 I self I_{\text{self}} Iself 中提取,并复制为 n n n 份。
      • 在训练阶段,以 0.3 的概率随机将风格向量设置为空值,并以 0.5 的概率随机丢弃交互动作特征和前一动作潜代码。此外,在第二阶段的训练中采用了热身策略。具体而言,仅选择训练集中单边对话片段作为“简单案例”,对模型进行若干轮训练,以初始化两个记忆库。之后,从整个数据集中随机抽取多轮片段用于后续训练过程。

实验

  • 整体评估优于对比 baseline DIM

    • 视觉质量方面,本文的面部解码器在 SSIM、PSNR 和 FID 等指标上表现更佳。
    • 受益于潜空间的解耦性和表达力,本文的方法在音频与唇部同步方面显著优于 DIM,具体表现为本文的 SyncScore 更接近于真实值。
    • 在 LPIPS 和 CSIM 指标上,本文的方法也取得了稳健的性能,反映出更好的身份保真度。
    • 在动作多样性(SID)和方差(Var) 指标上,本文的方法大幅领先于基线。这表明本文的方法在生成多样化动作方面具有优越的泛化性和有效性。
      在这里插入图片描述
  • talking Head 上的对比。在音频与唇部同步以及身份保真度方面具有显著优势。SSIM 和 PSNR 得分略低于 EchoMimic,作者说这是因为 EchoMimic 基于 Stable Diffusion V1.5 进行了微调。然而,本文的方法在 FID 指标上表现更优,这表明本文的生成结果在整体视觉质量上更具优势。
    在这里插入图片描述

  • style control 能力
    在这里插入图片描述

3D Model Free

Loopy

  • URL:https://Loopyavatar.github.io/
  • 作者:字节跳动智能创作数字人团队,2024 年工作
  • 效果:好
  • 开源:否
  • 实时性:差

背景

由于音频与肖像动作之间的弱关联,端到端音频驱动方法通常引入与空间运动相关的附加条件,以确保生成视频的时间稳定性。诸如面部定位器和速度层等条件(EMO、EchoMimic)限制了肖像动作的范围和速度,可能降低最终输出的表现力

方案

  • 端到端的仅以音频为条件的视频扩散模型。
  • 增加运动帧的长度,同时设计了一个跨片段和片段内的时间模块以及一个音频到潜变量的模块,使模型能够从数据中利用长期动作信息学习自然的动作模式,并提升音频与肖像动作的相关性
    • 运动帧通过一个单独的时间层建模,用于捕捉跨片段时间关系,而原始时间模块专注于片段内的时间建模。此外,我们在片段内层引入了时间段模块,将感受野扩展到超过100帧(以25 fps为例,覆盖约5秒,比原来增加了30倍)。
      在这里插入图片描述

实现细节

  • 参考 AnimateAnyone 和 EMO,采用两阶段训练过程

    1. 第一阶段:模型不包含时间层和音频条件模块,输入是目标单帧图像和参考图像潜变量的噪声潜变量,模型专注于图像层面的姿态变化任务。
    2. 第二阶段:在第一阶段的参考网络和去噪U-Net基础上初始化模型,加入跨片段/片段内时间层以及音频条件模块,进行完整训练,获得最终模型。
  • 条件掩码与Dropout:在 Loopy 框架中,涉及多个条件,包括参考图像 c ref c_{\text{ref}} cref、音频特征 c audio c_{\text{audio}} caudio、前帧运动帧 c mf c_{\text{mf}} cmf 以及代表音频和面部运动条件的运动潜变量 c ml c_{\text{ml}} cml。由于这些条件中信息具有重叠性,为了更好地学习每个条件的特定信息,我们在训练过程中采用了不同的条件掩码策略:

    1. 音频特征和运动潜变量:在训练过程中, c audio c_{\text{audio}} caudio c ml c_{\text{ml}} cml 以 10% 的概率被掩码为全零特征。
    2. 参考图像和运动帧:由于两者信息的冲突关系,我们为 c ref c_{\text{ref}} cref c mf c_{\text{mf}} cmf 设计了特定的 Dropout 和掩码策略。运动帧比参考图像更接近当前片段,提供外观信息,模型可能更依赖运动帧,从而在推理时导致长视频中出现颜色偏移和伪影。
      • c ref c_{\text{ref}} cref:有 15% 的概率被丢弃,即去噪 U-Net 在自注意力计算时不会拼接参考网络的特征。
      • c ref c_{\text{ref}} cref 被丢弃时,运动帧 c mf c_{\text{mf}} cmf 也会被丢弃,这意味着去噪U-Net在时间注意力计算时不会拼接参考网络的特征。
      • 运动帧独立Dropout:运动帧还以40%的概率被掩码为全零特征。
  • 在推理阶段,使用多种条件执行无类别引导。具体地,进行三次推理运行,分别在不同条件被丢弃的情况下运行。设置音频比率 (guidance scale) 为 5,参考比率为 3,采用25步的 DDIM 采样完成推理。最终噪声 e final e_{\text{final}} efinal 的计算公式为:
    e final = audio_ratio × ( e audio − e ref ) + ref_ratio × ( e ref − e base ) + e base , e_{\text{final}} = \text{audio\_ratio} \times (e_{\text{audio}} - e_{\text{ref}}) + \text{ref\_ratio} \times (e_{\text{ref}} - e_{\text{base}}) + e_{\text{base}}, efinal=audio_ratio×(eaudioeref)+ref_ratio×(erefebase)+ebase,
    其中

    • e audio e_{\text{audio}} eaudio:包含所有条件( c ref , c audio , c mf , c ml c_{\text{ref}}, c_{\text{audio}}, c_{\text{mf}}, c_{\text{ml}} cref,caudio,cmf,cml),但将 c audio c_{\text{audio}} caudio 掩码为全零特征。
    • e ref e_{\text{ref}} eref:掩码 c audio c_{\text{audio}} caudio 为全零特征,并在去噪U-Net的自注意力中移除参考网络特征拼接。
    • e base e_{\text{base}} ebase:移除所有参考网络特征。
  • 训练数据集:

    • 从互联网上收集了说话人头视频数据,过滤掉了低唇同步分数、过多头部运动、极端旋转或头部未完整暴露的视频,共清理得到160小时训练数据。此外,补充了公开数据集 HDTF
  • 评估指标

    • 图像质量:使用 IQA。
    • 视频动作平滑性:使用 VBench 的平滑指标。
    • 音视同步:使用 SyncC 和 SyncD。
    • 与真实视频的比较:在有对应真实视频的 CelebvHQ 和 RAVDESS 测试集上计算:
      • FVD
      • E-FID
      • FID
    • 动作和动态表情对比:基于鼻尖和上半部分面部关键点计算全局运动(Glo)和动态表情(Exp)方差,与真实视频进行对比。

实验

  • CelebV-HQ 包括名人在各种场景(电影、采访等)中的说话视频,涵盖室内和室外场景,以及多样化的人像姿态。本文方法在大多数指标上显著优于对比方法
    在这里插入图片描述
  • RAVDESS 是一个高分辨率的说话场景数据集,包含不同情感强度的视频,是评估方法在情感表达上的表现的理想选择。本文方法 E-FID 指标上优于对比方法。运动动态指标(Glo 和 Exp)和 GT 的值更为接近。
    在这里插入图片描述

MUSETALK

  • URL:https://github.com/TMElyralab/MuseTalk?tab=readme-ov-file
  • 作者:腾讯音乐,2024 年工作
  • 效果:中(主要是嘴唇运动)
  • 开源:是
  • 实时性:好,因为严格来说没有直接使用 diffusion 算法

背景

  • 少样本面部视觉配音技术日益受到关注,其重点是根据驱动音频重建源面部的嘴部区域,广泛应用于视频翻译、电影配音和虚拟数字人等实时交互场景中,对速度和效率有较高要求。
  • 由于音频和视觉输入之间相关性较弱,主要挑战在于如何充分对齐这两种异质模态。从信息论的角度来看,核心问题是如何有效地最小化来源的不确定性(熵),同时减少噪声和无关信息的影响

方案

  • 本文提出了 MuseTalk,一个基于嘴部修复技术的实时面部视觉配音框架。通过使用变分自编码器(VAE)编码的潜在空间生成唇同步目标,从而实现高保真度的动态面部视频生成,同时保持高效的推理速度。具体来说,我们将遮挡的面部下半部分图像和参考图像投射到低维潜在空间中,并使用多尺度 U-Net 在不同层级融合音频和视觉特征。
    • 使用 SD 架构,不过跳过复杂且耗时的扩散过程,直接导出最终结果。另外代替单一输入图像,使用目标图像的遮挡下半部分以及参考面部图像,驱动条件为音频嵌入序列。
      在这里插入图片描述

实现细节

  • 在 2 张 NVIDIA H20 GPU 上进行。U-Net 模型首先使用 L1 损失和感知损失进行 200,000 次训练步骤,耗时约 60 小时。随后,U-Net 再使用唇同步损失和 GAN 损失进行额外的 100,000 次训练步骤,需时约 30 小时。音频和图像特征提取器分别采用 whisper-tiny 模型和 sd-vae-ft-mse。在图像预处理方面,首先检测每张图像中的人脸区域(ROI),然后裁剪并调整大小为 256×256。
  • 训练数据
    • 在实验中使用了两个广泛认可的高分辨率动态面部数据集:HDTF 和 MEAD。HDTF 数据集包含约 410 个 720P 或 1080P 的自然场景视频,随机选择其中 20 个用于测试,其余用于训练。所有视频在训练和测试阶段均被裁剪为 30 秒的片段。

实验

  • MuseTalk 在 HDTF 和 MEAD-Neutral 数据集上的定量分析结果。MuseTalk 在 FID 和 CSIM 分数上优于其他方法,并在 LSE-C 上表现可比。
    在这里插入图片描述

X-Portrait

  • URL:https://byteaigc.github.io/x-portrait/
  • 作者:字节,SIGGRAPH 2024
  • 效果:好(表情丰富)
  • 开源:是
  • 实时性:差(A10 GPU,10 步 迭代,30 秒生成 24 帧)

背景

  • 肖像动画,即通过使用驱动视频中的头部姿态和面部表情来为单个静态肖像图像制作动画的任务,因其在视频会议、视觉特效和数字代理等领域的多功能应用而受到越来越多的关注。
  • 早期方法一般是两步生成过程,包括图像扭曲和渲染。具体来说,从给定源图像编码的身份特征会先通过运动流扭曲(运动流是根据源帧与驱动帧之间的表情和头部姿态差异计算的),然后这些扭曲后的源特征被输入到生成解码器,以合成具有填充面部细节和背景的最终动画帧。
    • 但是基于标志点、神经关键点或潜码生成的扭曲场,往往无法捕捉微妙或超出域的极端面部表情。
    • 此外,由于解码器能力有限,合成的图像在分辨率和感知质量上往往受到限制。在为超出域的肖像制作动画或使用长范围头部运动时,不自然的伪影(如模糊和刚性光影变化)以及面部变形问题会变得明显。
  • MagicPose 等工作用受控图像到视频(I2V)扩散方案,即源图像中的外观上下文通过 SD UNet 的自注意力层交叉查询,而运动则通过 ControlNet 框架内显式推导的语义运动信号(如标志点、骨架和密集姿态)来控制。
    • 这种显式的粗粒度姿态控制信号无法完全传达原始表情,且严重依赖第三方姿态检测器的稳健性和准确性,从而限制了动画的表现力和稳定性
    • 从驱动帧推导的控制姿态图并非完全与驱动面部语义(如形状和比例)无关,在跨身份动画中会显著影响源图像特征,导致外观泄漏问题

方案

  • 提出了 X-Portrait,利用图像扩散先验实现表现力丰富的肖像动画
    • 扩展预训练的 Stable Diffusion 实现头部姿态和面部表情的精细控制的新型零样本肖像动画方法。
      • 外观参考模块从参考图中提取身份特征和背景上下文,cross attention 融入 Unet 主干中
      • 控制模块:使用 ControlNet
      • 时间模块:temporal attention 层
    • 通过跨身份缩放增强图像训练的新型隐式运动控制方案,有效保留驱动运动上下文,同时缓解外观泄漏问题。
      • 使用 Face Vid2Vid 中的 pre-trained portrait reenactment network 来生成 RGB control image
    • 通过引导运动关注局部面部动作,增强对细微面部表情的解读能力。
      • 这一模块使用从控制图像中裁剪出的局部补丁(如眼睛和嘴部周围)作为输入信号 ,引导 UNet 降噪过程聚焦于局部结构
        在这里插入图片描述

实现细节

  • 数据
    • 使用自建数据集训练模型,包含 550 名被试在室内和室外场景下的单目摄像机记录,包括 42 种表情和 20 分钟的讲话内容,裁剪分辨率为 512 × 512。
    • 数据处理上,参考 FOMM 提出的方法,但将裁剪区域扩展至包含肩部。
  • 训练
    • 采用 Stable Diffusion 1.5 作为生成骨干,并在整个训练阶段冻结其权重
    • 训练分阶段进行,依次加载并训练模块
    • 使用 8 张 A100 GPU,每个模块训练 30,000 步,每步处理 16 帧视频
  • 推理
    • 采用 Prompt Traveling Strategy 来增强时间平滑性
    • A10 GPU 上可以高效生成 24 帧动画,仅需 30 秒

实验

  • 自再现:对于每个测试视频,使用第一帧作为参考图像,生成整个序列,其中后续帧既用作驱动图像又作为真实目标帧。X-Portrait 始终在图像质量和运动准确性方面优于所有基线方法。
  • 跨再现:各项指标(身份相似性、图像质量、运动准确性)上均显著优于所有竞争对手
    • 身份相似性:使用 ArcFace 分数计算源图像和生成图像之间的余弦相似度。
    • 图像质量:使用预训练网络 HyperIQA 进行评估。
    • 运动准确性:通过 ARKit 比较驱动帧和生成帧的面部 blendshape 和头部姿态的 L1 差异。
      在这里插入图片描述

EchoMimic

  • URL:https://antgroup.github.io/ai/echomimic/
  • 作者:蚂蚁,2024
  • 效果:中上(头部、嘴唇运动还不错,表情动作丰富程度一般)
  • 开源:是
  • 实时性:差

背景

  • 传统方法通常利用音频或面部关键点来驱动图像生成视频存在一些问题
    • 仅依靠音频驱动的方法有时可能不够稳定,因为音频信号相对较弱
    • 仅依赖面部关键点驱动的方法,虽然驱动更加稳定,但由于过度控制关键点信息,可能导致生成结果显得不够自然
  • 选择 diffusion 方案的原因:
    • 尽管基于 GAN 的方法 (MegaPortraits 等) 通常遵循两阶段过程(特征变形和细化),但受限于GAN的性能和动作描绘的不准确性,其生成结果往往显得不够真实
    • 扩散模型表现出了更强的生成能力

方案

在这里插入图片描述

  • 提出了一种名为 EchoMimic 的新方法,同时使用音频和面部关键点进行训练。通过采用一种创新的训练策略,EchoMimic 能够生成由音频单独驱动、面部关键点单独驱动,或音频与选定面部关键点结合驱动的肖像视频。
    • 基于 Stable Diffusion (SD),引入了三种注意力层
      • 参考注意力层:处理当前帧与参考图像之间的关系。
      • 音频注意力层:捕捉视觉内容与音频内容之间的交互。
      • 时间注意力层:部署基于时间的自注意力机制,解读连续视频帧之间的复杂时间动态和关系。
    • 各个网络模块
      • Reference Net 结构和 SDv1.5 相似,与去噪 U-Net 并行运行,仅在扩散过程中执行一次前向传播。为了防止引入额外信息,交叉注意力层接收一个空白文本占位符。
      • 音频编码使用:Wav2Vec(论文里说是 Wav2Vec,但是看官方代码里面用的是 Wisper)。考虑到角色动作可能受前后语音片段的影响,通过连接相邻帧的特征为每帧定义音频特征。
      • 关键点编码器:卷积网络,利用面部关键点图像与目标帧之间的空间对应关系,将关键点图像编码为与潜在空间对齐的特征表示。将这些特征通过逐元素加法直接与多帧潜在表示结合
    • 空间损失 (Spatial Loss):由于潜在空间的分辨率(64×64 对应于 512×512 图像)相对较低,难以捕捉面部的细微细节,因此提出了一种时间步长感知的空间损失 (timestep-aware spatial loss),直接在像素空间中学习面部结构。
      • MSE + LPIPS loss
      • 时间步长 t 较大时,模型难以收敛,降低 t 较大时的权重,优化模型的学习效果

实现细节

  • 8 块 NVIDIA A100 GPU
  • 运动模块初始化时采用了 Animatediff 模型的预训练权重
  • 参考图像、指导音频及运动帧有 5% 的概率被随机省略。在推理阶段,系统通过将加噪后的潜在变量与前一步运动模块中提取的最新 2 帧运动特征表示结合,确保序列一致性
  • 两阶段训练
    • 每阶段包含 30,000 个训练步骤,批量大小为 4,视频数据分辨率为 512x512
    • 在第二阶段训练中,每次迭代生成 14 帧视频,这些帧通过运动模块的潜在变量与初始的 2 帧真实视频结合
  • 数据集
    • 收集了大约 540 小时(每段视频约 15 秒,共约 130,000 个视频片段)的说话人视频
    • 辅以 HDTF 和 CelebV-HQ 数据集进行模型训练
  • 数据清洗
  • 仅保留包含单一人物说话且口型与音频高度相关的视频
  • 剔除含有场景切换、明显的相机运动、过度夸张的面部动作或完全侧面的视角的视频
  • MediaPipe 提取面部关键点

实验

  • 提出的 EchoMimic 在多个评估指标上表现最佳,表明 EchoMimic 在生成高质量视觉内容和时间一致性方面表现卓越,同时在唇形同步方面具有显著优势。
    在这里插入图片描述

OmniHuman-1

  • URL:https://omnihuman-lab.github.io/
  • 作者:字节, 2025 年发布
  • 效果:好(表情丰富)
  • 开源:否
  • 实时性:差

背景

  • 端到端的人体动画(如音频驱动的说话人生成)在近年来取得了显著进展。然而,现有方法仍然难以像大规模通用视频生成模型那样扩展,从而限制了其在实际应用中的潜力

方案

  • 提出了 OmniHuman,一个基于 Diffusion Transformer 的框架,该框架通过在训练阶段融合与运动相关的条件来扩展数据规模。引入了两项针对这些混合条件的训练原则,并提出了相应的模型架构和推理策略。这些设计使 OmniHuman 能够充分利用数据驱动的运动生成,最终实现高度逼真的人体视频生成。

  • OmniHuman 兼容多种人物内容(面部特写、肖像、半身像、全身像),支持说话和歌唱,能够处理人与物体的交互以及复杂的身体姿态,并适应不同的图像风格
    在这里插入图片描述

  • 支持多种驱动模式(音频驱动、视频驱动以及组合驱动信号)

实现细节

在这里插入图片描述

  • 模型架构

    • 基座模型使用 MMDiT 结构,使用了字节预训练的 Seaweed T2V 模型
    • 使用 causal 3DVAE
    • flow matching
    • audio condition 使用 wav2vec,接 MLP 处理到 MMDiT 维度上
    • 参考图像 token 和带噪声的视频 token 是 concat 后输入模型,通过 self attention 交互,避免了目前常用的 reference net 设计带来的参数量增加问题
      • 修改了 3D RoPE 来帮助模型区分参考图像 token 和视频 token:参考图像 token 时间分量置为 0
      • 通过 motion frames 来支持长视频(参考 Diffused Heads):前一段视频的最后 5 帧被用作下一段视频的运动帧
  • 运动相关条件的扩展,它们与人体运动的相关性强弱可以按以下顺序递减: 姿态 > 音频 > 参考图像 > 文本。即姿态对运动的控制最精确,而文本仅提供最宽泛的描述。

    • 文本 (Text) —— 描述当前事件
    • 参考图像 (Reference Image) —— 确定运动范围
    • 音频 (Audio) —— 决定共语手势的节奏
    • 姿态 (Pose) —— 指定精确的运动轨迹
  • 采用 多条件训练 (Omni-Conditions Training) 设计,使得模型训练可以被划分为多个任务,包括:

    • 图像 + 文本 → 视频
    • 图像 + 文本 + 音频 → 视频
    • 图像 + 文本 + 音频 + 姿态 → 视频
  • 训练原则

    • 原则 1:强条件任务可以利用弱条件任务的数据来扩展训练数据规模
    • 原则 2:条件越强,训练比例应越低
    • 这两个原则带来的好处:
      • 给予更具挑战性的任务更高的梯度权重,确保模型对各种条件的适应能力。
      • 防止模型在重叠条件训练时过拟合到单一条件。
  • 推理策略

    • 在推理 (Inference) 阶段,依据不同的任务需求调整激活的条件:
      • 音频驱动场景:启用文本、参考图像和音频,但禁用姿态。
      • 姿态驱动场景:
        • 若姿态与其他条件结合(如文本、音频),则所有条件均启用。
        • 若仅使用姿态驱动,则禁用音频。
      • 一般规则:当某个条件被激活时,所有比它运动影响力更低的条件 也会被激活,除非明确不需要。
  • 分类器自由引导 (Classifier-Free Guidance, CFG)

    • 在音频和文本条件下采用分类器自由引导 (CFG),观察到:
      • 提高 CFG 强度会导致角色面部出现过多皱纹
      • 降低 CFG 强度会影响唇形同步和运动表达能力
    • 为了解决这一问题,提出了 CFG 退火策略 (CFG Annealing Strategy):
      • 在推理过程中逐步降低 CFG 的强度,从而减少皱纹的出现,同时保持角色的表达性
  • 训练数据使用 18.7K 小时的清洗数据

实验

  • audio condition 下比现有方法指标都好
    在这里插入图片描述
    在这里插入图片描述

总结

技术发展趋势来看,3D 说话人脸生成正朝着高真实感、可控性强、泛化性优良的方向迈进。近年来的研究不仅在生成质量上取得了突破,还优化了模型的实时性,使其更适用于交互式应用场景。基于 NeRF 的方法在高质量渲染上表现突出,但推理速度较慢,而基于扩散模型的方法虽然能够生成更自然的面部表情和动作,但计算开销较大。此外,最近的研究也在探索融合多种驱动模式(如音频、关键点、姿态、文本)以增强模型的可控性和适用性。未来的研究方向可能包括:进一步优化计算效率、提升泛化能力、增强交互式控制,以及结合大模型提升对多模态输入的理解和生成能力。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词