手把手教你在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.1wget 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 ffmpegpip 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

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

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

相关文章

SpringBoot实现登录拦截器

SpringBoot实现登录拦截器 对于管理系统或其他需要用户登录的系统,登录验证都是必不可少的环节,在SpringBoot开发的项目中,通过实现拦截器来实现用户登录拦截并验证。 1、SpringBoot实现登录拦截的原理 SpringBoot通过实现HandlerIntercep…

一篇文章学会如何在 NestJS 中集成 MongoDB 并实现数据的增删改查操作

前言 在现代的Web应用程序开发中,无论是在数据存储、检索、还是数据流转的各个环节,数据库都扮演着极其重要的角色。MongoDB是一个基于分布式文件存储的开源数据库系统,以其高性能、高可用性和易扩展性著称。 作为JavaScript社区最受欢迎的…

java正则表达式大全(参考)

一、校验数字的表达式 1 数字:1$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9])$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9])(.[0-…

普中STM32-PZ6806L开发板(HAL库函数实现-访问多个温度传感器DS18B20)

简介 我们知道多个DS18B20的DQ线是可以被挂在一起的, 也就是一根线上可以访问不同的DS18B20而不会造成数据错乱, 怎么做到的,其实数据手册都有说到, 就是靠64-bit ROM code 进行识别, 也可以理解成Serial Number进行识别, 因为主要差异还是在Serial Numb…

本地git服务器的使用

最后总结一句,用gitlab最省事,管理权限最方便,别像下文一样整了。 Windows上使用: 首先要在windows开发机上生成密钥: 1.安装git,首先去git官网下载git,https://git-scm.com/downloads&#xff…

初学者SkyWalking详细使用文档

SkyWalking使用文档 下载地址:https://skywalking.apache.org/downloads/ 主要下载:skywalking apm(tar) 、agents(tar) 解压: (可选操作): ​ apache-skywalking-apm-bin --&g…

chromium在中文用户名下无法编译的问题

新电脑没有太注意,起用户名的时候用了中文。 在编译chromium104的代码时,因为环境变量有中文导致编译失败: 因为我的电脑默认是使用gbk编码,而不是utf-8编码。 这个问题有三种解决办法: (一)把…

并发编程:线程同步基础:3.2、使用两个线程模拟生产者和消费者执行任务。

目录 主要方法 1、主程序 2、生产者 3、消费者 4、中间队列(主要代码) 5、执行结果 主要方法 wait(); 线程等待notify(); 通知一个等待的线程notifyAll(); 通知所有等待的线程 1、主程序 package xyz.jangle.thread.test.n2_3.synccondition; /…

MySQL——事物

目录 一.发现问题 二.什么时事物 三.事务提交方式 四.事物的常规操作方式 五. 事务隔离级别 1.如何理解隔离性 2.隔离级别 3.查看与设置隔离性 4.读未提交【Read Uncommitted】 5.读提交【Read Committed】 6.可重复读【Repeatable Read】 7.串行化【serializabl…

云卷云舒:大型电信运营商应用软件健康度评估方法

大型电信运营商内均会自建云资源池,并基于云资源池构建自己上层应用软件资源,但是各类上层应用软件的故障频发也给运维工作带来了较大的压力,电信运营商急需一种较完善的方法实现对于应用软件的健康度评测,以进一步指导运维完成应…

14、应用层优化

常见问题 什么东西在消耗系统中每台主机的CPU、磁盘、网络,以及内存资源应用真的需要所有获取到的数据吗应用在处理本应由数据库处理的事情吗应用执行了太多的查询吗应用执行的查询太少吗应用创建了没必要的Mysql连接吗应用对一个Mysql实例创建连接的次数太多了吗应…

unity C# 中一看就会的try-catch-finally、throw

文章目录 1、C# 异常处理原理:2、C# 异常处理实用案例(简化版示例):3、throw关键字 C# 异常处理是一种用于捕获和处理程序运行时错误的机制,它允许程序在遇到不可预见或非正常条件时进行优雅地恢复或失败。C# 中的异常…

MySQL模糊查询详解

MySQL模糊查询详解 一、什么是模糊查询二、MySQL中的模糊查询2.1 使用LIKE关键字2.2 使用正则表达式(REGEXP)2.3 使用BETWEEN AND2.4 使用IN操作符2.5 使用IS NULL操作符 💖The Begin💖点点关注,收藏不迷路&#x1f49…

Rust 圣经 阅读 字符、布尔、单元类型

字符类型(char) Rust 的字符不仅仅是 ASCII ,还包含所有的 Unicode 值,包括单个的中文、日文、表情符号等等。 Unicode 值的范围从 U0000 ~ UD7FF 和 UE000 ~ U10FFFF。 因为每个 Unicode 都是 4 个字节编码,所以字符…

【小白专用】c#之FileStream对象读写大文件

提及文件流,不得不先说以下几个类 FileStream,MemoryStream,NetWorkStream,StreamReader,StreamWriter,TextReader,TextWriter 在用这些类之前,我们先来了解一下这些类的用途以及区别…

知虾皮Shopee:东南亚最受欢迎的电子商务平台

在如今数字化时代,电子商务平台成为人们购物的首选方式。Shopee作为东南亚地区最受欢迎的电子商务平台,通过其多样化的商品、便捷的购物体验和创新的商业模式,迅速在该地区占据了重要地位。本文将详细介绍Shopee的特点和优势,以及…

设计模式 七大原则

1.单一职责原则 单一职责原则(SRP:Single responsibility principle)又称单一功能原则 核心:解耦和增强内聚性(高内聚,低耦合)。 描述: 类被修改的几率很大,因此应该专注…

CNN——VGG

1.VGG简介 论文下载地址:https://arxiv.org/pdf/1409.1556.pdf VGGNet 是由牛津大学视觉几何小组(Visual Geometry Group, VGG)提出的一种深层卷积网络结构,他们以 7.32% 的错误率赢得了 2014 年 ILSVRC 分类任务的亚军&#xff…

Prometheus 监控docker

查看docker运行状态 docker stats 启动docker cadvisor 直接运行docker docker run -d \--volume/:/rootfs:ro \--volume/var/run:/var/run:rw \--volume/sys:/sys:ro \--volume/var/lib/docker/:/var/lib/docker:ro \--publish8080:8080 \--namecadvisor \gcr.io/cadvisor…

2024年MySQL学习指南(二),探索MySQL数据库,掌握未来数据管理趋势

文章目录 前言4. DDL- 操作数据库4.1 查询4.2 创建数据库4.3 删除数据库4.4 使用数据库 5. DDL- 操作数据表5.1 数据类型5.2 查询表5.3 创建表5.4 删除表5.5 修改表 6. 实战案例详解 前言 接上一篇文章【2024年MySQL学习指南(一)】 4. DDL- 操作数据库 …