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

GFPGAN - 腾讯开源的图形修复算法修复算法

GFPGAN是腾讯开源的人脸修复算法,它利用预先训练好的面部修复算法,并且封装了各种丰富多样的先验因素进行盲脸(blind face) 修复,可以对老照片进行很好的修复。

35800 Stars 5900 Forks 345 Issues 11 贡献者 Apache License Python 语言

代码: https://github.com/TencentARC/GFPGAN

更多AI开源软件:AI开源 - 小众AI

主要功能

  • 盲修复能力:GFPGAN不需要对特定图像有任何先验知识,可以实现真正的盲修复。它利用预训练人脸GAN(如StyleGAN2)中蕴含的丰富和多样化的先验知识,来指导人脸修复过程。这种方法可以有效修复各种退化的人脸图像,如低质量、老旧或AI生成的人脸图像。
  • 身份一致性保持:在修复过程中,GFPGAN能够保持人脸的身份一致性,使得修复后的图像与原图在人脸特征上保持一致。
  • 非人脸区域增强:除了人脸区域外,GFPGAN还支持对非人脸区域(如背景)进行增强,提升整体图像的视觉效果。
  • 低分辨率图像提升:对于低分辨率的人脸图像,GFPGAN能够将其转换为高分辨率图像,提高图像的清晰度。
  • 去噪与去模糊:针对含有噪声或模糊的人脸图像,GFPGAN可以进行有效的去噪和去模糊处理,使图像更加清晰。

安装使用

依赖
  • Python >= 3.7 (建议使用 Anaconda 或 Miniconda)
  • PyTorch >= 1.7
  • 选项:NVIDIA GPU + CUDA
  • 选项:Linux
安装

我们现在提供了一个*干净的* GFPGAN 版本,它不需要定制的 CUDA 扩展。
如果您想使用我们论文中的原始模型,请参见 PaperModel.md 进行安装。

  1. 克隆存储库

    git clone https://github.com/TencentARC/GFPGAN.git
    cd GFPGAN
    
  2. 安装依赖软件包

    # Install basicsr - https://github.com/xinntao/BasicSR
    # We use BasicSR for both training and inference
    pip install basicsr
    
    # Install facexlib - https://github.com/xinntao/facexlib
    # We use face detection and face restoration helper in the facexlib package
    pip install facexlib
    
    pip install -r requirements.txt
    python setup.py develop
    
    # If you want to enhance the background (non-face) regions with Real-ESRGAN,
    # you also need to install the realesrgan package
    pip install realesrgan
    
快速推理

我们以 v1.3 版本为例。更多型号可在此处找到。

下载预训练模型:GFPGANv1.3.pth

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

推理!

python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2
Usage: python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2 [options]...

  -h                   show this help
  -i input             Input image or folder. Default: inputs/whole_imgs
  -o output            Output folder. Default: results
  -v version           GFPGAN model version. Option: 1 | 1.2 | 1.3. Default: 1.3
  -s upscale           The final upsampling scale of the image. Default: 2
  -bg_upsampler        background upsampler. Default: realesrgan
  -bg_tile             Tile size for background sampler, 0 for no tile during testing. Default: 400
  -suffix              Suffix of the restored faces
  -only_center_face    Only restore the center face
  -aligned             Input are aligned faces
  -ext                 Image extension. Options: auto | jpg | png, auto means using the same extension as inputs. Default: auto

如果您想使用我们论文中的原始模型,请参见 PaperModel.md 进行安装和推理。

训练

我们提供了 GFPGAN 的训练代码(在我们的论文中使用)。
您可以根据自己的需要对其进行改进。

提示

  1. 更高质量的人脸可以提高修复质量。
  2. 您可能需要进行一些预处理,例如美容化妆。

步骤

(您可以尝试不需要人脸组件地标的简单版本 ( )。options/train_gfpgan_v1_simple.yml​

  1. 数据集准备:FFHQ

  2. 下载预训练模型和其他数据。将它们放入文件夹中。experiments/pretrained_models​

    1. 预训练的 StyleGAN2 模型:StyleGAN2_512_Cmul1_FFHQ_B12G4_scratch_800k.pth
    2. FFHQ 的组件位置:FFHQ_eye_mouth_landmarks_512.pth
    3. 一个简单的 ArcFace 模型:arcface_resnet18.pth
  3. 相应地修改配置文件。options/train_gfpgan_v1.yml​

  4. 训练

python -m torch.distributed.launch --nproc_per_node=4 --master_port=22021 gfpgan/train.py -opt options/train_gfpgan_v1.yml --launcher pytorch


http://www.kler.cn/a/513212.html

相关文章:

  • Vue3初学之Element Plus Dialog对话框,Message组件,MessageBox组件
  • 三格电子——MODBUS TCP 转 CANOpen 协议网关
  • GIFT ICA 下载记录
  • 在Windows/Linux/MacOS C++程序中打印崩溃调用栈和局部变量信息
  • leetcode刷题记录(七十二)——146. LRU 缓存
  • QLineEdit 在文本发生变更时触发事件几种方式详细说明
  • 网络爬虫技术如何影响网络安全的
  • .NET Framework 4.5.1 离线安装包
  • DM8 SQL 错误 [22000]: 锁超时
  • Objective-C语言的函数实现
  • 深入探究 Java 异常处理
  • 探索微服务架构:从单体应用到微服务的转变
  • Netty的handler类无法进行spring的注入service等操作,注入为null情况
  • 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1.标准版)
  • FPGA开发中的团队协作:构建高效协同的关键路径
  • WPF3-在xaml中引用其他程序集的名称空间
  • RestTemplate-调用远端接口应用场景
  • 根据经纬度查询地理位置信息API
  • React技术栈搭配(全栈)(MERN栈、PERN栈)
  • [Css]父元素监听鼠标移入子元素
  • Kotlin 2.1.0 入门教程(七)
  • 若依报错:无法访问com.ruoyi.common.annotation
  • 微信小程序使用picker根据接口给的省市区的数据实现省市区三级联动或者省市区街道等多级联动
  • 在Android Studio中如何实现综合实验MP3播放器(保姆级教程)
  • Java学习,List 元素替换
  • 服务器安装ESXI7.0系统及通过离线包方式升级到ESXI8.0