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
猜你喜欢
- 写在前面现在人人都有微信,一句“咱们加个微信呗”搭载了你我之间的友谊桥梁,浑然不知自己的微信朋友已经四五百了,甚至上千,几千的都有;然而那个
- 如下所示:import pandas as pddf = pd.DataFrame({'性别' : ['男'
- var YX = { //得到JS内置数据类型的类型,返回值包括[Date,RegExp,Number,String,Array,Boole
- 一、SQLalchemy简介SQLAlchemy是一个开源的SQL工具包,基本Python编程语言的MIT许可证而发布的对象关系映射器。SQ
- 图片的间隙 (1)问:我有一张大图片,把它切割后在Dreamweaver中进行拼接,可是总是有间隙,不知为什么? 答:不知你是否把表格的边距
- 文章主要描述的是SQL Server数据库和Oracle数据库行转列的一种比较典型操作方法,对于有些业务来说,数据在表中的存储与其最终的Gr
- 前言orztop是一款实时show full processlist的工具,我们可以实时看到数据库有哪些线程,执行哪些语句等。工具使用方便简
- Django部署到Cenos7需要安装大量的依赖包, 有很多坑需要踩, 这里是踩坑后探索出的标准化步骤实验环境: 腾讯云centos7用ce
- 语法: ROW_NUMBER() OVER([ <partition_by_clause>] <order_by_clau
- 记录的MySQL 5.7.9安装教程,分享给大家环境介绍:操作系统:Centos 7.1mysql数据库版本:mysql5.7.9mysql
- console 打印乱码1.File Encoding设置项目编码为GBK2.文件模板设定python脚本为# -*- coding: ut
- 看代码吧~# 加载库import pandas as pd# 데이터프레임을 만듭니다.dataframe = pd.DataFrame()
- 本文实例为大家分享了python实现二维数组的对角线遍历,供大家参考,具体内容如下第一种情况:从左上角出发,右下角结束要完成的事情,就像下图
- 前言ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,下面主要介绍了ES5中的Array对象,需要的朋友们一起来看看吧
- 这是模拟淘宝的一个简易的购物商城程序。用户入口具有以下功能:登录认证可以锁定用户密码输入次数大于3次,锁定用户名连续三次输错用户名退出程序可
- 概述先来介绍一下xml格式的文件,从数据分析的角度去看xml格式的数据集,具有以下的优点开放性(能在任何平台上读取和处理数据,允许通过一些网
- 如何干预执行计划 - - 使用hints提示基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也
- 导出到excel EXEC master..xp_cmdshell 'bcp Settle
- 本文实例讲述了Python基于正则表达式实现检查文件内容的方法分享给大家供大家参考,具体如下:这个是之前就在学python,欣赏python
- logconfig.json{ "version":1, "disable_existing_loggers&