数字人实战第五天——Dinet 训练自己的数字人

news2024/9/25 14:24:49

一、简介

DINet 是一个形变修复网络,专门用于解决高分辨率人脸视觉配音中的难题。它的设计目的是为了提升视觉配音的保真度和细节丰富性,特别是在少样本学习的情境下,即在训练数据较少的情况下依然能够实现较好的配音效果。

DINet的技术实现:

  1. 形变模块:这个模块通过自适应的空间形变,对参考人脸图像的特征图进行调整,使其与输入的音频驱动和原图中的头部姿态对齐。形变后的特征图包含了嘴部的形状信息,这对于生成自然的嘴部动作至关重要。

  2. 修复模块:修复模块的作用是将形变后的特征图与原图像的其它属性(如头部姿态和面部表情)进行融合,以生成逼真的视觉配音效果。特征解码器在这个过程中起到关键作用,确保嘴部动作与音频一致,同时保留整体的面部细节。

DINet 使用了自适应空间形变技术来处理高分辨率图像中的细节问题,特别是面部高频纹理的保留。通过形变修复的两阶段处理,DINet 能在视觉配音中达到细腻且自然的效果。

  1. 少样本学习的应用:DINet 能在少量参考图片和音频数据的基础上生成高质量的人脸视觉配音,具有实用性和可扩展性。
  2. 保真度高:相比前人工作,DINet 保留了更多的高频细节,生成的视觉配音效果更加真实。
  3. 丰富的应用前景:DINet 提供了一个强大的模型框架,可以用于需要视觉配音的领域,如影视配音、虚拟人物表情生成等。

DINet 通过空间形变与特征修复相结合,显著提升了视觉配音的效果,尤其是在高分辨率场景下,它展现了优异的性能和广阔的应用前景。

二、环境安装

https://github.com/MRzzm/DINet

conda create -n dinet python==3.9
conda activate dinet

pip install resampy==0.2.2  python_speech_features  
pip install numpy==1.22
pip install --force-reinstall opencv-python
pip install scipy==1.5.4 
pip install torch=1.7.1 torchvision=0.8.2 protobuf=3.20.0

由于tensorflow 已经没有 1.15.2 版本了,安装其他版本会报错如下:

ERROR: Ignored the following versions that require a different python version: 2.1.0 Requires-Python >=3.10; 2.1.0rc1 Requires-Python >=3.10; 2.1.1 Requires-Python >=3.10
ERROR: Could not find a version that satisfies the requirement keras-nightly~=2.5.0.dev (from tensorflow) (from versions: none)
ERROR: No matching distribution found for keras-nightly~=2.5.0.dev

解决:

pip install -i https://pypi.doubanio.com/simple/ tf-estimator-nightly==2.8.0.dev2021122109
pip install tensorflow-gpu==2.8.0

pip install protobuf==3.20

环境安装完成。

三、数据处理

1.准备数据集

将自己的数据放入 asserts/training_data 文件夹中 split_video_25fps 和 split_video_25fps_landmark_openface  ,自己准备的视频,25帧,csv是由openface生成的。

 2.从所有视频中提取帧并将帧保存在“./asserts/training_data/split_video_25fps_frame”中

python data_processing.py --extract_video_frame

3.从所有视频中提取音频并将音频保存在“./asserts/training_data/split_video_25fps_audio”中 

python data_processing.py --extract_audio

 4.从所有音频中提取深度语音特征并将特征保存在“./asserts/training_data/split_video_25fps_deepspeech”中

python data_processing.py --extract_deep_speech

报错: 

这是由于tensorflow版本不同,导致的问题,解决:

修改/utils/deep_speech.py文件,将deepspeed/ 删除,解决问题。

 5.从所有视频中裁剪脸部并将图像保存在“./asserts/training_data/split_video_25fps_crop_face”中

python data_processing.py --crop_face

6.生成训练 json 文件“./asserts/training_data/training_json.json” 

python data_processing.py --generate_training_json

全部生成完成。 

四、训练

python train_DINet_frame.py --augment_num=32 --mouth_region_size=64 --batch_size=24 --result_path=./asserts/training_model_weight/frame_training_64

python train_DINet_frame.py --augment_num=100 --mouth_region_size=128 --batch_size=80 --coarse2fine --coarse_model_path=./asserts/training_model_weight/frame_training_64/xxxxxx.pth --result_path=./asserts/training_model_weight/frame_training_128

python train_DINet_frame.py --augment_num=20 --mouth_region_size=256 --batch_size=12 --coarse2fine --coarse_model_path=./asserts/training_model_weight/frame_training_128/xxxxxx.pth --result_path=./asserts/training_model_weight/frame_training_256

python train_DINet_clip.py --augment_num=3 --mouth_region_size=256 --batch_size=3 --pretrained_syncnet_path=./asserts/syncnet_256mouth.pth --pretrained_frame_DINet_path=./asserts/training_model_weight/frame_training_256/xxxxx.pth --result_path=./asserts/training_model_weight/clip_training_256

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

html TAB切换按钮变色、自动生成table

<!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 1px solid #ccc; padding: 1px; marg…

【专题总结】【一文解决】多继承下的构造函数执行顺序

多继承下的构造函数执行顺序 派生类构造函数执行顺序如下 ①调用基类构造函数→调用顺序按它们被继承时【从左至右】被说明的次序 ②调用子对象的构造函数→调用顺序按它们在【类中说明次序】 ③调用派生类的构造函数 【典型题1】13浙工大卷二读程序4题 【分析】下面①classC:p…

Mybatis Mapper 代理开发

文章目录 1, 实体类2、将Mapper接口写好3、UserMapper.xml 配置文件4、mybatis-config.xml 配置文件5、编写代码 Mybatis Mapper 代理开发 总的来说&#xff0c;有这几点&#xff1a; 定义域SQL映射文件同名的Mapper接口&#xff0c;并且将Mapper接口和SQL映射文件位置在同一目…

OpenCV图像分割(2)分水岭算法图像分割函数watershed()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 使用分水岭算法执行基于标记的图像分割。 该函数实现了分水岭算法的一种变体&#xff0c;即无参数基于标记的分割算法&#xff0c;在文献 [186]…

GPG(GNU Privacy Guard)简介

GPG&#xff08;GNU Privacy Guard&#xff09;简介 加密基础 对称加密 对称加密是一种加密方式&#xff0c;其中加密和解密使用相同的密钥。常见的对称加密算法包括AES和DES。这种方法的优点是速度快&#xff0c;但缺点是密钥分发和管理比较困难&#xff0c;一旦密钥泄露&a…

网络安全-jsp绕过

一、思路(这里给出jsp的WebShell样本) 1.1 加载字节码getshell <% page import"com.sun.org.apache.bcel.internal.util.ClassLoader" %> <html> <body> <h2>BCEL字节码的JSP Webshell</h2> <%String bcelCode "$$BCEL$$$l…

零基础转行学网络安全怎么样?能找到什么样的工作?

网络安全对于现代社会来说变得越来越重要&#xff0c;但是很多人对于网络安全的知识却知之甚少。那么&#xff0c;零基础小白可以学网络安全吗&#xff1f;答案是肯定的。 零基础转行学习网络安全是完全可行的&#xff0c;但需要明确的是&#xff0c;网络安全是一个既广泛又深入…

常用的10款加密软件排行榜(2024年办公文件加密干货收藏)

随着数据泄露事件的增加和隐私安全意识的提升&#xff0c;文件加密已经成为企业和个人保护敏感信息的必备手段。无论是防止外部攻击&#xff0c;还是内部数据泄露&#xff0c;文件加密工具都是重要的防护措施。以下是2024年最常用的10款办公文件加密软件&#xff0c;帮助你在工…

全新热门电商API接口,实现闲鱼商品详细搜索功能

近年来&#xff0c;电商行业蓬勃发展&#xff0c;API&#xff08;Application Programming Interface&#xff09;接口已经成为电商平台的重要组成部分。API接口不仅可以实现平台间的数据交互&#xff0c;还可以为开发者提供丰富的功能&#xff0c;满足用户多样化的需求。在这个…

吴师兄:非科班程序员,创作出Github标星75.3K的宝藏项目,一周爆火……

这是《开发者说》的第18期&#xff0c;今天我们采访的是在Github上传LeetCode动画题解&#xff0c;获得75.3K标星宝藏项目的程序员吴师兄。 吴师兄从985大学毕业&#xff0c;从通信工程外包零基础转码程序员&#xff0c;逐渐进入一些中厂和大厂&#xff0c;工资也从三四千起步…

靶向捕获探针设计软件包

&#x1f3c6;本文收录于《全栈Bug调优(实战版)》专栏&#xff0c;主要记录项目实战过程中所遇到的Bug或前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&…

什么是容性负载箱?

容性负载箱是用于模拟电网中感性负载的装置&#xff0c;通常由电容器、电抗器等元件组成。在电力系统中&#xff0c;负载箱被广泛应用于测试和评估各种电气设备的性能&#xff0c;如变压器、发电机、开关设备等。容性负载箱的主要作用是模拟实际负载对电网的影响&#xff0c;以…

用甘特图做项目计划,你就是时间管理大师!

当我们想要清晰地展现一个活动流程或项目进展时&#xff0c;如何提升对时间和项目的管理能力呢&#xff1f;本文将为你介绍一种新颖的甘特图&#xff0c;特别适合用来进行长期工作安排。借助甘特图&#xff0c;我们可以将中长期目标切分为更易掌控的短期计划&#xff0c;让计划…

无人机之可承受风速的影响因素

无人机可承受风速的影响因素是多方面的&#xff0c;这些因素共同决定了无人机在特定风速条件下的飞行稳定性和安全性。以下是一些主要的影响因素&#xff1a; 一、无人机设计与结构 无人机的大小、形状和重量都会直接影响其抗风能力。大型无人机由于具有更大的表面积和质量&am…

Linux:进程间通信之命名管道

Linux&#xff1a;进程间通信-CSDN博客 我们说匿名管道只能用于父子进程这样的关系通信&#xff0c;那么陌生进程怎么通信&#xff1f; 我们之前说父子进程能通信的最关键的地方就在于子进程复制了一份父进程的files_struct&#xff0c;从而通过文件的inode映射同一份文件来通…

c++反汇编逆向还原指令jge jg jle jl jne je

c反汇编逆向还原jge jg jle jl jne je所还原的c代码 c反汇编逆向还原&#xff0c;if语句、赋值、算数|逻辑运算符(> 、>、、<、<、if中的&&、!、||) 在汇编指令中 jge 前面>后面 jg 前面>后面 jle 前面<后面 jl 前面<后面 jne 前面不等…

从零开始学习Python

目录 从零开始学习Python 引言 环境搭建 安装Python解释器 选择IDE 基础语法 注释 变量和数据类型 变量命名规则 数据类型 运算符 算术运算符 比较运算符 逻辑运算符 输入和输出 控制流 条件语句 循环语句 for循环 while循环 循环控制语句 函数和模块 定…

酒店智能插座有什么用途

作为提升住宿体验的关键一环&#xff0c;酒店智能插座正以其独特的功能和便捷性&#xff0c;悄然改变着旅客的居住体验。本文将深入探讨酒店智能插座的多种用途。 一、能源管理与节能减排 酒店智能插座首要的功能之一在于其强大的能源管理能力。通过内置的传感器和智能算法&…

低成本搭建企业专属云电脑 贝锐向日葵推出私有化云电脑服务

作为一种硬件虚拟化技术&#xff0c;云电脑的优势是十分显著的&#xff0c;比如可以随时随地访问&#xff0c;拥有较高的性能、无需我们购买昂贵的实体硬件、计算资源可以按需灵活拓展等等。 如今&#xff0c;越来越多的企业也开始认识到云电脑所带来的优势&#xff0c;将云电…

软考(9.22)

1 在浏览器的地址栏中输入xxxyftp.abc.can.cn&#xff0c;在该URL中( )是要访问的主机名。 A.xxxyftp B.abc C.can D.cn 协议://主机名.域名.域名后缀或IP地址(:端口号)/目录/文件名。 本题xxxyftp是主机名&#xff0c;选择A选项。 2 假设磁盘块与缓冲区大小相同&#xff0c;…