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

在这里插入图片描述

文章目录

    • 一、背景
    • 二、相关工作
      • 2.1 Audio-Driven Talking Face Generation
      • 2.2 HyperNetwork
      • 2.3 Prior Based Face Restoration
    • 三、方法
      • 3.1 Base Face Generation
      • 3.2 High-Fidelity Rendering
    • 四、效果

论文: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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/333354.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Android] Android架构体系(2)

文章目录 Bionic精简对系统调用的支持:不支持 System V IPC:有限的 Pthread 功能:有限支持C:不再支持本地化和/或宽字符:Bionic新增的特性系统属性硬编码写死的UID/GID内置了DNS解析硬编码写死的服务和协议 硬件抽象层Linux内核匿名共享内存(ASHMem)BinderLoggerION 内存管理内…

vue2嵌入高德地图选择地址后显示地址和经纬度

以高德地图为里&#xff0c;申请key&#xff0c;选择js api服务&#xff0c;获取key和密钥. vue2项目代码引入相关依赖&#xff1a; npm i amap/amap-jsapi-loader -S 封装成组件: <template><div><el-row :gutter"15" class""><…

[C++] external “C“的作用和使用场景

C++中extern "C"的作用是什么? 在 C++ 中,extern "C" 的作用是告诉编译器按照 C 语言的规范来处理函数名和变量名。这是因为 C++ 编译器会对函数名和变量名进行名称修饰(name mangling),以区分不同的函数和变量。而在 C 语言中,函数名和变量名不会被名…

【b站咸虾米】chapter4_vue组件_新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握

课程地址&#xff1a;【新课uniapp零基础入门到项目打包&#xff08;微信小程序/H5/vue/安卓apk&#xff09;全掌握】 https://www.bilibili.com/video/BV1mT411K7nW/?p12&share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 四、vue组件 uni-app官网 …

《战略共创年度辅导》:手把手辅导企业做战略,比传统咨询更落地

今天产业迭代速度不断加剧,人类知识更迭周期大大压缩到2年以内,企业遭遇更多挑战:1.增长乏力;2.品牌老化;3.竞争压力大;4.竞争方向不明确;5.产品同质化;6.利润越来越低;7.团队执行难等等。 基于此&#xff0c;《战略共创年度辅导》应运而生&#xff0c;旨在手把手辅导企业家及…

基于改进蝙蝠算法的三维航线规划算法

matlab2020a可正常运行 基于改进蝙蝠算法的三维航线规划资源-CSDN文库

MySQL深度分页优化问题

☆* o(≧▽≦)o *☆嗨~我是小奥&#x1f379; &#x1f4c4;&#x1f4c4;&#x1f4c4;个人博客&#xff1a;小奥的博客 &#x1f4c4;&#x1f4c4;&#x1f4c4;CSDN&#xff1a;个人CSDN &#x1f4d9;&#x1f4d9;&#x1f4d9;Github&#xff1a;传送门 &#x1f4c5;&a…

2018年认证杯SPSSPRO杯数学建模A题(第二阶段)海豚与沙丁鱼全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 基于聚类分析的海豚捕食合作策略 A题 海豚与沙丁鱼 原题再现&#xff1a; 沙丁鱼以聚成大群的方式来对抗海豚的捕食。由于水下光线很暗&#xff0c;所以在距离较远时&#xff0c;海豚只能使用回声定位方法来判断鱼群的整体位置&#xff0c;难…

cKDTree中的query_ball_point()函数用法

1. 用法 x可以是一个点也可以是一堆点&#xff0c;要找x邻域内的点。 r是搜索的半径。 eps是一个非负的float型小数&#xff0c;如果最近邻的点距离比r/(1eps)还大&#xff0c;则不再进行搜索。 返回找到的点的索引。 from scipy.spatial import cKDTree #point cloud data -&…

PBR材质纹理下载

03:10 按照视频里的顺序 我们从第6个网站开始倒数 点击本行文字或下方链接 进入查看 6大网站地址 网址查看链接&#xff1a; http://www.uzing.net/community_show-1962-48-48-35.html 06 Tectures Wood Fence 001 | 3D TEXTURES 简介&#xff1a;最大的纹理网站之一&#x…

Vcruntime140_1.dll丢失的错误提示怎么解决,关于Vcruntime140_1.dll文件

在使用电脑时你是否遇到过关于Vcruntime140_1.dll文件丢失的错误提示&#xff0c;出现这样的提示时是不是不知所措&#xff0c;今天就给大家讲解Vcruntime140_1.dll文件的一些相关介绍&#xff0c;希望能够帮助大家解决Vcruntime140_1.dll丢失的难题。 一.Vcruntime140_1.dll文…

Docker 安装 CentOS

Docker 安装 CentOS CentOS&#xff08;Community Enterprise Operating System&#xff09;是 Linux 发行版之一&#xff0c;它是来自于 Red Hat Enterprise Linux(RHEL) 依照开放源代码规定发布的源代码所编译而成。由于出自同样的源代码&#xff0c;因此有些要求高度稳定性…

2023年全球软件质量效能大会(QECon深圳站):核心内容与学习收获(附大会核心PPT下载)

随着科技的快速发展&#xff0c;软件行业面临着越来越多的挑战和机遇。为了更好地应对这些挑战&#xff0c;不断提升软件的质量和效能&#xff0c;大会将汇聚全球的软件开发者、架构师和项目经理&#xff0c;共同探讨和分享关于软件质量保证、测试、性能优化、用户体验设计、人…

寒假刷题-递归与递推

寒假刷题 92. 递归实现指数型枚举 解法1递归 使用递归对每一个坑位进行选择&#xff0c;每个坑位有两种选择&#xff0c;填或者不填&#xff0c;使用st数组来记录每个坑位的状态&#xff0c;u来记录已经有多少坑位有了选择。 每个坑位有2钟选择&#xff0c;n个坑位的复杂度就…

基于gd32f103移植freemodbus master 主栈

1.移植freemodbus master需要先移植RT-Thread操作系统 GD32F103C8T6移植 RTT Nano 教程-CSDN博客 2.移植freemodbus master协议栈 在移植了RTT以后,我们需要移植就只有串口相关的函数 移植freemodbus master协议栈具体步骤 下载移植freemodbus master协议栈 源码添加协议栈…

PPT 编辑模式滚动页面不居中

PPT 编辑模式滚动页面不居中 目标&#xff1a;编辑模式下适应窗口大小、切换页面居中显示 调整视图大小&#xff0c;编辑模式通过Ctrl 鼠标滚轮 或 在视图菜单中点击适应窗口大小。 2. 翻页异常&#xff0c;调整视图大小后&#xff0c;PPT翻页但内容不居中或滚动&#xff0c…

2024开放式耳机怎么选?最新开放式耳机选购指南,实测避坑!

在音乐的世界中&#xff0c;开放式耳机为听者提供了一种与众不同的聆听体验&#xff0c;它们能够让你更深入地感受音乐&#xff0c;长时间佩戴也更加舒适健康&#xff0c;2024年市场上涌现出了众多优质的开放式耳机&#xff0c;为音乐爱好者提供了丰富的选择&#xff0c;但如何…

AWS CI/CD之三:CodePipeline

前提 在搞定CodeBuild和CodeDeploy之后&#xff0c;就可以配置CodePipeline&#xff0c;这是AWS CI/CD最后一个核心服务了。 1. 设置源 打开CodePipeline主页&#xff0c;开始创建管道&#xff0c;如下图&#xff1a; 管道设置&#xff0c;如下图&#xff1a; 设置源&…

排序:计数排序

目录 思想&#xff1a; 操作步骤&#xff1a; 思路&#xff1a; 注意事项&#xff1a; 优缺点&#xff1a; 代码解析&#xff1a; 完整代码展示&#xff1a; 思想&#xff1a; 计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用。 操作步骤&#xff…

我用 ChatGPT 做了一次探索性数据分析,真的太太太实用了!

ChatGPT 经过短短1年时间的发展&#xff0c;其功能越来越强&#xff0c;现在已经是大多数企业和个人不可或缺的助手。特别是最新的 GPT-4 版本&#xff0c;专门在左边菜单栏给出了两个工具&#xff08;一个是数据分析&#xff0c;另一个是根据文字描述生成图片&#xff09;&…
最新文章