【数字人】10、HyperLips | 使用 audio 实现对视频的高保真高清晰的唇部驱动

在这里插入图片描述

论文:HyperLips: Hyper Control Lips with High Resolution Decoder for Talking Face Generation

代码:https://github.com/semchan/HyperLips

时间:2023.10

效果:需要 audio-driven + 待需要驱动人物的视频来实现唇部的驱动,测试给定样例后发现嘴部抖动严重,测试其他自有样例发现,脸部颜色偏红,嘴唇不清晰,牙齿不清晰

一、背景

talking head 可以用于很多场景,如数字助手、虚拟人、动画人物等待

talking head 一般可以进行如下分类:

  • 只使用 audio-driven,也就是输入一段音频和一张图片,使用输入的音频来驱动这个图片来得到很多帧对应的图片来组成最终的视频。这种方式一般是 person-specific 的,如果需要对新的没见过的 person 来生成视频,需要重新训练,而且使用单帧图像驱动的效果不是很自然,容易产生形变。
  • 同时使用 audio-driven 和 source video,也就是有一段该 person 的视频和驱动的音频,使用音频驱动模特的嘴部附近运动,这样得到的视频保真性更高。

在这里插入图片描述
如图 1 所示,本文的的方法就是同时需要 audio-driven 和 source video 的方法,表情和动作都来自于 source video,比较自然。

所以作者在这里就提出了这种方法面临的两个问题:

  • 如何生成更准确的唇形
  • 如何渲染出更保真的面部,尤其是更清晰的牙齿和唇部

在之前:

  • wav2lip:提出了唇形合成判别器来提升唇部的准确性
  • SyncTalkFace:提出了 audio lip memory,也就是使用嘴部区域的视觉特征和对应的 audio 来强化 audio-visual 的关系
  • IP_LAP:使用 transformer-base 关键点生成,来推理 lip 和 关键点的关系

这些方法主要是聚焦于在 decoding 之前对 audio 和 visual 进行融合,但是 audio 和 visual 的维度不同,所以需要将这两个特征变成相同的尺寸再进行特征融合

本文的方法:两阶段

  • 第一阶段:使用了一个基于 audio information 的 hypernetwork 来控制嘴唇的合成形状

    将视觉的 face 信息编码到隐空间,然后使用 HyperConv convolution 对隐空间特征进行特征修正,将修正后的特征 decode 得到 visual face content。HyperConv的权重参数是通过使用音频特征作为输入来构建一个超网络来生成的,从而实现在渲染的视觉内容中对嘴唇运动的音频控制。使用超网络是为了避免在视觉和音频特征融合过程中的额外操作,并更好地确保生成视频中的嘴唇同步。本文想法与音频条件扩散模型[24]类似,它将音频信息作为条件变量,但这种方法采用扩散模型作为网络架构,这增加了对计算资源的需求。

  • 第二阶段:提出了一个高分辨率解码器(HRDecoder)来进一步优化生成面部的保真度。利用第一阶段生成的面部数据和相应的面部草图训练网络,在草图的指导下,实现面部增强。

    为了渲染出更高保真度的面部,DINet[22] 提出了一种形变填充网络来实现高分辨率视频上的面部视觉配音,但如果嘴部区域覆盖了背景,它可能会产生面部以外的人工痕迹。IP_LAP[21]利用从下半部遮挡的目标面部和静态参考图像中提取的先验外观信息,但如果在参考图像中无法检测到 landmark,它可能会失败。另一种可能的方法是基于如 Wav2lip[8] 或 SyncTalkFace[20] 等网络增加输入分辨率,但这不仅增加了训练资源的需求,而且渲染效果不佳,导致持续的人工痕迹。所以本文使用的是 HRDecoder 来提升面部保真度

二、相关工作

2.1 Audio-Driven Talking Face Generation

在只使用音频输入的音频驱动的说话面部生成方法中[12]–[16],通常需要收集特定于人物的音频和视频并进行重新训练。通过引入神经辐射场(NeRF)[25]来表示说话头部的场景[13],可以控制它以在新视角下渲染面部。RAD-NeRF [12]将本质上高维的说话肖像表示分解为三个低维特征网格,使得可以实时渲染说话肖像。GeneFace [14]提出了一个变分运动生成器,以生成准确和富有表现力的面部标志,并使用基于NeRF的渲染器来渲染高保真帧。由于缺乏先验信息,这些任务仍然难以渲染出逼真的表情和自然的动作。

为了驱动单个面部图像,ATVGnet [17]设计了一种级联 GAN 方法来生成说话面部视频,该视频对不同的面部形状、视角、面部特征和嘈杂的音频条件具有鲁棒性。

最近,SadTalker [18]提出了一个新颖的系统,用于使用生成的逼真的3D运动系数,进行风格化的音频驱动单图像说话面部动画,改善了运动同步和视频质量,但仍然无法生成准确的表情和自然的运动序列。

使用源视频驱动音频的方法是最具竞争力的,因为它可以提供足够逼真的面部表情和自然运动信息。Wav2lip [8]、SyncTalkFace [20]、IP LAP [21]、DINET [22]都属于这一类别,主要关注如何生成更好的唇部同步和更高保真度的面部。

2.2 HyperNetwork

Hypernetwork 最初提出是为了生成一个更大网络的权重。在进化计算中,直接操作由数百万个权重参数组成的大型搜索空间是困难的。一种更有效的方法是进化一个较小的网络来生成一个更大网络的权重结构,以便搜索被限制在更小的权重空间内。

权重生成的概念易于用于可控生成任务。Chiang等人[27]利用它来控制3D场景表示的风格。UPST-NeRF[28]使用hypernetwork来控制3D场景的通用真实风格转换。

随着大型语言模型(LLMs)[29]–[32]和生成模型[33]的兴起,hypernetwork 也成为了微调 LLMs的 必要技能之一。本质上,hypernetwork 中生成权重参数以控制大型网络方法的想法与Audio Conditioned Diffusion Model[24]和Latent Diffusion Models中的Conditioning Mechanisms[33]相似,这两者都通过控制变量实现了解码的可控输出。然而,在本文的方法中,执行可控生成相对简单,而不是使用扩散模型进行生成。

2.3 Prior Based Face Restoration

面部修复是指从降质的面部图像中恢复高质量面部图像的过程。

面部修复分为无先验和基于先验的方法。

FSRNet使用一个粗糙的超分辨率(SR)网络来恢复粗糙图像,然后分别通过精细的SR编码器和先验面部传递图估计网络进行处理。最后,将图像特征和先验信息输入到精细的SR解码器中以获得结果。

在文献[37]中,它使用语义标签作为面部先验。语义标签是通过面部解析网络从输入图像或粗糙去模糊图像中提取的。最终的清晰图像是通过输入模糊图像和面部语义标签的拼接来由去模糊网络生成的。

Yin等人提出了一个联合对齐和面部超分辨率网络,以共同学习地标定位和面部修复。

在本文的工作中,作者使用从第一阶段生成的相对低质量面部检测到的地标草图作为输入,以指导 HRDecoder 实现面部增强,以渲染高保真度面部。

三、方法

在这里插入图片描述
本文方法的框架结构如图 2 所示,给定一个 audio 和一段视频:

  • 第一阶段:使用基于 audio feature 的 hypernetwork 来控制视觉上自然的视觉特征
  • 第二阶段:使用第一阶段得到的 faec data 和对应的面部 sketches 来提升质量

3.1 Base Face Generation

1、Hyper Control Lips:

  • 首先,给定 reference image I R I^R IR 和 masked image I M I^M IM(对 reference 遮挡下半部分),FaceEncoder 通过将 I R I^R IR I M I^M IM concat 起来,得到 latent code 如下:

    在这里插入图片描述

  • 然后,使用 HyperConv’s convolution 来对 L C L^C LC 进行处理,得到:
    在这里插入图片描述

    过程为如下,其中 Θ \Theta Θ 是 HyperConv 的权重参数,是由 HyperNet 预测得到的。HyperNet 由 MLP 组成

    在这里插入图片描述

    audio feature A M A^M AM 如下,是使用 AudioEncoder 得到的。声音特征的 mel 频谱的尺寸是 16*80,
    在这里插入图片描述

  • 最后,使用 FaceDecoer 来对 L H L_H LH 进行解码,得到预测的 base face:

    在这里插入图片描述

2、Loss Function for Base Face Generation

为了同时保证唇形同步性和保真性,作者使用多个 loss 来优化

① 优化 quality discriminator: HyperCtrolDiscriminator ( D B D^B DB),也就是质量判别器,所以整个生成过程用公式表达如下, ⊕ \oplus 表示 concat:

在这里插入图片描述

  • g B g^B gB:base face generation,包括: FaceEncoder, HyperConv, FaceDecoder, AudioEncoder 和 HyperNet
  • 公式 2 就表示,base face generation 的输入是 reference image I R I^R IR 和 masked image I M I^M IM 的 concat,以及声音特征 A M A^M AM
  • 经过生成器后,就得到了 predicated base face I B I^B IB

优化 quality discriminator 的 loss 如下:

在这里插入图片描述

  • Base Adversarial Loss:对抗 loss,来让生成的图片更真实

    在这里插入图片描述

  • Base Reconstruction Loss:使用 L1 loss 来衡量生成的 face 和 gt 的距离,让重建的 face 更接近 gt

    在这里插入图片描述

  • Base LPIPS Loss:使用可以学习的 LPIPS loss 来让生成的图片更加接近人眼视觉感受的真实性和自然性

    在这里插入图片描述

  • Base Audio-Visual Sync Loss:作者使用 LRS2 训练了一个 audio-visual 同步的模型, F A F^A FA F V F^V FV,用这两个模型提取到的特征分别是 f a f_a fa f v f_v fv,这两个模型输出的特征使用 cos 相似度来衡量如公式 7,loss 如公式 8

    在这里插入图片描述

  • 最终 base face generation stage 的训练 loss 如下

    在这里插入图片描述

3.2 High-Fidelity Rendering

1、HRDecoder

HRDecoder 组成如下:

  • base convolution module
  • upsampling convolution module,是 transposed convolution,主要用于将低分辨率特征提高到高分辨率
  • output convolution block

HRDecoder:

  • 输入:第一阶段输出的 base face,对应的 face landmark sketch(两者 concat)
  • 输出:高保真的 face(主要依靠的是 landmark sketch 的指导)

HRDecoder 的公式表达:

在这里插入图片描述

  • ⊕ \oplus :concat
  • I S I^S IS:face landmark sketch
  • I H R I^{HR} IHR:高保真的 face

第二阶段 HRDecoder 使用的训练数据是第一阶段训练好的模型生成的 base face 和 对应的 landmark sketches

2、High-Fidelity Rendering loss 函数

在这个阶段,为了生成高保真的 face,作者定义了一个判别器 HRDiscriminator,该 HRDiscriminator 的 loss 如下:

在这里插入图片描述

  • HR Adversarial Loss:对抗 loss,为了保证 HRDecoder 的真实性

    在这里插入图片描述

  • HR Perceptual Loss:感知 loss,使用预训练的 VGG ( ϕ \phi ϕ) 来抽取图像特征,并计算生成的图片和真实图片的 VGG 特征的 L1 loss

    在这里插入图片描述

  • HR Reconstruction Loss:重建 loss,计算生成图片和真实图片的 L1 loss

    在这里插入图片描述

  • HR Lip Loss:为了进一步优化嘴唇区域,作者使用嘴唇区域的 mask 来计算该区域的 lpips loss 和 重建 loss:

    在这里插入图片描述

  • 最终的 loss 如下:

    在这里插入图片描述

四、效果

实验细节:

  • 对 video frame 从中间裁剪 128x128,25fps
  • HyperLips-Base 和 HyperLipsHR 的学习率都为 0.0001
  • 在这里插入图片描述

数据:

  • LRS2
  • MEAD-Neutral

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 26
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用摄像头驱动数字人CSDN,您可以按照以下步骤进行操作: 1. 确认摄像头驱动程序:首先,您需要确保计算机中已经安装了适当的摄像头驱动程序。可以通过设备管理器来查看摄像头的驱动情况,如果没有正确安装驱动程序,您可以从摄像头制造商的官方网站或其他可信的驱动程序下载网站下载并安装适当的驱动程序。 2. 连接摄像头:将您的摄像头连接到计算机的USB端口,并确保摄像头被正常识别。您可以在设备管理器中查看到该摄像头设备,并确认其状态是“正常”或“已启用”。 3. 打开CSDN:在计算机上打开CSDN的网站或应用程序。如果您尚未拥有CSDN的帐户,您可以在网站上注册一个新帐户。 4. 配置CSDN 摄像头设置:在CSDN中,您可以找到摄像头设置选项。这通常位于“个人资料”或“设置”菜单下。在该选项中,您可以选择并配置您的摄像头以供CSDN使用。例如,您可以选择特定的摄像头设备,调整摄像头的分辨率,选择使用外置麦克风等。 5. 测试摄像头:在启用摄像头后,您可以通过CSDN提供的视频通话或视频会议功能来测试摄像头是否正常工作。确保您的CSDN账号有权限使用这些功能,并邀请其他人一起进行测试。 6. 问题排除:如果摄像头无法正常工作,您可以尝试重新启动计算机,并确保摄像头驱动程序已经正确安装。您还可以尝试连接摄像头到其他USB端口,以解决可能的连接问题。如果问题仍然存在,您可以查阅CSDN的帮助文件或联系CSDN的客户支持,获得进一步的指导。 以上是使用摄像头驱动数字人CSDN的基本步骤,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值