标签归档:gan

神器!Python 老旧照片的面部恢复模块—GFPGAN

老照片作为时光记忆的载体,不只是过去美好时光的传承者,同时也是每个人的情结和怀念的寄托。

随着时间的流逝,许多老照片都因为自然或人为原因,受到了侵蚀损坏,画面模糊、褪色、照片磨损严重等现象,甚至还有的因为保管不好导致照片面目全非。

今天的这个Python模块叫GFPGAN,它能够让这些老照片恢复原有的光泽,使用了GAN算法对照片进行修复,效果比其他同类模型都有更好的表现。本模块支持Python3.7+版本。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器来编写小型Python项目:Python 编程的最好搭档—VSCode 详细指南

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),输入命令安装依赖:

# 克隆项目
git clone https://github.com/TencentARC/GFPGAN.git
  
# 进入项目
cd GFPGAN

# 安装依赖
pip install basicsr
pip install facexlib
pip install -r requirements.txt
pip install realesrgan

# 安装程序
python setup.py develop

2.使用GFPGAN进行老照片面部恢复

GFPGAN模型需要通过数据集训练得到,由于训练需要使用的数据量和算力非常大,作者团队提供了许多预处理好的模型给普通用户下载,这样我们就能绕过训练这个步骤直接使用模型,下载地址如下:

https://github.com/TencentARC/GFPGAN/releases/download/v0.2.0/GFPGANCleanv1-NoCE-C2.pth

如果你无法访问GitHub,也可以在Python实用宝典后台回复:GFPGAN 下载。包含了本项目源代码及许多其他预训练好的模型,包括:

将想要使用的预训练模型放入 experiments/pretrained_models 文件夹下就可以开始使用了。

使用方法非常简单,进入项目目录后输入以下命令:

python inference_gfpgan.py --model_path experiments/pretrained_models/GFPGANv1.pth --test_path inputs/cropped_faces --save_root results

其中,各个参数的意义如下:

model_path: 使用的模型的位置。

test_path: 需要转换的老照片的路径。

save_root: 转换结果存放的路径。

效果如下:

可见其修复效果是非常优秀的,如果你们也有需要修复的老照片,可以尝试使用手机的照片扫描仪软件扫描后使用此模块修复。

3.微调模型

如果你对模型的输出结果不是很满意,你还可以基于作者团队给出的模型做微调。微调能实现以下目的:

1.如果你有更高质量的人脸数据,可以提高修复效果。

2.你可能需要对数据做一些微处理,比如美妆等。

微调流程如下:

1.准备好训练数据集:https://github.com/NVlabs/ffhq-dataset

2.下载预训练模型和其他你自己的数据,把它们放在 experiments/pretrained_models 文件夹里。我们公众号后台提供以下预训练模型:

  • 预训练的 StyleGAN2 模型:StyleGAN2_512_Cmul1_FFHQ_B12G4_scratch_800k.pth
  • FFHQ 位置:FFHQ_eye_mouth_landmarks_512.pth
  • 一个简单的 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

模型微调的难度比较大,可能会遇到不少问题,大家要善于利用搜索引擎解决问题。

我们的文章到此就结束啦,如果你喜欢今天的 Python 教程,请持续关注Python实用宝典。

有任何问题,可以在公众号后台回复:加群,回答相应验证信息,进入互助群询问。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

给作者打赏,选择打赏金额
¥1¥5¥10¥20¥50¥100¥200 自定义

​Python实用宝典 ( pythondict.com )
不只是一个宝典
欢迎关注公众号:Python实用宝典

Tensorlayer-面向科学家和工程师的深度学习和强化学习库🔥

TensorLayer是一个为研究人员和工程师设计的基于TensorFlow的深度学习和强化学习库。它提供了大量的可定制的神经层来快速构建高级的AI模型,在此基础上,社区开源的MASStutorialsapplicationsTensorLayer荣获2017年度最佳开源软件奖ACM Multimedia Society该项目也可以在iHubGitee

新闻

🔥3.0.0将支持多个后端,如TensorFlow、MindSporte、PaddlePaddle等,允许用户在NVIDIA-GPU和华为-Ascend等不同硬件上运行代码。我们需要更多的人加入开发团队,如果你感兴趣,请发电子邮件hao.dong@pku.edu.cn

🔥强化学习动物园:Low-level APIs对于专业用途,High-level APIs对于简单的用法,以及相应的Springer textbook

🔥Sipeed Maxi-EMC:在上运行TensorLayer模型一种低成本的AI芯片(例如K210)(Alpha版本)

设计特点

TensorLayer是一个全新的深度学习库,其设计考虑到了简单性、灵活性和高性能

  • 简单性:TensorLayer具有易于学习的高级层/模型抽象。您可以在几分钟内了解深度学习如何为您的人工智能任务带来好处,通过海量的examples
  • 灵活性:TensorLayer API是透明和灵活的,灵感来自新兴的PyTorch库。与KERAS抽象相比,TensorLayer使构建和训练复杂的AI模型变得容易得多
  • 零成本抽象:虽然使用起来很简单,但TensorLayer并不要求您在TensorFlow的性能上做出任何妥协(有关更多详细信息,请查看以下基准测试部分)

TensorLayer位于TensorFlow包装器中的一个独特位置。其他包装器,如Kera和TFLearn,隐藏了TensorFlow的许多强大功能,并且对编写自定义AI模型几乎没有提供支持。受到PyTorch的启发,TensorLayer API简单、灵活、Pythonic,让学习变得轻松,同时足够灵活地应对复杂的AI任务。TensorLayer拥有一个快速增长的社区。它已经被世界各地的研究人员和工程师使用,包括来自北京大学、伦敦帝国理工学院、加州大学伯克利分校、卡内基梅隆大学、斯坦福大学的研究人员和工程师,以及谷歌、微软、阿里巴巴、腾讯、小米和彭博社等公司的研究人员和工程师

多语种文档

TensorLayer为初学者和专业人士提供了大量文档。该文档有英文和中文两种版本。



如果您想在主分支上尝试实验功能,可以找到最新的文档here

大量的例子

中可以找到大量使用TensorLayer的示例here以及以下空格:

快速入门

TensorLayer2.0依赖于TensorFlow、Numpy等。要使用GPU,需要CUDA和cuDNN

安装TensorFlow:

pip3 install tensorflow-gpu==2.0.0-rc1 # TensorFlow GPU (version 2.0 RC1)
pip3 install tensorflow # CPU version

安装稳定版本的TensorLayer:

pip3 install tensorlayer

安装TensorLayer的不稳定开发版本:

pip3 install git+https://github.com/tensorlayer/tensorlayer.git

如果要安装其他依赖项,还可以运行

pip3 install --upgrade tensorlayer[all]              # all additional dependencies
pip3 install --upgrade tensorlayer[extra]            # only the `extra` dependencies
pip3 install --upgrade tensorlayer[contrib_loggers]  # only the `contrib_loggers` dependencies

如果您是TensorFlow 1.X用户,则可以使用TensorLayer 1.11.0:

# For last stable version of TensorLayer 1.X
pip3 install --upgrade tensorlayer==1.11.0

性能基准

下表显示了以下各项的训练速度VGG16在Titan XP上使用TensorLayer和原生TensorFlow

模式 Lib 数据格式 最大GPU内存使用量(MB) 最大CPU内存使用量(MB) 平均CPU内存使用率(MB) 运行时间(秒)
亲笔签名 TensorFlow 2.0 最后一个频道 11833 2161 2136 74
TensorLayer 2.0 最后一个频道 11833 2187 2169 76
图表 凯拉斯 最后一个频道 8677 2580 2576 101
渴望 TensorFlow 2.0 最后一个频道 8723 2052年 2024年 97
TensorLayer 2.0 最后一个频道 8723 2010年 2007年 95

参与其中

请阅读Contributor Guideline在提交您的请购单之前

我们建议用户使用Github问题报告错误。用户还可以讨论如何在以下空闲通道中使用TensorLayer

引用TensorLayer

如果您觉得TensorLayer对您的项目有用,请引用以下论文:

@article{tensorlayer2017,
    author  = {Dong, Hao and Supratak, Akara and Mai, Luo and Liu, Fangde and Oehmichen, Axel and Yu, Simiao and Guo, Yike},
    journal = {ACM Multimedia},
    title   = {{TensorLayer: A Versatile Library for Efficient Deep Learning Development}},
    url     = {http://tensorlayer.org},
    year    = {2017}
}

@inproceedings{tensorlayer2021,
  title={Tensorlayer 3.0: A Deep Learning Library Compatible With Multiple Backends},
  author={Lai, Cheng and Han, Jiarong and Dong, Hao},
  booktitle={2021 IEEE International Conference on Multimedia \& Expo Workshops (ICMEW)},
  pages={1--3},
  year={2021},
  organization={IEEE}
}