【思路合集】talking head generation+stable diffusion

1 以DiffusionVideoEditing为baseline:

改进方向

针对于自回归训练方式可能导致的漂移问题:

  1. 训练时,在前一帧上引入小量的面部扭曲,模拟在生成过程中自然发生的扭曲。促使模型查看身份帧以进行修正。
  2. 在像VoxCeleb或LRS这样的具有不受限制条件的训练集中,训练更多样化的说话人数据。

针对训练速度慢,算力消耗大的问题:

作者尝试在潜空间中进行训练以加快训练速度,但是样本质量下降,因此在像素空间中操作,且只能训练128x128大小的数据。改进模型的训练速度对我们来说是首要任务,这将使我们能够在更大、更多样化的“野外”数据集上进行训练,如VoxCeleb [45]或LRS [12]。

希望尝试用LDM的方法训练,看如何在latent space训练且不降低样本质量。

语音条件:计划探索使用更广泛的语音特征作为模型条件的潜力,例如使用预训练的音频编码器,如Wav2Vec2 [3]、Whisper [52]或DeepSpeech2 [1]。相信结合这些特征可能会提高我们模型的唇部同步性能,并生成更逼真、表现力更强的唇部运动。

针对生成的说话头的抖动问题:

  1. 时间一致性:确保生成的说话头在时间上是连续和平滑的。在模型中引入时间依赖性,使用前一帧或前几帧的信息作为输入,增加生成的连贯性。
  2. 噪声注入:在输入数据中添加噪声或随机性,帮助减少生成结果中的抖动。通过在训练过程中或生成过程中引入适量的噪声,可以使模型更具鲁棒性。
  3. 重复惩罚:在生成过程中,通过记录已生成的特征或帧,并在后续生成中降低其权重,可以减少重复出现的特征或帧。这有助于生成更加平稳和多样化的说话头。
  4. 额外的约束或先验知识:对说话头进行进一步控制。例如,可以限制嘴唇形状的变化范围、语音速度的变化范围等,以减少不自然的抖动。
  5. 数据增强和多样性:用更多的训练数据、数据增强技术和多样性增强方法,使模型更好地学习说话头的多样性,并减少抖动。

用到的方法

1.Palette: Image-to-image diffusion models:通过将前一帧和身份帧连接到遮挡帧上,来训练模型生成所需的帧。

2.可以在我们的解决方案之上应用诸如[Learning trajectory-aware transformer for video superresolution]的视频超分辨率技术,以获得高分辨率的样本。

3.在U-Net内的条件残差块中发送音频特征,来驱动面部动画,对unet的改动详见[Diffused heads: Diffusion models beat gans on talking-face generation. ]

2 以DreamTalk为baseline:

改进方向

1. 风格与内容分离:研究如何将说话头的风格和内容进行有效地分离和控制。通过引入额外的约束或正则化项来实现,在保持风格一致的同时,灵活地修改或替换内容。

一种方法是条件生成模型,将风格信息作为附加输入,使模型能够根据给定的风格,生成相应说话头。通过调整风格输入,可以改变生成结果的风格,例如从正式到随意的转变。

另一种方法是风格迁移,通过将源样本(具有某种风格)与目标样本(希望采用的另一种风格)进行对齐和学习,从而将源样本的内容转移到目标样本的风格中,从而在不改变内容的情况下修改风格。

用到的方法

1.人脸运动由渲染器 [Pirenderer: Controllable portrait image generation via semantic neural rendering] 渲染成视频帧,并对其微调,使渲染器具有情感表达生成能力。还负责将将输出的人脸运动渲染为视频。

2. 人脸运动被参数化为来自3D可变形模型[A morphable model for the synthesis of 3d faces.]的表情参数序列。

3.仅使用标准扩散模型中的去噪损失,会导致不准确的唇部运动。补救方法:由预训练的唇部专家[A lip sync expert is all you need for speech to lip generation in the wild]提供唇动指导。(然而,唇部专家只关注一般的说话风格,这导致生成统一风格的面部运动。)

4.为了从人脸运动m中获取唇动信息,首先将m转换为相应的人脸网格,并选择嘴巴区域的顶点作为唇部运动表示[Styletalk: One-shot talking head generation with controllable speaking styles]。嘴唇运动和音频编码器分别主要由MLPs和1d卷积实现。

5.开发了一个去噪网络:创建富有表现力的、音频驱动的面部动作。风格感知嘴唇专家:优化口型同步,同时不影响风格表达。风格预测器:直接从音频中推断说话风格,从而消除了对视频参考的需要。

基线方法:MakeitTalk[105]、Wav2Lip[49]、PCAVS[104]、AVCT[84]、GC-AVT[37]、EAMM[30]、StyleTalk[46]、DiffTalk[58]、SadTalker[100]、PDFGC[78]和EAT[20]。

3 其他论文及方法

有效利用隐空间:DAE (Diffusion Autoencoder) ,DAE-Talker的前置文章。将DDIM的控制信息编码到类似StyleGAN的隐空间,借此实现与StyleGAN类似的可控图像生成。它将latent code分为两部分,分别是有语义意义的线性隐码和捕捉随机细节的“Noise”。 

DAE-talker:

  • 解决视频抖动的方法:使用相同噪声做起始点,保证latent code的平滑性。
  • 增强音频的表征能力:选择预训练Wav2vec 2.0提取音频特征。
  • 平滑latent code:使用堆叠的Comformer[7]来构建局部和全局的上下文关联,以生成变化更加平滑的latent code。
  • 学习音频和姿态之间的对应关系:在Conformer的Encoder和Decoder之间,加入了姿态控制器(Pose Adaptor),用来学习音频和姿态之间的对应关系。(语音驱动动画的问题是一个一对多的问题。在头部姿态的情况下尤其如此,同一段音频很容易对应许多不同的姿态。为了缓解这个问题,作者提出在speech2latent网络中添加一个特定的组件来建模姿态。姿态预测器从语音中预测姿态,而姿态投影器将姿态添加回网络的中间特征中。通过在此阶段添加姿态损失,可以更好地建模姿态。由于姿态被投影到特征中,可以使用预测的姿态或真实的姿态。)
  • 是否可以将latent code进一步拆分为id, pose, expression的latent representation?
  • 局限性:模型仅在单个演讲者的12分钟数据上进行训练,没有环境变化。实验仅限于一个数据集。除了奥巴马之外,没有其他人的实验结果。且不易训练。

LAUGHING MATTERS:

  • Video diffusion models:采用了可分解的时空U-Net架构,扩展了图像扩散模型中使用的标准2D U-Net。由四个通过残差连接连接的下采样和上采样块组成。
  • Make-a-video:用伪3d卷积层和注意力层来平衡计算效率和网络中的信息共享。对于每一层,不使用完整的3D卷积,而是对空间维度应用2D卷积,然后通过合并其他维度对时间维度应用1D卷积。对注意力层应用类似的策略。

提高分辨率:加入metaportrait之类的超分算法,或最后接gfpgan进行图像修复,高清细节恢复。 

插帧:RIFE,可以改善说话头生成效果:Real-Time Intermediate Flow Estimation for Video Frame Interpolation

利用面部先验:Talking Head Generation with Probabilistic Audio-to-Visual Diffusion Priors

TH-PAD (zxyin.github.io)

端到端无监督运动迁移框架:Thin-Plate Spline Motion Model for Image Animation,TPSMM,code:GitHub - yoyo-nb/Thin-Plate-Spline-Motion-Model: [CVPR 2022] Thin-Plate Spline Motion Model for Image Animation.

高清:从GFPGAN 改为 ONNX / TensorRT.

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu1604安装及问题解决

虚拟机安装vmbox7 虚拟机操作: 安装增强功能 sudo mkdir /mnt/share sudo mount -t vboxsf sharefolder /mnt/share第一次使用sudo提示is not in the sudoers file. This incident will be reported 你的root需要设置好密码 sudo passwd root 输入如下指令&#x…

机器学习整理

绪论 什么是机器学习? 机器学习研究能够从经验中自动提升自身性能的计算机算法。 机器学习经历了哪几个阶段? 推理期:赋予机器逻辑推理能力 知识期:使机器拥有知识 学习期:让机器自己学习 什么是有监督学习和无监…

【Java面试】Mysql

目录 sql的执行顺序索引的优点和缺点怎么避免索引失效(也属于sql优化的一种)一条sql查询非常慢,我们怎么去排查和优化?存储引擎 MylSAM和InnoDB、Memory的区别事务的四大特性(ACID)脏读、不可重复读、幻读事务的隔离级别?怎么优化数据库SQL优…

多个SSH-Key下,配置Github SSH-Key

首先,检查 github 的连接性,因为DNS污染的原因,很多机器ping不通github,就像博主的机器: 怎么解决DNS污染的问题,博主查了很多教程,测试出一个有效的方法,那就是修改hosts文件。host…

DAY11_(简易版)VUEElement综合案例

目录 1 VUE1.1 概述1.1.1 Vue js文件下载 1.2 快速入门1.3 Vue 指令1.3.1 v-bind & v-model 指令1.3.2 v-on 指令1.3.3 条件判断指令1.3.4 v-for 指令 1.4 生命周期1.5 案例1.5.1 需求1.5.2 查询所有功能1.5.3 添加功能 2 Element2.0 element-ui js和css和字体图标下载2.1 …

go语言(十九)---- channel

channel的使用 //1. 发送value到channelchannel <- value //2. 接收并将其丢弃<- channel //3. 从channel中接收数据&#xff0c;并将其赋值给x x : <- channel 例子 package mainimport "fmt"func main() {//定义一个channelc : make(chan int)go func…

山海鲸智慧医疗解决方案:让医疗数据说话

在医疗领域&#xff0c;数据可视化对于提高诊疗效率、辅助医学研究和提升患者就医体验具有重要意义。作为山海鲸可视化软件的开发者&#xff0c;我们致力于利用先进的数据可视化技术&#xff0c;为医疗行业提供高效、智能的解决方案&#xff0c;本篇文章就带大家一起了解一下这…

【Python】01快速上手爬虫案例一:搞定豆瓣读书

文章目录 前言一、VSCodePython环境搭建二、爬虫案例一1、爬取第一页数据2、爬取所有页数据3、格式化html数据4、导出excel文件 前言 实战是最好的老师&#xff0c;直接案例操作&#xff0c;快速上手。 案例一&#xff0c;爬取数据&#xff0c;最终效果图&#xff1a; 一、VS…

用Visual Studio Code创建JavaScript运行环境【2024版】

用Visual Studio Code创建JavaScript运行环境 JavaScript 的历史 JavaScript 最初被称为 LiveScript&#xff0c;由 Netscape&#xff08;Netscape Communications Corporation&#xff0c;网景通信公司&#xff09;公司的布兰登艾奇&#xff08;Brendan Eich&#xff09;在 …

SpringBoot 自定义Filter 提前返回 CORS 错误 处理前后端分离跨域配置无效问题解析

前言 浏览器有跨域限制&#xff0c;非同源策略 (协议、主机名或端口不同) 被视为跨域请求&#xff0c;解决跨域有跨域资源共享(CORS)、反向代理和 JSONP的方式。本篇通过 SpringBoot 的资源共享配置 (CORS) 来解决前后端分离项目的跨域&#xff0c;以及从原理上去解决跨域配置…

JVM简介

一、什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组…

qt 坦克大战游戏 GUI绘制

关于本章节中使用的图形绘制类&#xff0c;如QGraphicsView、QGraphicsScene等的详细使用说明请参见我的另一篇文章&#xff1a; 《图形绘制QGraphicsView、QGraphicsScene、QGraphicsItem、Qt GUI-CSDN博客》 本文将模仿坦克大战游戏&#xff0c;目前只绘制出一辆坦克&#…

编译PCL Qt程序

使用PCL的qt程序时&#xff0c;提示不是用QVTK编译的&#xff0c;所以需要在编译VTK时打开Qt的编译选项&#xff08;由于CMakeList比较复杂&#xff0c;使用CMakeGui进行配置&#xff0c;PCL同理&#xff09;&#xff0c;编译VTK完成后&#xff0c;编译PCL也需要配置Qt支持&…

公司内网虚拟机中穿透服务器Coturn的搭建

1. 写在前面 coturn服务器的搭建文章已经非常多&#xff0c;但是对于对linux不熟悉的人来说排查错误的文章不多&#xff0c;此篇文章把我这次搭建过程以及如何排查问题做一个梳理我这里是在oracle vm虚拟机中搭建安装的ubuntu&#xff0c;通过H3C路由器映射到外网以下介绍我只…

再谈Android View绘制流程

一&#xff0c;先思考何时开始绘制 笔者在这里提醒读者&#xff0c;Android的View是UI的高级抽象&#xff0c;我们平时使用的XML文件也好&#xff0c;本质是设计模式中的一种策略模式&#xff0c;其View可以理解为一种底层UI显示的Request。各种VIew的排布&#xff0c;来自于开…

C语言之指针的地址和指向的内容总结(八十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【开源】基于JAVA语言的实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…

带【科技感】的Echarts 图表

Echarts脚本在线地址 https://cdn.jsdelivr.net/npm/echarts5.4.3/dist/echarts.min.js 引入Echarts 脚本后粘贴代码 vue2 代码&#xff1a; <template><div><div ref"col-2-row-2" class"col-2-row-2"></div></div> <…

机器学习笔记:地理加权回归(GWR)

1 传统的线性回归 机器学习笔记&#xff1a;线性回归_线性回归的读书笔记-CSDN博客 最优的β为&#xff1a; 2 地理加权回归&#xff08;GWR&#xff09; 2.1 模型概述 地理加权回归&#xff08;Geographically Weighted Regression&#xff0c;GWR&#xff09;是传统回归分…

【GPU】CUDA是什么?以及学习路线图!

什么是CUDA 作者&#xff1a;Keepin 1、cuda是英伟达开发的一套应用软件接口&#xff08;API&#xff09;。其主要应用于英伟达GPU显卡的调用。 2、云计算可以简单的理解为是通过网络组合成的计算机集群&#xff0c;用于各种加速&#xff0c;其中以CPU为主&#xff0c;GPU为辅…