当前位置: 首页 > news >正文

Windows 环境实战开源项目GFPGAN 教程

GFPGAN

GFPGAN(Generative Facial Prior-GAN)是由腾讯ARC(Applied Research Center)开发的一种实用的真实世界人脸修复算法。它专门设计用于人脸图像的生成和优化,尤其在低质量人脸图像的超分辨率恢复方面表现出色。以下是GFPGAN的一些主要特点和功能:

  1. 高分辨率生成:GFPGAN能够生成高分辨率的人脸图像,在生成过程中能够保持细节和真实感。

  2. 人脸美化:GFPGAN可以对输入的人脸图像进行美化和优化,去除皱纹、瑕疵,增强肤色等。

  3. 多样性控制:用户可以通过调整参数来控制生成图像的风格和特征,例如改变年龄、性别、肤色等。

  4. 利用预训练人脸GAN的先验知识:GFPGAN利用预训练人脸GAN(如StyleGAN2)中蕴含的丰富和多样化的先验知识来指导人脸修复过程。

  5. 盲修复:GFPGAN不需要对输入图像有任何先验假设,可以实现真正的盲修复。

  6. 生成结果自然,身份一致性好:GFPGAN生成的结果更加自然,身份一致性好。

  7. 处理非常低质量的输入图像:GFPGAN可以处理非常低质量的输入图像。

  8. 支持对非人脸区域(背景)进行增强:GFPGAN还支持对非人脸区域(背景)进行增强。

  9. 易于部署:提供了无需CUDA扩展的“干净”版本,易于部署。

GFPGAN通过结合生成对抗网络(GAN)和门控频率先验技术,巧妙地结合了高频细节恢复与低频结构保持,旨在精确恢复图像的细节,同时保持人像的整体结构,从而实现更加自然、真实的结果。它的工作原理主要包括输入一张需要修复的人脸图像,利用预训练的人脸GAN提取丰富的人脸先验知识,设计一个GAN网络,生成器负责修复图像,判别器负责区分真实和生成的图像,在训练过程中,生成器学习如何利用人脸先验知识来修复输入图像。

过程

  1. 源码下载:https://github.com/TencentARC/GFPGAN

  2. 安装basicsr:pip install basicsr
    在这里插入图片描述

  3. 安装facexlib:pip install facexlib
    在这里插入图片描述

  4. 下载预训练模型:也可以直接下载放到本地项目对应位置

wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth -P experiments/pretrained_models

在这里插入图片描述
5. 直接推理: python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2;报错如下;;

  • 根据报错查了下原因,因为这个问题通常是由于在 PyTorch 2.0 以上的版本中,torchvision.transforms.functional_tensor 模块的命名发生了变化。在新版本中,该模块名前增加了一个下划线,正确的模块名应该是 torchvision.transforms._functional_tensor。因此,修改上面👆下载的basicsr源码中degradations.py文件中的导入库functional_tensor改成_functional_tensor 。 【所以最好还是重新配置一个纯净的pytorch虚拟环境最省事😄,别依赖已有的pytorch环境~~】
    在这里插入图片描述
  1. 继续推理: python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2
    在这里插入图片描述

  2. 下载下来的模型权重:detection_Resnet50_Final.pth、parsing_parsenet.pth
    在这里插入图片描述

  3. 结果:cmp、cropped_faces、restored_faces、restored_imgs四个文件夹
    在这里插入图片描述

  4. cmp文件夹:测试图像的人脸修复前后对比图,效果还是非常不错的。

  5. cropped_faces 文件夹:从测试图像集中裁剪出人脸部分原图
    在这里插入图片描述

  6. restored_faces 文件夹:存储修复增强后人脸图像
    在这里插入图片描述

  7. restored_imgs 文件夹:存储人脸修复增强后的完整图片。
    在这里插入图片描述

  8. 修复前后完整图片对比:修复增强后 🆚修复增强后
    在这里插入图片描述
    在这里插入图片描述

后续

  • 后续有时间根据源码训练自己的模型。
http://www.lryc.cn/news/504934.html

相关文章:

  • UE5 做简单的风景观光视频
  • k8s服务搭建与实战案例
  • JavaScript学习难点
  • Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 预览
  • 解决创建laravel项目,使用国外镜像超时,国内镜像缺包的问题
  • Java泛型设计详解
  • 用ue5打开网址链接
  • 【大数据】-- 读放大和写放大
  • 【前端】JavaScript 抽取字符串特定部分题目详解与实现思路
  • CNCF云原生生态版图-分类指南(一)- 观测和分析
  • 热更新解决方案3 —— xLua
  • 如何让ai在游戏中更像一个人?
  • websocket_asyncio
  • 如何在NGINX中实现基于IP的访问控制(IP黑白名单)?
  • Y3编辑器文档4:触发器1(界面及使用简介、变量作用域、入门案例)
  • echarts图表自定义配置(二)——代码封装
  • 02、10个富士胶片模拟的设置
  • 鸿蒙系统-前端0帧起手
  • 211-基于FMC的1路1.5G ADC 1路 2.5G DAC子卡
  • 获取微信用户openid
  • MultiRECloudSim使用
  • 智能设备安全-固件逆向分析
  • 【小白包会的】使用supervisor 管理docker内多进程
  • 使用navicat新旧版本,连接PostgreSQL高版本报错问题图文解决办法
  • IDEA 未启用lombok插件的Bug
  • 认识GO--gRPC的metadata
  • 2024年安徽省职业院校技能大赛信息安全管理与评估
  • Perl 引用
  • RT-Thread启动过程 :从汇编开始的启动流程
  • Scala—“==“和“equals“用法(附与Java对比)