基于VideoReTalking+GFPGAN的AI数字人

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

VideoReTalking 是一个新颖的系统,用于根据输入音频编辑真实世界中的说话头部视频,生成具有不同情感的高质量和唇部同步的输出视频。

该系统将此目标分解为三个顺序任务:

  1. 具有规范表情的人脸视频生成;
  2. 音频驱动的唇部同步;
  3. 用于提高照片真实感的人脸增强。

wav2lip和VideoReTalking超分后效果对比

基本原理

  1. 人脸视频生成:使用表情编辑网络修改每一帧的表情,使其与相同的表情模板相匹配,从而生成具有规范表情的视频。
  2. 音频驱动的唇部同步:将该视频与给定的音频一起输入唇部同步网络,生成唇部同步视频。
  3. 人脸增强:通过身份感知的人脸增强网络和后处理来提高合成人脸的照片真实感。

所有这些步骤都使用基于ML和DL学习的方法,并且可以在没有任何用户干预的情况下按顺序进行。

准备工作

从github上下载源码,下载完毕之后下载模型 pre-trained models。

基于VideoReTalking+GFPGAN的AI数字人,Python AI数字人,人工智能
模型分这么多种类,将全部模型复制到 checkpoints 中。

创建虚拟环境

切记这个里面有编译的环境在里面,不要移动创建好的虚拟环境,除非你能自己修改源码修改对应的路径文件。

conda create -n VideoReTalking python=3.8

激活虚拟环境

在GIT环境目录下激活,这里是我的路径,修改成你自己的。

conda activate VideoReTalking 

pip安装匹配版本

确保安装了所有必要的依赖项,可以通过requirements.txt文件进行安装。

这里会有个问题要根据显卡选择torch版本,我的显卡是RTX4090,我选择这个安装命令。

pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

pip install -r requirements.txt

其他显卡根据情况自行安装。

pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html

pip install -r requirements.txt

模型预测对口型

必要的数据准备

事先还要准备好素材视频和音频文件,这里分别放置原始的图片,音频以及视频文件。

其中音频和视频文件放在项目目录下的./examples/audio./examples/face中即可。

基于VideoReTalking+GFPGAN的AI数字人,Python AI数字人,人工智能

命令行预测

使用预训练模型进行快速推理,可以测试任何说话的人脸视频,无需手动对齐。

\VideoReTalking\python.exe inference.py --face examples/face/1.mp4 --audio examples/audio/1.wav --outfile results/1_1.mp4

python inference.py --face examples/face/1.mp4 --audio examples/audio/1.wav --outfile results/1_1.mp4

推理总共分6步,依次执行后会在result文件夹下生成对应的视频文件。基于VideoReTalking+GFPGAN的AI数字人,Python AI数字人,人工智能

参数解释

基础参数设置base_options.py

参数 类型 默认值 解释
–name str ‘face_recon’ 实验名称,决定样本和模型存储的位置
–gpu_ids str ‘0’ GPU的ID,例如:0、0,1,2、0,2。使用-1表示CPU
–checkpoints_dir str ‘./checkpoints’ 模型存储的目录
–vis_batch_nums float 1 用于可视化的图像批次数
–eval_batch_nums float inf 用于评估的图像批次数,设置为inf表示所有图像都参与评估
–use_ddp bool True 是否使用分布式数据并行
–ddp_port str ‘12355’ DDP端口
–display_per_batch bool True 是否使用批次显示损失
–add_image bool True 是否将图像添加到Tensorboard中
–world_size int 1 分布式数据并行的总批次数
–model str ‘facerecon’ 选择要使用的模型
–epoch str ‘latest’ 要加载的模型的训练轮数,设置为’latest’表示使用最新的缓存模型
–verbose bool 如果指定,则打印更多调试信息
–suffix str ‘’ 自定义后缀,将添加到opt.name中,例如:{model}_{netG}_size{load_size}

推理工具参数设置inference_utils.py

参数名 类型 默认值 描述
DNet_path str ‘checkpoints/DNet.pt’ DNet模型的路径
LNet_path str ‘checkpoints/LNet.pth’ LNet模型的路径
ENet_path str ‘checkpoints/ENet.pth’ ENet模型的路径
face3d_net_path str ‘checkpoints/face3d_pretrain_epoch_20.pth’ face3d模型的路径
face str None 包含要使用的人脸的视频/图像的文件路径,此参数必填
audio str None 要用作原始音频源的视频/音频文件的文件路径,此参数必填
exp_img str ‘neutral’ 表情模板。可以是’neutral’,‘smile’或图像路径。默认为’neutral’
outfile str None 要保存结果视频的路径
fps float 25.0 只有当输入为静态图像时可以指定的帧率,默认为25.0
pads list [0, 20, 0, 0] 填充(上、下、左、右)。请确保至少包含下巴区域
face_det_batch_size int 4 人脸检测的批处理大小
LNet_batch_size int 16 LNet的批处理大小
img_size int 384 图像的大小(宽度和高度相等)
crop list [0, -1, 0, -1] 将视频裁剪为较小的区域(上、下、左、右)。在resize_factor和rotate参数之后应用。如果有多个人脸,这很有用。 -1表示根据高度、宽度自动推断值
box list [-1, -1, -1, -1] 为人脸指定一个固定的边界框。如果人脸检测失败,请仅在万不得已时使用此选项。仅在人脸几乎不移动时有效。 语法:(上、下、左、右)
nosmooth bool False 在短时间窗口内阻止平滑人脸检测
static bool False 指定输入是否为静态图像
up_face str ‘original’ 人脸朝向的方向。可以是’original’或其他用户指定的方向
one_shot bool False 一次处理整个视频而不是逐帧处理
without_rl1 bool False 不使用相对l1损失
tmp_dir str ‘temp’ 保存临时结果的文件夹路径
re_preprocess bool False 重新预处理视频(例如,检测新的人脸)

模型训练参数设置train_options.py,训练模型根据实际情况调整。

训练数据参数 数据类型 默认值 解释说明
data_root str ./ 数据集根目录
flist str datalist/train/masks.txt 训练集掩膜文件名列表
batch_size int 32 批处理大小
dataset_mode str flist 选择数据集加载方式。[None
serial_batches bool 如果为True,按顺序获取图像以形成批次;否则随机获取图像。
num_threads int 4 加载数据的线程数
max_dataset_size int inf 数据集允许的最大样本数。如果数据集目录包含的样本数超过max_dataset_size,则仅加载子集。
preprocess str shift_scale_rot_flip 加载时图像的缩放和裁剪方式。[shift_scale_rot_flip
use_aug bool True 是否使用数据增强
验证参数 数据类型 默认值 解释说明
flist_val str datalist/val/masks.txt 验证集掩膜文件名列表
batch_size_val int 32 验证集的批处理大小
可视化参数 数据类型 默认值 解释说明
display_freq int 1000 在屏幕上显示训练结果的频率
print_freq int 100 在控制台上显示训练结果的频率
网络保存和加载参数 数据类型 默认值 解释说明
save_latest_freq int 5000 保存最新结果的频率
save_epoch_freq int 1 在每个epoch结束时保存检查点的频率
evaluation_freq int 5000 评估的频率
save_by_iter bool 是否按迭代保存模型
continue_train bool 继续训练:加载最新模型
epoch_count int 1 起始epoch计数,我们按<epoch_count>,<epoch_count>+<save_latest_freq>,…保存模型
phase str train 训练、验证、测试等
pretrained_name str None 从其他检查点继续训练
训练参数 数据类型 默认值 解释说明
n_epochs int 20 初始学习率的epoch数
lr float 0.0001 Adam的初始学习率
lr_policy str step 学习率策略。[linear
lr_decay_epochs int 10 每lr_decay_epochs个epoch乘以一个gamma

脸部对焦参数配置facerecon_model.py,这些参数默认即可。

网络结构参数 数据类型 默认值 解释说明
net_recon str ‘resnet50’ 网络结构
init_path str ‘checkpoints/init_model/resnet50-0676ba61.pth’ 初始化路径
use_last_fc bool False 是否对最后一个全连接层进行零初始化
bfm_folder str ‘BFM’ BFM文件夹路径
bfm_model str ‘BFM_model_front.mat’ BFM模型
渲染器参数参数 数据类型 默认值 解释说明
focal float 1015. 焦距
center float 112. 中心点
camera_d float 10. 相机参数d
z_near float 5. 近截面
z_far float 15. 远截面
训练参数 数据类型 默认值 解释说明
net_recog str ‘r50’ 人脸识别网络结构
net_recog_path str ‘checkpoints/recog_model/ms1mv3_arcface_r50_fp16/backbone.pth’ 人脸识别网络的权重文件路径
use_crop_face bool False 是否使用裁剪掩码来计算照片损失
use_predef_M bool False 是否使用预定义的M矩阵来处理预测的人脸特征 (M矩阵用于三维形状预测)
数据增强参数参数 数据类型 默认值 解释说明
shift_pixs float 10.0 像素平移大小
scale_delta float 0.1 尺度缩放因子的变化范围
rot_angle float 10.0 旋转角度的变化范围 (单位:度)
损失权重参数 数据类型 默认值 解释说明
w_feat float 0.2 特征损失权重
w_color float 1.92 颜色损失权重
w_reg float 3.0e-4 形状正则化损失权重
w_id float 1.0 身份正则化损失权重
w_exp float 0.8 表情正则化损失权重
w_tex float 1.7e-2 纹理正则化损失权重
w_gamma float 10.0 Gamma矫正损失权重
w_lm float 1.6e-3 关键点坐标损失权重
w_reflc float 5.0 反照率损失权重

其他使用方法

表情控制参数操作,可以通过添加以下参数来控制表情:

参数 解释
–exp_img 预定义的表情模板。默认为"neutral"(中性表情)。可以选择"smile"(微笑)或提供一个图片路径。
–up_face 可以选择"surprise"(惊讶)或"angry"(愤怒)来使用 GANimation 修改上半部分脸部的表情。

WebUI预测

项目中自带WebUI启动文件,是基于gradio开发的页面。

由于代码中素材文件是写死的如果想更换素材并且在页面中显示必须进行一些修改。

添加音频和视频文件的路径目录。

audio_list = os.listdir("./examples/audio")
video_list = os.listdir("./examples/face")

添加路径并遍历文件到对应的文件位置。

            with gradio.Row():
                gradio.Examples(
                    label="Face Examples",
                    examples=[
                        os.path.join(os.path.dirname(__file__), "examples/face/" + str(i)) for i in video_list
                    ],
                    inputs=[v],
                    fn=convert,
                )
            with gradio.Row():
                gradio.Examples(
                    label="Audio Examples",
                    examples=[
                        os.path.join(os.path.dirname(__file__), "examples/audio/" + str(i)) for i in audio_list
                    ],
                    inputs=[a],
                    fn=convert,
                )

然后启动webUI.py文件,然后在浏览器中就可以看到自己添加好的对应文件啦。

基于VideoReTalking+GFPGAN的AI数字人,Python AI数字人,人工智能

最终出来的结果是这样的,视频效果呢个人感觉比wav2lip强一些,如果视频分辨率不大的话无所谓,如果原始分辨率大的话需要进行超分操作。

基于VideoReTalking+GFPGAN的AI数字人,Python AI数字人,人工智能

来看一下和wav2lip的对比吧。虽然处理效率慢了一点淡出出来的效果更佳清楚。
基于VideoReTalking+GFPGAN的AI数字人,Python AI数字人,人工智能文章来源地址https://www.toymoban.com/news/detail-637644.html

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

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

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

相关文章

  • 基于Wav2Lip+GFPGAN的AI数字人视频(以AutoDL算力云平台部署为例)

    目录 前 言 一、AutoDL云算力平台简介 二、在AutoDL云算力平台上部署Wav2Lip-GFPGAN代码 2.1、创建AutoDL云算力实例 2.2、将源码导入实例 2.3、远程AutoDL云服务 2.4、安装依赖 2.5、导入视频和音频目录文件 2.6、配置参数 2.7、学术资源加速 2.8、运行run.py 2.9、导出视频 三、结论 四、参

    2024年02月12日
    浏览(48)
  • 声音克隆,精致细腻,人工智能AI打造国师“一镜到底”鬼畜视频,基于PaddleSpeech(Python3.10)

    电影《满江红》上映之后,国师的一段采访视频火了,被无数段子手恶搞做成鬼畜视频,诚然,国师的这段采访文本相当经典,他生动地描述了一个牛逼吹完,大家都信了,结果发现自己没办法完成最后放弃,随后疯狂往回找补的过程。 最离谱的是,他这段采访用极其丰富的

    2024年02月08日
    浏览(40)
  • 铅华洗尽,粉黛不施,人工智能AI基于ProPainter技术去除图片以及视频水印(Python3.10)

    视频以及图片修复技术是一项具有挑战性的AI视觉任务,它涉及在视频或者图片序列中填补缺失或损坏的区域,同时保持空间和时间的连贯性。该技术在视频补全、对象移除、视频恢复等领域有广泛应用。近年来,两种突出的方案在视频修复中崭露头角:flow-based propagation和

    2024年02月08日
    浏览(57)
  • 声音好听,颜值能打,基于PaddleGAN给人工智能AI语音模型配上动态画面(Python3.10)

    借助So-vits我们可以自己训练五花八门的音色模型,然后复刻想要欣赏的任意歌曲,实现点歌自由,但有时候却又总觉得少了点什么,没错,缺少了画面,只闻其声,却不见其人,本次我们让AI川普的歌声和他伟岸的形象同时出现,基于PaddleGAN构建“靓声靓影”的“懂王”。

    2024年02月05日
    浏览(50)
  • 手把手教你搭建VideoReTalking的AI数字人项目

    提示:本文的安装包下载时间为2023-8-15日,项目还在更新中,可能会有出入,仅供大家参考。 提示:先下载好项目预先需要各种安装包与预训练模型 注意:如果你跟我一样家庭网速感人,可以考虑使用: https://ghproxy.com/ 加速代理 则可以加速下载包的速度 例如地址:https://ghp

    2024年02月06日
    浏览(62)
  • 民谣女神唱流行,基于AI人工智能so-vits库训练自己的音色模型(叶蓓/Python3.10)

    流行天后孙燕姿的音色固然是极好的,但是目前全网都是她的声音复刻,听多了难免会有些审美疲劳,在网络上检索了一圈,还没有发现民谣歌手的音色模型,人就是这样,得不到的永远在骚动,本次我们自己构建训练集,来打造自己的音色模型,让民谣女神来唱流行歌曲,

    2024年02月04日
    浏览(50)
  • 人工智能大模型和数据中台结合,实现“智能数据中台”的AI时代的数字化解决方案

    在当今数字化时代,企业面临着海量数据的挑战,如何高效地管理和利用这些数据成为了企业发展的关键。 数据中台是解决这一问题的重要手段,它可以 在企业内部通过数据集成、数据管理、数据分析和数据应用 等方面的工作,实现 数据的高效利用和价值最大化 。 而 人工

    2024年02月16日
    浏览(50)
  • 人工智能|深度学习——基于数字图像处理和深度学习的车牌定位

    车牌识别Vehicle License Plate Recognition VLPR) 是从一张或一系列数字图片中自动定位车牌区域并提取车牌信息的图像识别技术。车牌识别 以数字图像处理、模式识别、计算机视觉等技术为基础,是现代智能交通系统的重要组成部分,广泛应用于日常生活中,如 停车场收 费管理,车

    2024年02月21日
    浏览(45)
  • 人工智能概论报告-基于PyTorch的深度学习手写数字识别模型研究与实践

    本文是我人工智能概论的课程大作业实践应用报告,可供各位同学参考,内容写的及其水,部分也借助了gpt自动生成,排版等也基本做好,大家可以参照。如果有需要word版的可以私信我,或者在评论区留下邮箱,我会逐个发给。word版是我最后提交的,已经调整统一了全文格

    2024年02月05日
    浏览(69)
  • Aski AI: 基于人工智能的在线AI工具平台

    【产品介绍】   Aski AI是一个基于人工智能的在线AI工具平台,它可以帮助用户快速、准确、全面地解决各种问题。无论是学习、工作、生活、娱乐还是其他领域,只要输入你的问题,Aski AI就会为你提供最合适的答案。此外还提供AI文章写作,AI绘画等人工智能应用。   Ask

    2024年02月11日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包