Python机器学习之实现模糊照片人脸恢复清晰
作者:剑客阿良_ALiang 发布时间:2021-02-13 09:56:53
前言
最近看到一个有意思的机器学习项目——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、常规的模糊照片修复的是真的很清晰呀。
来源:https://blog.csdn.net/zhiweihongyan1/article/details/122025741
猜你喜欢
- 本文实例讲述了Python3实现将文件归档到zip文件及从zip文件中读取数据的方法。分享给大家供大家参考。具体实现方法如下:'
- 什么是性能分析?性能分析是衡量应用程序在代码级别的相对性能。性能分析将捕捉的事件包括:CPU的使用,内存的使用,函数的调用时长和次数,以及调
- 如下所示:matrix.py#!/usr/bin/python# -*- encoding:UTF-8-*-import pprintimp
- 本文实例为大家分享了React实现表格选取的具体代码,供大家参考,具体内容如下在工作中,遇到一个需求,在表格中实现类似于Excel选中一片区
- 本文实例讲述了php实现的微信分享到朋友圈并记录分享次数功能。分享给大家供大家参考,具体如下:1.引入JS文件2.通过config接口注入权
- 你的SQL Server最近是否运行不正常?不,我指的不是我们肯定会遇到的通常的数据库和操作系统问题。我的意思是,你是否经历过服务器的反应迟
- 一、数据集下载加州高速公路PEMS数据集这里绘制PEMS04中的交通流量数据。该数据集中包含旧金山2018年1月1日至2月28日的29条道路
- 在写python程序时,对于可变对象和不可变对象这里理解不深,导致总会犯一些细节错误。以下面的程序举例:ab = {'a':
- 小编今天教你们python怎么导入坐标点,解决你在生活中遇到的小问题。首先下载安装python,打开文本编辑器,将文件保存成 py格式,如果
- 触发器权限和所有权CREATE TRIGGER 权限默认授予定义触发器的表所有者、sysadmin 固定服务器角色成员以及 db_owner
- string iconv ( string $in_charset , string $out_charset , string $str
- ASP 本身不支持动态包含文件,现在的动态包含是通过 FSO 把被包含的文件合并到主文件里再运行。以下也有把形如 <!--#
- 绪论java默认精度是毫秒级别的,生成的时间戳是13位,而python默认是10位的,精度是秒。那么python是如何生成13位时间戳,以及
- 个人网站如有会员注册模块+动网论坛的话,那网站要与动网论坛系统整合,实现不同Web系统之间的用户信息同步更新、登录等操作就不是件容易的事了,
- 利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法。我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站
- f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化
- 介绍本篇文章主要介绍如何爬取麦子学院的课程信息(本爬虫仍是单线程爬虫),在开始介绍之前,先来看看结果示意图怎么样,是不是已经跃跃欲试了?首先
- 阅读上一篇:什么是名字空间<meta http-equiv="Content-Type" co
- 首先看一下这三个函数:rtrim() ltrim() trim();rtrim()定义以及用法: rtrim() 函数移除字符串右侧的空白字
- 使用Python开发的同学一定听说过Requsts库,它是一个用于发送HTTP请求的测试。如比我们用Python做基于HTTP协议的接口测试