人脸高清算法GFPGAN之TensorRT推理

1. 综述

最近由于做数字人项目,采用的是wav2lip + GFPGAN进行人脸面部高清,但GFPGAN模型本身比较大,所以想着使用TensorRT来代替原始的pth推理看看能否提升运行速度,于是便开始了这趟windows10之下进行GFPGAN的trt推理的折腾之旅。

2. 环境

我会提供一个我写好GFPGAN的trt推理的完整工程包。我的环境是windows10 + cuda11.7 + cudnn 8.9.2 + TensorRT-8.5.1.7 + pycuda_cuda115 + python3.8的虚拟环境。

2.1 TensorRT的环境安装

TensorRT的环境安装参考英伟达官方TensorRT8.x下载地址

2.1.1 pip安装TensorRT文件夹中的.whl文件

进入python文件夹

python 复制代码
conda activate py38_torch # 激活你的python3.8虚拟环境
pip install tensorrt-8.5.1.7-cp38-none-win_amd64.whl

进入graphsurgeon文件夹

python 复制代码
pip install graphsurgeon-0.4.6-py2.py3-none-any

进入onnx_graphsurgeon文件夹

python 复制代码
pip install onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl -i http://pypi.douban.com/simple/  --trusted-host pypi.douban.com

进入uff文件夹

python 复制代码
pip install uff-0.6.9-py2.py3-none-any.whl

还有很重要的一步就是将TensorRT的lib所有文件复制到cuda的bin下面,如下图所示

验证

python 复制代码
import tensorrt as trt
print(trt.__version__)

2.2 pycuda安装

进入trt_inference/package下面

python 复制代码
pip install pycuda-2021.1+cuda115-cp38-cp38-win_amd64.whl

3. 模型转换

3.1 pth2onnx(将GFPGAN的v1.4的pth模型转换为trt)

进入trt_inference/model_transformer/onnx下面

python 复制代码
python gfpgan2onnx.py --src_model_path GFPGANv1.4.pth  --dst_model_path gfpganv1.4.onnx --img_size 512
pip install onnx-simplifier
python -m onnxsim gfpganv1.4.onnx gfpganv1.4_sim.onnx

所以就得到了trt_inference/model_transformer/onnx/gfpganv1.4_sim.onnx

3.2 onnx2trt(将GFPGAN的onnx转化为TensorRT的trt)

进入trt_inference/model_transformer/trt下面

python 复制代码
python gfpgan2onnx2trt.py --src_model_path ../onnx/gfpganv1.4_sim.onnx  --dst_model_path gfpganv1.4.trt

所以就得到了trt_inference/model_transformer/trt/gfpganv1.4.trt模型

4 pth和trt模型推理结果比较

进入工程文件GFPGAN-master下面

4.1 使用pytorch的pth模型去跑视频生成

修改gfpgan/utils.py下面的如图两行

然后直接在GFPGAN-master下面运行 python run.py --face_path inputs/wav2lip.mp4 --audio_path inputs/vyrxlgmx.mp3 --final_path result.mp4 --outputs_path output,则会在output下面生成result.mp4, 生成时间为: 848.8s, 总的推理时间为: 5.8s

4.2 使用TensorRT的trt模型去跑视频生成

修改gfpgan/utils.py下面的如图所示

然后直接在GFPGAN-master下面运行 python run.py --face_path inputs/wav2lip.mp4 --audio_path inputs/vyrxlgmx.mp3 --final_path result.mp4 --outputs_path output,则会在output下面生成result.mp4, 生成时间为: 909.6s, 总的推理时间为: 11.8s

完整的工程代码,请看百度网盘链接: 百度网盘,提取码: gfpg

相关推荐
牧子川6 小时前
009-Transformer-Architecture
人工智能·深度学习·transformer
covco6 小时前
矩阵管理系统指南:拆解星链引擎的架构设计与全链路落地实践
大数据·人工智能·矩阵
沪漂阿龙6 小时前
AI大模型面试题:支持向量机是什么?间隔最大化、软间隔、核函数、LinearSVC 全面拆解
人工智能·算法·支持向量机
lifewange6 小时前
AI编写测试用例工具介绍
人工智能·测试用例
陕西字符6 小时前
2026 西安 豆包获客优化技术深度解析:企来客科技 AI 全域获客系统测评
大数据·人工智能
掘金安东尼6 小时前
GGUF、GPTQ、AWQ、EXL2、MLX、VMLX...运行大模型,为什么会有这么多格式?
人工智能
新知图书6 小时前
市场分析报告自动化生成(使用千问)
人工智能·ai助手·千问·高效办公
无心水6 小时前
【Hermes:安全、权限与生产环境】38、Hermes Agent 安全四层纵深:最小权限原则从理论到落地的完全指南
人工智能·安全·mcp协议·openclaw·养龙虾·hermes·honcho
旦莫7 小时前
AI驱动的纯视觉自动化测试:知识库里应该积累什么知识内容
人工智能·python·测试开发·pytest·ai测试
dfsj660117 小时前
第四章:深度学习革命
人工智能·深度学习