社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用 Python 分分钟让旧照片修复清晰

菜鸟学Python • 4 年前 • 1250 次点击  

翻开家里的的相片册,可以看到每张照片都是那么的弥足珍贵,特别是很久以前的照片,都是美好的回忆,还有那些年错过的场景,都被记录下来了,不过可惜的是,随着时间的流逝,照片可能泛黄,出现划痕,画质损失等等,那么这时候,如果可以让这些老旧的照片修复回来,那就忒棒啊!

如何使用呢?今天小编和你一起玩一下,把旧照片修复清晰。

在此之前,确保你的电脑有:

  • Python3的运行环境

  • GPU或着CPU

环境准备

首先将微软的「Bringing-Old-Photos-Back-to-Life」库 clone 到本地:

git clone https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life.git

下载 Synchronized-BatchNorm-PyTorch

接着进入项目文件,进入 「Face_Enhancement/models/networks/」,把「Synchronized-BatchNorm-PyTorch」clone下来:

clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch

同样的,在「Global/detection_models」下同步下载 「Synchronized-BatchNorm-PyTorch」:

下载 landmark detection pretrained model

进入 「Face_Enhancement」,使用 wget 命令下载地标检测预训练模型:

wget http://dlib.net/files/shapepredictor68facelandmarks.dat.bz2

接着解压:

bzip2 -d shapepredictor68facelandmarks.dat.bz2

下载训练模块

进入「Face_Enhancement」,使用 wget 下载:

wget https://facevc.blob.core.windows.net/zhanbo/oldphoto/pretrain/FaceEnhancement/checkpoints.zip

接着解压一波:

unzip checkpoints.zip

进入 「Global」,下载:

wget https://facevc.blob.core.windows.net/zhanbo/old_photo/pretrain/Global/checkpoints.zip

同样解压一波:

unzip checkpoints.zip

创建 python3 虚拟环境

python3 -m venv .venv

source .venv/bin/activate

安装项目依赖库

pip3 install -r requirements.txt

至此,我们该安装都特么安装完成了,接下来就可以使用了。

修复没有划痕的老照片

我们可以创建两文件夹,分别用来存放旧照片和生成的修复照片:

比如你要修复这样的旧照片:

把它放进 「old」文件夹中,然后使用这样的命令进行修复:

python run.py --inputfolder [旧照片的文件夹路径] --outputfolder [新照片的文件夹路径] --GPU 0

像这样:

这时候在 「out」中就可以得到修复好的照片了:

打开可以看到新的照片:

是不是清晰了很多?

当然你也可以批量修复,把旧照片都放入你创建的 old 文件夹就可以。

修复有划痕的老照片

使用方式和刚刚的命令一样,只不过我们需要在命令后面添加 「--with_scratch」。

删除刚刚 out 下生成的文件:

rm -rf test/out/*

修复:

python run.py --inputfolder [旧照片的文件夹路径] --outputfolder [新照片的文件夹路径] --GPU 0 --with_scratch

得到的效果就是这样的:

写到这里,小编在淘宝搜了一下「老照片修复」,这...商机啊!

Python还是很有趣的,赶紧一起来学吧!欢迎在留言区吱一声哦!

推荐阅读:

入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径


干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |    从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |


趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!


AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影


年度爆款文案






    
点这里,直达菜鸟学PythonB站!!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/108829
 
1250 次点击