AI数字人SadTalker实战

这篇具有很好参考价值的文章主要介绍了AI数字人SadTalker实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.概述

AI数字人在营销和品牌推广中扮演着至关重要的角色,许多企业和个人正积极利用数字技术来打造属于自己的财富。有没有一种简单而免费的方式来创建自己的数字人呢?本篇博客笔者将为大家介绍如何搭建属于自己的AI数字人。

2.内容

2.1 什么是SadTalker?

生成头部说话视频通过人脸图像和语音音频仍然面临着多项挑战,包括不自然的头部运动、扭曲的表情和身份的修改。这些问题主要源于对耦合的二维运动场进行学习。另一方面,明确使用3D信息也可能导致表达僵硬和视频不连贯的问题。

为了应对这些挑战,提出了SadTalker模型。该模型从音频中生成3DMM的3D运动系数(包括头部姿势和表情),并通过隐式调制一种新颖的3D感知面部渲染,生成具有说话动作的头部视频。为了学习真实的运动系数,分别对音频和不同类型的运动系数之间的连接进行了显式建模。具体而言,我引入了ExpNet,通过从音频中提取系数和3D渲染的面部,学习准确的面部表情。

对于头部姿势,设计了PoseVAE,通过有条件的变分自编码器合成不同风格的头部运动。最后,生成的3D运动系数被映射到所提出的面部渲染的无监督3D关键点空间,并合成最终的视频。通过大量实验证明了该方法在运动和视频质量方面的卓越性。

sdtalker,人工智能,ai,AIGC

2.2 快速安装

GitHub地址:https://github.com/OpenTalker/SadTalker

论文:https://arxiv.org/pdf/2211.12194.pdf

1.环境准备

git clone https://github.com/OpenTalker/SadTalker.git
cd SadTalker 
conda create -n sadtalker python=3.9
conda activate sadtalker
# install torch 2.2
pip install torch torchvision torchaudio
conda install ffmpeg
pip install -r requirements.txt
pip install dlib # macOS needs to install the original dlib.

2.下载模型

执行如下命令,会自动下载模型:

bash scripts/download_models.sh

3.安装深度学习工具包

pip install tts

4.启动

python app_sadtalker.py

3.表情建模

Audio Encoder采用ResNet为主框架的编码器,整合了Wav2Lip模型的音频编码分支。这是一个预训练的编码器,通过微调后续的全连接层即可完成。Wav2Lip的输入包括单张人脸图片和一段音频,输出为仅包含嘴巴动作的图片序列。生成的表情系数与嘴巴相关,有效减少了其他3D系数(特别是头部姿态)对表情系数的影响。

由于现实中的视频通常在三维环境中拍摄,因此三维信息对于提高生成视频的真实性至关重要。然而,之前的研究很少考虑到三维空间,因为仅仅从一张平面图像中很难获取原始的三维稀疏信息,同时设计高质量的面部渲染器也颇具挑战。受到最近单图像深度三维重建方法的启发,研究人员将预测的三维形变模型(3DMMs)的空间表示作为中间表征。在3DMM中,三维脸部形状S可以被解耦为:

sdtalker,人工智能,ai,AIGC

在这里,S代表三维人脸的平均形状,而Uid和Uexp则是LSFM morphable模型中身份和表情的正则。系数α(80维)和β(64维)分别描述个体身份和表情。为了维持不同姿势的差异性,系数r和t分别表示头部旋转和平移。为了实现身份无关的系数生成,仅将运动参数建模为{β, r, t}。

换句话说,我们从输入的音频中独立学习头部姿势ρ=[r, t]和表情系数β,然后使用这些运动系数来隐式调制面部渲染,用于最终的视频合成。这个方法保证了生成的视频在维持头部姿势的差异性的同时,实现了身份无关的系数生成,为最终合成的视频提供了更加自然和逼真的效果。

三维运动系数涵盖了头部姿势和表情,其中头部姿势表示全局运动,而表情则是相对局部的。由于头部姿势与音频的关系相对较弱,而嘴唇的运动与音频高度相关,完全学习所有的系数可能给网络带来巨大的不确定性。

因此,SadTalker采用了PoseVAE和ExpNet两个模块,分别用于生成头部姿势和表情的运动。通过这种方式,网络能够更有效地处理头部姿势和表情之间的关系,避免不必要的不确定性,同时更专注于与音频高度关联的嘴唇运动的生成。

4.头部建模

在训练中,我们采用基于编码器-解码器结构的方法对固定数量的帧进行PoseVAE(头部姿势变分自编码器)训练。编码器和解码器都是两层MLP(多层感知机),接受一个包含连续t帧头部姿势的输入,并将其嵌入到高斯分布中。在解码器中,网络从采样分布中学习生成t帧姿势。

值得注意的是,PoseVAE并不直接生成姿势,而是学习第一帧条件下的姿势残差。这一特性使得该方法在测试中能够在第一帧的条件下生成更长、更稳定、更连续的头部运动。

类似于条件变分自编码器(CVAE),PoseVAE在模型中还引入了相应的音频特征和风格标识,用作节奏感知和身份风格的条件。模型使用KL散度来度量生成运动的分布,同时采用均方损失和对抗性损失来确保生成的质量。这样的设计综合考虑了多个因素,提高了生成视频的运动真实性和质量。

sdtalker,人工智能,ai,AIGC

 5.人脸合成

在生成真实的三维运动系数后,研究人员采用了一个精心设计的三维图像动画器来渲染最终的视频。最近提出的图像动画方法,如face-vid2vid,能够隐含地从单一图像中学习3D信息,但该方法需要一个真实的视频作为动作驱动信号。而在本论文中提出的脸部渲染方法,通过3DMM系数来驱动。

为了解决这个问题,研究人员引入了mappingNet,该网络被设计用于学习显式的3DMM运动系数(头部姿势和表情)以及隐式的无监督3D关键点之间的关系。这个创新性的方法使得从生成的三维运动系数到最终视频的渲染过程更加精准和可控,为数字图像动画领域带来了新的突破。

sdtalker,人工智能,ai,AIGC

通过使用几个一维卷积层,mappingNet建立了一个模型,类似于PIRenderer,它采用时间系数的时间窗口进行平滑处理。与PIRenderer不同的是,研究人员发现在PIRenderer中,人脸对齐的运动系数会显著影响音频驱动的视频生成的运动自然度。因此,mappingNet仅使用表情和头部姿势的系数。

训练阶段包含两个关键步骤:首先,按照原论文的方法,以自监督的方式训练face-vid2vid。然后,在冻结外观编码器、canonical关键点估计器和图像生成器的所有参数之后,使用ground truth视频的3DMM系数对mappingNet进行微调,以重建的方式进行训练。

在无监督关键点的领域中,使用L1损失进行监督训练,并按照其原始实现方式生成最终的视频。这种方法可以提高生成视频的质量和自然度,尤其是在考虑到人脸对齐运动系数对音频驱动的影响的情况下。

6.预览

本地浏览器访问:http://127.0.0.1:7860/

sdtalker,人工智能,ai,AIGC

文章转载自:哥不是小萝莉

原文链接:https://www.cnblogs.com/smartloli/p/18033296

体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构文章来源地址https://www.toymoban.com/news/detail-859948.html

到了这里,关于AI数字人SadTalker实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 精通AI领域技术实战千例专栏—学习人工智能的指南宝典

    PC端可直接搜索 快捷键: Ctrl+F 应用领域、项目、比赛名称、技术类型等等 注意看本文目录-快速了解本专栏 🎉🎊🎉 你的技术旅程将在这里启航! 🚀 本专栏:精通AI领域技术实战千例专栏 从基础到实践,深入学习。无论你是初学者还是经

    2024年02月05日
    浏览(51)
  • 机器之心 AI 技术--人工智能助力个性化视频实战经验分享(文末送书)

    在视频生成即将迎来技术和应用大爆发之际,为了帮助企业和广大从业者掌握技术前沿,把握时代机遇,机器之心AI论坛就将国内的视频生成技术力量齐聚一堂,共同分享国内顶尖力量的技术突破和应用实践。 论坛将于2024.01.20在北京举办,现场汇聚领域内专家和一线开发者,

    2024年02月03日
    浏览(43)
  • AI人工智能中的数学基础原理与Python实战: 矩阵本质及其运算

    人工智能(AI)和机器学习(ML)已经成为当今最热门的技术领域之一,它们在各个行业的应用也越来越广泛。然而,在深入了解这些领域之前,我们需要了解一些基本的数学原理和算法。这篇文章将涵盖矩阵的本质以及如何在Python中进行矩阵运算。 矩阵是计算机科学和数学中的一

    2024年04月09日
    浏览(50)
  • [人工智能] 程序员超级进化ai必修课+AIGC全栈项目实战课

    课程内容: ├10_02【Java项目】基于ChatGPT的瑞吉外卖系统开发-01.ChatGPT在Java中的应用 .mp4 ├11_02【Java项目】基于ChatGPT的瑞吉外卖系统开发-02.多轮对话和编写文档 .mp4 ├12_02【Java项目】基于ChatGPT的瑞吉外卖系统开发-03.项目介绍和环境搭建 .mp4 ├13_02【Java项目】基于ChatGPT的瑞吉

    2024年02月03日
    浏览(36)
  • 基于Java(SpringBoot框架)毕业设计作品成品(33)AI人工智能毕设AI常用数字图像图片特效处理系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(34)
  • AI人工智能中的数学基础原理与Python实战: 线性代数基础概述

    随着人工智能技术的不断发展,人工智能已经成为了许多行业的核心技术之一。在人工智能领域中,数学是一个非常重要的基础。线性代数是数学中的一个重要分支,它在人工智能中发挥着至关重要的作用。本文将介绍线性代数的基本概念、算法原理、具体操作步骤以及数学

    2024年04月12日
    浏览(37)
  • AI绘画调用OpenAI-api接口【人工智能里的未来之城】:4 座未来派塔楼,天桥上覆盖着茂密的树叶,数字艺术

    OpenAI绘画数字艺术是一种利用人工智能算法生成数字艺术的技术。该技术使用了一种称为GAN(Generative Adversarial Networks,生成对抗网络)的深度学习模型,这种模型由两个神经网络组成:生成器和判别器。 生成器的作用是生成新的数字艺术作品,它从随机噪声中生成图像,并

    2024年02月12日
    浏览(35)
  • AI人工智能中的概率论与统计学原理与Python实战:35. Python实现量子计算与量子机器学习...

    量子计算和量子机器学习是人工智能领域的一个重要分支,它们利用量子物理现象来解决一些传统计算方法无法解决的问题。量子计算的核心是量子比特(qubit),它可以存储多种信息,而不是传统的二进制比特(bit)。量子机器学习则利用量子计算的优势,为机器学习问题提供更

    2024年04月14日
    浏览(49)
  • AI人工智能中的概率论与统计学原理与Python实战:隐马尔可夫模型(HMM)的理解与实现...

    随着人工智能技术的不断发展,人工智能已经成为了许多行业的核心技术之一。在人工智能中,概率论和统计学是非常重要的一部分,它们可以帮助我们更好地理解和解决问题。在本文中,我们将讨论概率论与统计学原理在人工智能中的应用,以及如何使用Python实现隐马尔可

    2024年04月10日
    浏览(41)
  • 数字孪生和人工智能异同?

    数字孪生和人工智能是两个近年来备受关注的前沿技术,在不同领域发挥着重要作用。虽然两者都涉及数据处理和模拟,但其本质和应用有着显著的区别。本文将介绍数字孪生和人工智能之间的联系和区别,以帮助读者更好地理解它们在不同场景下的作用。 一、数字孪生 数

    2024年02月16日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包