手把手教你在Ubuntu22上安装VideoRetalking

VideoReTalking是一种新系统,可以根据输入音频编辑真实世界的谈话头部视频的面孔,即使具有不同的情感,也能生成高质量和口型同步的输出视频。我们的系统将这个目标分解为三个连续的任务:

(1)具有规范表情的面部视频生成。
(2)音频驱动的口型同步。
(3)面部增强以提高照片真实感。

给定一个会说话的视频,他可以使用表达式编辑网络,根据相同的表达式模板修改每一帧的表情,从而生成一个带有规范表达式的视频。然后,该视频与给定的音频一起被馈送到口型同步网络以生成口型同步视频。最后通过身份感知人脸增强网络和后处理来提高合成人脸的照片真实感。

一:安装Ubuntu22的服务器版本

1、安装编译环境

Ubuntu22安装后,打开ssh服务,并配置好一个终端。

#安装gcc和g++
sudo apt update
sudo apt install gcc g++

#查看版本
gcc --version
g++ --version

2、禁用Nouveau

#首先,编辑黑名单配置。

vim /etc/modprobe.d/blacklist.conf

#在文件的最后添加下面两行。

blacklist nouveau
options nouveau modeset=0

#然后,输入下面的命令更新并重启。

update-initramfs -u
reboot

3、安装Nvidia计算卡,本例中我使用了P40 24G计算卡,就以此为例进行配置

#重启后输入下面的命令验证是否禁用成功,成功的话这行命令不会有输出。

lsmod | grep nouveau

#安装Nvidia驱动,首先使用apt卸载已有的ubuntu自带的Nvidia驱动,命令如下。

apt-get purge nvidia*

#上传驱动文件至服务器,进入驱动所在路径,赋予执行权限,并执行安装命令
chmod +x NVIDIA-Linux-x86_64-535.86.05.run

#运行驱动程序软件
./NVIDIA-Linux-x86_64-535.86.05.run

安装后可以执行nvidia-smi来验证是否安装成功如下图:

4、安装Nvidia cuda

根据上图的提示,cuda最大可以支持12.1,我们就安装cuda12.1版本

#安装相关依赖
apt-get install zlib1g

#下载cuda12.1

wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run

#付给文件执行权限
chmod +x cuda_12.1.0_530.30.02_linux.run

#执行安装
sudo sh cuda_12.1.0_530.30.02_linux.run

配置启动环境

#直接将文件写在.bashrc里面

PATH=$PATH:/usr/local/cuda/bin  
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64  
LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64

#使生效,也可以重启服务器。
source ~/.bashrc

验证cuda是否安装成功

5、安装cuDNN

下载地址:
https://developer.nvidia.com/rdp/cudnn-archive

文件是2023年8月发布的,文件名:cudnn-linux-x86_64-8.9.4.25_cuda12-archive.tar.xz

#解压缩
xz -d cudnn-linux-x86_64-8.9.4.25_cuda12-archive.tar.xz
tar -xvf cudnn-linux-x86_64-8.9.4.25_cuda12-archive.tar

#考贝相关文件夹到相关目录:
cp /root/cudnn-linux-x86_64-8.9.4.25_cuda12-archive/include/cudnn.* /usr/local/cuda/include/
cp /root/cudnn-linux-x86_64-8.9.4.25_cuda12-archive/lib/* /usr/local/cuda/lib64

#给相关目录付权限
chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

6、安装anaconda,并设备国内源

#设置清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

#将anaconda文件上传至服务器,例如我使用的是这个版本:Anaconda3-2023.09-0-Linux-x86_64.sh
chmod +x Anaconda3-2023.09-0-Linux-x86_64.sh

#安装anaconda
bash Anaconda3-2023.09-0-Linux-x86_64.sh

二:环境准备

#克隆项目软件
git clone https://github.com/vinthony/video-retalking.git
cd video-retalking
conda create -n video_retalking python=3.10
conda activate video_retalking

#安装pytorch支持的CUDA 12.1
pip3 install torch torchvision torchaudio

接下来安装相关依赖

安装之前我们先修改一下requirements.txt文件的依赖版本:

basicsr==1.4.2
kornia==0.5.1
face-alignment==1.3.4
ninja==1.10.2.3
einops==0.4.1
facexlib==0.2.5
librosa==0.9.2
dlib==19.24.0
gradio>=3.7.0
numpy==1.23.1
opencv-contrib-python
opencv-python
scikit-image

修改后保存,开始执行安装。

conda install ffmpeg

pip install -r requirements.txt

假如报如下错误

ERROR: No matching distribution found for tb-nightly

pip install -i https://mirrors.aliyun.com/pypi/simple/ tb-nightly

然后再执行requirements.txt

pip install - r requirements.txt

直到不报错为止。

三:下载相关模型

1、下载预训练模型
https://drive.google.com/drive/folders/18rhjMpxK8LVVxf7PI6XwOidt8Vouv_H0?usp=share_link

无法下载,找国内的镜像站下载,或github发行版下载训练好的模型。
https://github.com/OpenTalker/video-retalking/releases/tag/v0.0.1

把这些文件下载下来,放到一个文件夹,起名叫:checkpoints。

注意:BFM.zip要解压出来。

2、把weights权重文件考到下面目录(两个文件),这两个文件也可以不用下面的方法,运行时会自动下载,但下载的速度太慢了,所以这里直接拷贝了。
/root/anaconda3/envs/video_retalking/lib/python3.10/site-packages/facexlib/weights/

需要考贝checkpoint文件(两个文件)至
/root/.cache/torch/hub/checkpoints/

3、在项目目录新建一个“temp”文件夹,在temp文件夹中分别新建一个“video”文件夹和“audio”文件夹,分别用来存放用来对嘴型的视频文件和音频文件的临时文件。

# mkdir temp
# cd temp
# mkdir video
# mkdir audio

4、配置网页版

修改webUI.py,其中IP地址是你的服务真实地址,你要根据实际情况来写。

vim webUI.py
#修改最后一句:
demo.queue().launch(server_name='192.168.29.197', server_port=7860, share=True, inbrowser=True)

运行网页版:

python webUI.py

然后打开浏览器

http://192.168.29.197:7860

5、命令行方式

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

以上文件均为项目本身自带的测试视频和音频。

四:报错处理

报错1:ModuleNotFoundError: No module named 'cv2'

pip install opencv-python opencv-contrib-python

报错2:ERROR: CMake must be installed to build dlib

#缺少cmake编译器,执行安装cmake
conda install CMake

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

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

相关文章

【UEFI基础】EDK网络框架(UNDI)

UNDI UNDI代码综述 UNDI全称Universal Network Driver Interface,它虽然属于UEFI网络框架的一部分,但是并没有在EDK开源代码中实现。不过目前主流网卡厂商都会提供UEFI下的网络驱动,并且大部分都实现了UNDI,这样BIOS下就可以通过…

Lazada商品详情API(lazada.item_get)参数详解:如何传递正确的参数

一、引言 随着电子商务的快速发展,获取商品详情成为了电商应用程序中的一项重要功能。Lazada作为东南亚地区知名的电商平台,提供了Lazada商品详情API(lazada.item_get)以方便开发者获取商品详情。本文将详细介绍如何使用Lazada商…

交换机03_基本配置

一、思科设备的命令行基础 1、进入设备的命令行界面 设备支持命令行 去查看设备上的接口,是否有console口需要有console线 右击此电脑设备管理器需要通过超级终端软件进行连接,如putt、secret CRT、xshell等软件 (1)思科模拟器…

【LeetCode:34. 在排序数组中查找元素的第一个和最后一个位置 | 二分】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

深入探讨关于Redis的底层

1.1为什么Redis存储比关系型数据库快: 数据存储在内存中(比如企业项目中用户表中有一个亿的用户,如果再来注册一个用户,或者登录,必须先判断是否有这个数据,这个时候如果直接查询数据库的话,对服…

指增的超额来自于哪里,2024的乾坤九法,美股的宏观估值双杀

图片截止到:2024/1/4 上证 周四 -0.43% 市场热点分析 1. 2024元旦后国内外市场都出现了不同程度的下跌。技术面国内市场一直走在72日均线之下,而且没有形成底部,熊市还会延续。宏观方面,12月官方PMI持续向下,小企业更多…

SSL/TLS 握手过程详解

SSL握手过程详解 1、SSL/TLS 历史发展2、SSL/TLS握手过程概览2.1、协商交换密码套件和参数2.2、验证一方或双方的身份2.3、创建/交换对称会话密钥 3、TLS 1.2 握手过程详解4、TLS 1.3 握手过程详解5、The TLS 1.2 handshake – Diffie-Hellman Edition 1、SSL/TLS 历史发展 可…

QML 项目中使用 Qt Design Studio 生成的UI界面

作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 今天来和大家聊一下 Qt Design Studio 这个软件。这个软件的主要功能是用来快速完成 UI 界面,就和 widget 中的 desig…

(湖科大教书匠)计算机网络微课堂(下)

第四章、网络层 网络层概述 网络层主要任务是实习网络互连,进而实现数据包在各网络之间的传输 因特网使用TCP/IP协议栈 由于TCP/IP协议栈的网络层使用网际协议IP,是整个协议栈的核心协议,因此TCP/IP协议栈的网络层常称为网际层 网络层提供…

1.3 金融数据可视化

跳转到根目录:知行合一:投资篇 已完成: 1.1 编程基础   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas 1.2 金融数据处理 1.3 金融数据可视化 文章目录 1. 金融数据可视化1.1. matplotlib1.1.1. 沪深300走势图1.1.2. 日线均线…

D50|单调栈

739.每日温度 初始思路&#xff1a; 暴力解法但是会超时。 class Solution {public int[] dailyTemperatures(int[] temperatures) {int[] answer new int[temperatures.length];for(int i 0;i<temperatures.length;i){for(int j i;j<temperatures.length;j){if(te…

C# 2中的一些小特性

一、局部类型 在C#当中有这样一个关键字partial 用来声明类&#xff0c;结构&#xff0c;接口分为多个部分来声明。使用场景可以一部分类中写实例方法&#xff0c;一部分写属性&#xff0c;我在实际工作测试中就是将属性与实际方法是分开的。相互之间的成员互相通用。 举个例子…

C# 反射的终点:Type,MethodInfo,PropertyInfo,ParameterInfo,Summry

文章目录 前言反射是什么&#xff1f;常用类型操作SummryPropertyInfoMethodInfo无参函数运行 有参函数运行,获取paramterInfo 总结 前言 我之前写了一篇Attribute特性的介绍&#xff0c;成功拿到了Attribute的属性&#xff0c;但是如果把Attribute玩的溜&#xff0c;那就要彻…

关键字:instanceof关键字

在 Java 中&#xff0c;instanceof关键字用于检查一个对象是否是某个特定类或其子类的实例。它的语法如下&#xff1a; 其中&#xff0c;Object是要检查的对象&#xff0c;Class是要检查的类或接口。 instanceof关键字的返回值是一个布尔值&#xff0c;如果对象Object是类Cla…

基于Spring Boot的美妆分享系统:打造个性化推荐、互动社区与智能决策

基于Spring Boot的美妆分享系统&#xff1a;打造个性化推荐、互动社区与智能决策 1. 项目介绍2. 管理员功能2.1 美妆管理2.2 页面管理2.3 链接管理2.4 评论管理2.5 用户管理2.6 公告管理 3. 用户功能3.1 登录注册3.2 分享商品3.3 问答3.4 我的分享3.5 我的收藏夹 4. 创新点4.1 …

【UWB定位源码】工厂企业人员定位系统源码,实现安全区域管控、人员在岗监控、车辆实时轨迹监控

UWB高精度定位系统源码&#xff0c;企业工厂人员定位系统源码 概念&#xff1a; UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术&#xff0c;它不采用正弦载波&#xff0c;而是利用纳秒级的非正弦波窄脉冲传输数据&#xff0c;因此其所占的频谱范围很宽。 UWB的主要特…

2023-RunwayML-Gen-2 AI视频生成功能发展历程

RunwayML是一个人工智能工具&#xff0c;它为设计师、艺术家和创意人士提供了一种简单的方式来探索和应用机器学习技术。 RunwayML官方网页地址&#xff1a;Runway - Advancing creativity with artificial intelligence. RunwayML专区RunwayML-喜好儿aigcRunwayML 是一种先进…

Java ArrayList 面试题

Java ArrayList 面试题 文章目录 Java ArrayList 面试题ArrayList源码分析成员变量构造方法ArrayList源码分析面试题-ArrayList listnew ArrayList(10)中的list扩容几次面试题-如何实现数组和List之间的转换 ArrayList源码分析 分析ArrayList源码主要从三个方面去翻阅&#xf…

MySQL数据库索引优化实战

目录 一、前言 二、准备工作 2.1 用户表&#xff08;TB_USER) 2.2 商品表&#xff08;TB_SKU) 2.3 订单表&#xff08;TB_ORDER&#xff09; 三、实例分析 3.1 索引提升查询性能 3.2 多表查询 3.3 索引失效 四、总结 一、前言 在数据库的应用中&#xff0c;性能优化…

SpringBoot从配置文件中获取属性的方法

方式一&#xff1a;Value 基本类型属性注入&#xff0c;直接在字段上添加Value("\${xxx.xxx}")即可&#xff0e;注意这里用的是$&#xff0c;而不是&#xff03;&#xff0c;Value注入的属性&#xff0c;一般其他属性没有关联关系。 配置文件 user:name: Manaphya…