Python机器学习之实现模糊照片人脸恢复清晰

 更新时间:2021年12月20日 09:03:24   作者:剑客阿良_ALiang  
GFPGAN是腾讯开源的人脸修复算法,它利用预先训练好的面部 GAN(如 StyleGAN2)中封装的丰富和多样的先验因素进行盲脸 (blind face)修复。这篇文章主要为大家介绍通过GFPGAN实现模糊照片人脸恢复清晰,需要的朋友可以参考一下

前言

最近看到一个有意思的机器学习项目——GFPGAN,他可以将模糊的人脸照片恢复清晰。开源项目的Github地址:https://github.com/TencentARC/GFPGAN

我们看一看作者给出的对比图。

最右侧的就是GFPGAN的效果,看一下最左层的输入图片,可以发现GFPGAN将图片恢复的非常清晰。这个效果非常惊艳。

按照以前的惯例,我还是先把这个项目安装使用一下,看看能不能对代码重新封装,变成可以工程化的项目。

环境安装

我们先看一下项目README给的提示。

首先需要的python版本是>=3.7的,所以我用Anaconda创建了一个python3.9的虚拟环境。Pytorch的安装直接从官网获取命令安装一个最新版本即可。

因为还有一些基础依赖的安装,照着安装一下就行,其实setup.py是已经在项目中的,如下图。

由于模型比较大,所以作者没有放在github上,给了下面的下载提示。该模型是作者提供已经训练好的模型。

如果下载很慢的话,可以从我的网盘下载。

链接提取码:TUAN

作者还提供了基础模型可供自行训练。

验证模型

下面我准备了一些图,挑了一些比较典型的图片,有黑白的、彩色的以及马赛克的,想看看是不是都可以实现清晰化处理。

准备的图片如下:

按照README提供的指令

python inference_gfpgan.py --upscale 2 --test_path inputs/newImages --save_root results

看一下执行结果:

(pytorch39) C:\Users\yi\PycharmProjects\GFPGAN>python inference_gfpgan.py --upscale 2 --test_path inputs/newImages --save_root results
C:\Users\yi\PycharmProjects\GFPGAN\inference_gfpgan.py:45: UserWarning: The unoptimized RealESRGAN is very slow on CPU. We do not use it. If you really want to use it, p
lease modify the corresponding codes.
  warnings.warn('The unoptimized RealESRGAN is very slow on CPU. We do not use it. '
Processing 331.jpg ...
E:\ProgramData\Anaconda3\envs\pytorch39\lib\site-packages\torch\nn\functional.py:3679: UserWarning: The default behavior for interpolate/upsample with float scale_factor
 changed in 1.6.0 to align with other frameworks/libraries, and now uses scale_factor directly, instead of relying on the computed output size. If you wish to restore th
e old behavior, please set recompute_scale_factor=True. See the documentation of nn.Upsample for details.
  warnings.warn(
Processing 333.jpg ...
Processing 334.jpg ...
Processing 335.jpg ...
Results are in the [results] folder.
 
(pytorch39) C:\Users\yi\PycharmProjects\GFPGAN>

按照默认参数,会在results结果文件夹中生成4个目录分别为前后对比图、原检测出来的脸部图、处理后的脸部图、处理后的最终图。

我们看看效果

 

可以看出两点:

1、马赛克不能消除,有一张全马赛克的图片,直接无法修复。

2、常规的模糊照片修复的是真的很清晰呀。

总结

总的来说该项目是非常优秀的,从最终图片的效果上来说,非常好了,至于去除马赛克还是得看别的项目了。后面研究研究这么项目,看能不能改改。

以上就是Python机器学习之实现模糊照片人脸恢复清晰的详细内容,更多关于Python模糊照片人脸恢复清晰的资料请关注脚本之家其它相关文章!

相关文章

  • Python绘制惊艳的桑基图的示例详解

    Python绘制惊艳的桑基图的示例详解

    很多时候,我们需要一种必须可视化数据如何在实体之间流动的情况。这个时候就需要桑基图,它通常描绘 从一个实体(或节点)到另一个实体(或节点)的数据流。本文将利用Python绘制惊艳的桑基图,需要的可以参考一下
    2022-02-02
  • python版飞机大战代码分享

    python版飞机大战代码分享

    这篇文章主要为大家详细介绍了python版飞机大战的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • python中unittest框架应用详解

    python中unittest框架应用详解

    这篇文章主要介绍了Python中Unittest框架的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-09-09
  • 提升Python编程水平必不可少的重构技巧

    提升Python编程水平必不可少的重构技巧

    在Python中,编写可读性强且Pythonic的代码是至关重要的,重构技巧是指通过调整代码结构和风格,使其更符合Python的惯例和标准,从而提高代码的可读性、简洁性和可维护性,本文将深入探讨八项重构技巧,帮助您编写更Pythonic的代码
    2024-01-01
  • pytest用例执行顺序和跳过执行详解

    pytest用例执行顺序和跳过执行详解

    本文主要介绍了pytest用例执行顺序和跳过执行详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Flask项目的部署的实现步骤

    Flask项目的部署的实现步骤

    本文主要介绍了Flask项目的部署的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 一篇文章教你掌握python数据类型的底层实现

    一篇文章教你掌握python数据类型的底层实现

    这篇文章主要介绍了Python 数据类型的底层实现原理分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-09-09
  • 说一说Python logging

    说一说Python logging

    这篇文章主要和大家聊一聊Python logging,Python logging是什么,Python logging的作用是什么,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • 用python写一个带有gui界面的密码生成器

    用python写一个带有gui界面的密码生成器

    这篇文章主要介绍了用python写一个带有gui界面的密码生成器,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11
  • 基于MTCNN/TensorFlow实现人脸检测

    基于MTCNN/TensorFlow实现人脸检测

    这篇文章主要为大家详细介绍了基于MTCNN/TensorFlow实现人脸检测,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05

最新评论