这也太强大了!将模糊照片人脸恢复清晰,五官精致的慎用
2022-01-19 18:00 · 熬夜学Python的程序媛
前言
最近看到一个有意思的机器学习项目——GFPGAN,他可以将模糊的人脸照片恢复清晰。开源项目的Github地址:
https://github.com/TencentARC/GFPGAN
我们看一看作者给出的对比图。
最右侧的就是GFPGAN的效果,看一下最左层的输入图片,可以发现GFPGAN将图片恢复的非常清晰。这个效果非常惊艳。
按照以前的惯例,我还是先把这个项目安装使用一下,看看能不能对代码重新封装,变成可以工程化的项目。
环境安装
我们先看一下项目README给的提示。
首先需要的python版本是>=3.7的,所以我用Anaconda创建了一个python3.9的虚拟环境。Pytorch的安装直接从官网获取命令安装一个最新版本即可。
因为还有一些基础依赖的安装,照着安装一下就行,其实setup.py是已经在项目中的,如下图。
由于模型比较大,所以作者没有放在github上,给了下面的下载提示。该模型是作者提供已经训练好的模型。
如果下载很慢的话,可以私信“333”,将我整理的网盘源码分享给你。
作者还提供了基础模型可供自行训练。
验证模型
下面我准备了一些图,挑了一些比较典型的图片,有黑白的、彩色的以及马赛克的,想看看是不是都可以实现清晰化处理。
准备的图片如下:
按照README提供的指令
pythoninference_gfpgan.py--upscale2--test_pathinputs/newImages--save_rootresults
看一下执行结果:
(pytorch39)C:UsersyiPycharmProjectsGFPGAN>pythoninference_gfpgan.py--upscale2--test_pathinputs/newImages--save_rootresultsC:UsersyiPycharmProjectsGFPGANinference_gfpgan.py:45:UserWarning:TheunoptimizedRealESRGANisveryslowonCPU.Wedonotuseit.Ifyoureallywanttouseit,pleasemodifythecorrespondingcodes.
warnings.warn("TheunoptimizedRealESRGANisveryslowonCPU.Wedonotuseit."Processing331.jpg...E:ProgramDataAnaconda3envspytorch39libsite-packagestorchnnfunctional.py:3679:UserWarning:Thedefaultbehaviorforinterpolate/upsamplewithfloatscale_factor
changedin1.6.0toalignwithotherframeworks/libraries,andnowusesscale_factordirectly,insteadofrelyingonthecomputedoutputsize.Ifyouwishtorestoretheoldbehavior,pleasesetrecompute_scale_factor=True.Seethedocumentationofnn.Upsamplefordetails.
warnings.warn(Processing333.jpg...Processing334.jpg...Processing335.jpg...Resultsareinthe[results]folder.
(pytorch39)C:UsersyiPycharmProjectsGFPGAN>
按照默认参数,会在results结果文件夹中生成4个目录分别为前后对比图、原检测出来的脸部图、处理后的脸部图、处理后的最终图。
我们看看效果
可以看出两点:
1、马赛克不能消除,有一张全马赛克的图片,直接无法修复。
2、常规的模糊照片修复的是真的很清晰呀。
总结
总的来说该项目是非常优秀的,从最终图片的效果上来说,非常好了,至于去除马赛克还是得看别的项目了。后面研究研究这么项目,看能不能改改