Real3DPortrait照片对口型,数字人,音频/视频驱动数字人

先看效果

上传一张图片和一段音频,照片如下:
在这里插入图片描述
合成后效果如下:

照片对口型-音频驱动

支持音频驱动和视频驱动,视频可以使照片有参照视频中的口型和和动作。

项目地址

https://github.com/yerfor/Real3DPortrait

我的环境

win10,python3.10.8,cuda11.7

环境部署

安装步骤:https://github.com/yerfor/Real3DPortrait/blob/main/docs/prepare_env/install_guide.md
windows下torch torchvision torchaudio的安装参照https://pytorch.org/get-started/locally/,选择对应的平台、cuda版本后复制安装命令:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu…
visualstudio安装:https://visualstudio.microsoft.com/zh-hans/downloads/
cuda安装:https://developer.nvidia.com/cuda-toolkit-archive,之前安装其他版本CUDA的不用卸载,可以同时安装两个,在环境变量中设置CUDA_HOME就行。
在这里插入图片描述

安装中遇到的问题

  • 安装Pytorch3D报错:
    3 errors detected in the compilation of “C:/Users/Administrator/AppData/Local/Temp/pip-reg-bui1d-0hwl1r79/pytorch3d/csrc/pulsar
    cuda/renderer.backward. gpu. cu”.
    在这里插入图片描述
    解决方案:参考链接 https://github.com/facebookresearch/pytorch3d/issues/1227
    省流:据说是CUDA中的CUB版本不行(1.15),要手动重新下载1.17版本,在https://github.com/NVIDIA/cub/releases下载cub1.17版本,替换cuda下的cub(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\include\cub)
    然而替换以后我这里换了一个错(C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/include\thrust/system/cuda/config.h(79): fatal error C1189: #error: Tle version of CUB in your include path is not compatible with this release of Thrust. CUB is now included in the CuA Toolkit, so you no longer need to use your own checkout of CUB. Define THRUST IGNORE CUB VERSION CHECK to ignore this. error:command ’C:\Program Files!\NVIDIA GPU Computing Toolkit\CUDAl\v11. 7\bin\nvcc.exe’ failed with exit code 2):
    在这里插入图片描述
    是说CUB版本和CUDA版本不匹配,在CUDA11.7/include/cub文件夹下,打开 version.cuh, 在“#pragma once”下面一行添加:#define THRUST_IGNORE_CUB_VERSION_CHECK,取消版本号检查。
  • 安装python依赖包报错(cmake问题):
    ERROR: CMake must be installed to build dlib
    在这里插入图片描述
    解决方案:安装cmake:https://cmake.org/files/,我装了3.27版本(下载x86_64.msi)。
  • 运行报错(pyplot问题)
    AttributeError: module ‘backend_interagg’ has no attribute ‘FigureCanvas’. Did you mean: ‘FigureCanvasAgg’?
    在这里插入图片描述

解决方案:参考https://blog.csdn.net/lsb2002/article/details/135149302
省流:方案1:在pycharm的setting–>Tools–>Python Scientific中去掉“show plots in tool window”的勾选。(或者直接cmd运行就没问题)
在这里插入图片描述
方案2:matplotlib切换图形界面显示终端TkAgg,在使用matplotlib的python文件中增加两行代码,如下所示:

import matplotlib
matplotlib.use('TkAgg')

方案3:降低matplotlib版本,pip install matplotlib==3.5.0

  • 运行报错 无法打开文件“python310.lib”
    LINK:fatal error LNK1104:无法打开文件“python310.lib”
    在这里插入图片描述
    解决方案:参照https://blog.csdn.net/dalaomanzou/article/details/133851299
    省流:python安装目录下的Python310\libs\python310.lib文件复制到虚拟环境的/venv/Scripts/libs下,没有libs文件夹就手动创建
  • 运行报错:
    ImportError: DLL load failed while importing bias_act_plugin: 找不到指定的模块
    在这里插入图片描述
    解决方案:可以先看一下https://github.com/NVlabs/stylegan3/issues/88,首先确定cuda版本,我之前装的是12.1好像不行(不确定,因为我没有按照如下方式添加环境变量,等我重新下载好11.7版本后这个问题还是在,然后找到了下面的解决方案),又重新装了个11.7,然后
    设置环境变量CUDA_HOME=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7
  • error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor’
    代码里面 cv2.cvtColor(img, cv2.COLOR_RGB2BGR)中的img参数的值为空了,原因是代码中涉及复制图片的命令在windows下是错误的,inference/real3d_infer.py中的crop_img_on_face_area_percent函数,out_name是路径要改为windows下路径格式:out_name = os.path.normpath(out_name),然后“cmd = f"cp {img_name} {out_name}"”中的cp命令要改为copy(同样代码中有“rm”命令也要改)。
 def crop_img_on_face_area_percent(img_name, out_name='temp/cropped_src_img.png', min_face_area_percent=0.2):
    out_name = os.path.normpath(out_name)
    try:
        os.makedirs(os.path.dirname(out_name), exist_ok=True)
    except: pass
    face_area_percent = cal_face_area_percent(img_name)
    if face_area_percent >= min_face_area_percent:
        print(f"face area percent {face_area_percent} larger than threshold {min_face_area_percent}, directly use the input image...")
        cmd = f"copy {img_name} {out_name}"
        os.system(cmd)
        return out_name

可能遇到的其他问题

我之前的CUDA版本是12.1,安装过程中各种出错,后来重新下载了11.7版本,删掉虚拟环境,从头开始。CUDA12.1版本遇到的问题如下

  • from pytorch3d import _C报错,no module named _C
    没找到解决方案,11.7版本下没这个错了

  • 阿萨德
    Could not find MSVC/GCC/CLANG installation on this computer.
    解决方案:安装visualstudiohttps://visualstudio.microsoft.com/zh-hans/downloads/
    将custom_ops.py中patterns的C++编译环境换成自己的。(可参考:https://blog.csdn.net/liuzi_hang/article/details/128063113)
    在这里插入图片描述

  • ‘parselmouth’ has no attribute ‘Sound’
    好像是python包版本问题,途中更改其他版本没问题了,但是忘记哪个版本了。后来cuda切换到11.7重新安装所有依赖后没这个问题了。

  • multiple exception types must be parenthesized
    也是python包版本问题。同上。

  • python3 cannot import name ‘quote’ from ‘urllib’
    出现这个错误的原因是因为Python 3中的urllib模块被分为了几个子模块,包括urllib.request、urllib.parse、urllib.error、urllib.robotparser等。在Python 2中,所有这些子模块都包含在urllib中,但在Python 3中,它们被分离出来,以提高代码的可读性和可维护性。要解决这个问题,需要从urllib.parse模块中导入quote函数。同样是因为版本问题,切换cuda版本后未遇到该问题。

  • cannot import name “Mapping“ from “collection
    3.10版本后对requests库有进行调整,collections中不能直接调用Mapping、MutableMapping
    打开python解释器下的lib里的collections文件夹下的init文件,collections/init.py,调用方式改为:
    from collections.abc import Mapping
    from collections.abc import MutableMapping
    同样是因为版本问题,切换cuda版本后未遇到该问题。

  • error in googleads setup command: use_2to3 is invalid
    因为在setuptools 58之后的版本已经废弃了use_2to3,所以将setuptools回退到58以前的版本:pip install setuptools==57.5.0
    切换cuda版本后未遇到该问题。

下载模型

https://github.com/yerfor/Real3DPortrait/blob/main/README-zh.md
下载预训练与第三方模型
3DMM BFM模型
下载3DMM BFM模型:BaiduYun Disk 提取码: m9q5
下载完成后,放置全部的文件到deep_3drecon/BFM里,文件结构如下:
deep_3drecon/BFM/
├── 01_MorphableModel.mat
├── BFM_exp_idx.mat
├── BFM_front_idx.mat
├── BFM_model_front.mat
├── Exp_Pca.bin
├── facemodel_info.mat
├── index_mp468_from_mesh35709.npy
├── mediapipe_in_bfm53201.npy
└── std_exp.txt

下载预训练模型
下载预训练的Real3D-Portrait:BaiduYun Disk 提取码: 6x4f
下载完成后,放置全部的文件到checkpoints里并解压,文件结构如下:
checkpoints/
├── 240210_real3dportrait_orig
│ ├── audio2secc_vae
│ │ ├── config.yaml
│ │ └── model_ckpt_steps_400000.ckpt
│ └── secc2plane_torso_orig
│ ├── config.yaml
│ └── model_ckpt_steps_100000.ckpt
└── pretrained_ckpts
└── mit_b0.pth

启动

python inference/app_real3dportrait.py

界面

左侧四个输入从上到下依次是:待转换图片,待转换音频,参考视频(图片将按照该视频语音、动作生成视频),背景图片。
中间参数:
blink mode:是否阶段性眨眼
min_face_area_percent:设置输出的视频帧最小脸部区域占比
temperature:代表audio2motion的采样温度,值越大结果越多样,但同时精确度越低
mouth amplitude:嘴部张幅参数,值越大张幅越大
output layout:选择最终输出的视频是否包含debug信息
Whether to map pose of first frame to initial pose:首帧的pose将被映射到source pose,后续帧也作相同变换
点击“generate”按钮生成视频

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

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

相关文章

CentOS-Stream-9升级openssh9.7p

CentOS Stream 9 ssh -V需要的RPM包 openssh-9.7p1-1.el9.x86_64.rpm openssh-clients-9.7p1-1.el9.x86_64.rpm openssh-server-9.7p1-1.el9.x86_64.rpm 编译openssh openssh官方只提供源码包,我们选择自己将源码编译为rpm包来升级环境的openssh,需要…

UE5 C++ 使用TimeLine时间轴实现开关门

一.添加门头文件 和 声明 #include "Components/TimelineComponent.h" #include"Components/BoxComponent.h" UPROPERTY(EditAnywhere,BlueprintReadWrite,Category "MyCurve")UCurveFloat* MyCurveFloat;UPROPERTY(EditAnywhere, BlueprintR…

前端网络---http缓存

什么是http缓存? 1、HTTP 缓存会存储与请求关联的响应,并将存储的响应复用于后续请求。 2、缓存的原理是在首次请求后保存一份请求资源的响应副本,当用户再次发起相同请求时,判断缓存是否命中,如果命中则将前面的响应…

如何保障UDP传输中数据文件不丢失?

UDP协议因其低时延和高速传输的特性,在实时应用和大量数据传输领域中发挥着不可或缺的作用。但是,由于UDP是一种无连接的通讯协议,它并不确保数据包的顺序、完整性和可靠性。 为了解决UDP传输中数据一致性的问题,技术专家们进行了…

HTML不常用的文本标签

1.标签如下&#xff1a; 代码及相关内容 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>不常用的文…

2024第二十一届五一数学建模C题思路 五一杯建模思路

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

大数据测试:构建Hadoop和Spark分布式HA运行环境

随着大数据技术的不断发展&#xff0c;Hadoop和Spark已成为处理大规模数据的热门框架。在生产环境中&#xff0c;高可用性&#xff08;HA&#xff09;是至关重要的&#xff0c;以确保数据处理和分析任务不受中断。本文将详细介绍如何构建 Hadoop和Spark分布式HA运行环境&#x…

Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机

Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机 文章目录 Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机1.安装virtualbox2.下载Window.iso文件并载入3.问题解决3.1 Kernel driver not installed (rc-1908)3.2 VT-x is disabled in the BIOS for all CPU modes 4.安装Wi…

中文编程入门(Lua5.4.6中文版)第十三章 Lua 文件操作

在《Lua世界》的冒险旅途中&#xff0c;勇士们时常需要与神秘的文本卷轴打交道。为了更好地掌握这些知识宝藏&#xff0c;Lua I/O库提供了两种强大的探索模式&#xff1a;简单模式和完全模式&#xff0c;助你轻松应对各类文献挑战。 简单模式&#xff1a;初识卷轴 简单模式如…

如何精心挑选合适的软件公司

选择一家合适的软件公司对于小程序商城的开发与运营而言&#xff0c;具有举足轻重的意义。面对市场上琳琅满目的软件公司&#xff0c;如何找到那个真正适合自己的合作伙伴呢&#xff1f;接下来&#xff0c;我们将从需求分析、公司资质、项目案例、服务态度和成本效益五个方面&a…

Linux0.11 源码中的内存分页机制

学习Linux的源码&#xff0c;《深入linux 内核架构》这本书看起来就让人害怕&#xff0c;然后就想着看看早期的linux版本的源码&#xff0c;从网上查看资料发现linux0.11 这个版本有很多人拿来当成教学版本&#xff0c;而且也有很多的参考书以这个版本作为基础来讲解&#xff0…

【数据挖掘】实验8:分类与预测建模

实验8&#xff1a;分类与预测建模 一&#xff1a;实验目的与要求 1&#xff1a;学习和掌握回归分析、决策树、人工神经网络、KNN算法、朴素贝叶斯分类等机器学习算法在R语言中的应用。 2&#xff1a;了解其他分类与预测算法函数。 3&#xff1a;学习和掌握分类与预测算法的评…

UTS iOS插件

1、UTS插件无法出现 再uniapp x中使用时&#xff0c;必须给这个插件高度和宽度&#xff0c;否则出不来&#xff01; <uts-hello-view buttonText"点击按钮内容" style"width:375px;height: 375px;background-color: aqua;"></uts-hello-view>…

关于外网java后端服务访问内网minio中间件,因连接minio超时,启动失败问题

注&#xff1a;服务器情况&#xff1a;2台服务器&#xff0c;内网服务器包含&#xff08;activemq、minio、nginx、redis、mysql、后端java服务&#xff09;。外网服务器只有后端java服务&#xff0c;访问内网的中间件&#xff08;内网服务器开放了部分指定端口&#xff09; 问…

技术速递|.NET 智能组件简介 – AI 驱动的 UI 控件

作者&#xff1a;Daniel Roth 排版&#xff1a;Alan Wang AI 的最新进展有望彻底改变我们与软件交互和使用软件的方式。然而&#xff0c;将 AI 功能集成到现有软件中可能面临一些挑战。因此&#xff0c;我们开发了新的 .NET 智能组件&#xff0c;这是一组真正有用的 AI 支持的 …

无法连接到本地主机上的MySQL服务器???

如果你在连接工具上连接mysql连接&#xff0c;如下 可能是本地数据库没有启动 使用管理员身份打开cmd窗口&#xff0c;输入net start mysql命令&#xff0c;关闭数据库输入命令net stop mysql 然后在打开连接工具连接mysql就可以了

Java之JVM、JUC面试题笔记(持续更新)

CountDownLatch和CyclicBarrier JUC 并发编程_juc并发编程-CSDN博客 java 类加载机制&#xff1f;如何实现自定义类加载器&#xff1f;findClass 与 loadClass 的区别&#xff1f; 在Java中&#xff0c;自定义类加载器通常是通过继承java.lang.ClassLoader类并重写其findClas…

《机器学习by周志华》学习笔记-线性模型-02

1、对数几率回归 1.1、背景 上一节我们考虑了线性模型的回归学习,但是想要做分类任务就需要用到上文中的广义线性模型。 当联系函数连续且充分光滑,考虑单调可微函数,令: 1.2、概念 找一个单调可谓函数,将分类任务的真实标记与线性回归模型的预测值联系起来,也叫做「…

机器学习实验二-----决策树构建

决策树是机器学习中一种基本的分类和回归算法&#xff0c;是依托于策略抉择而建立起来的树。本文学习的是决策树的分类 1. 构建决策树流程 选择算法&#xff1a;常用的算法包括ID3、C4.5、CART等。 划分节点&#xff1a;根据数据特征和算法选择&#xff0c;递归地划分节点&…

鉴源实验室丨智能网联汽车协议模糊测试技术概述

作者 | 乔琪 上海控安可信软件创新研究院工控网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 摘要&#xff1a;随着智能网联汽车的快速发展&#xff0c;其协议安全性和稳定性成为了关注焦点。智能网联汽车协议特点主要表现为…