使用 Python 让旧照片修复清晰
共 1875字,需浏览 4分钟
·
2021-01-21 21:16
翻开家里的的相片册,可以看到每张照片都是那么的弥足珍贵,特别是很久以前的照片,都是美好的回忆,还有那些年错过的场景,都被记录下来了,不过可惜的是,随着时间的流逝,照片可能泛黄,出现划痕,画质损失等等,那么这时候,如果可以让这些老旧的照片修复回来,那就忒棒啊!
如何使用呢?今天小帅b和你一起玩一下,把旧照片修复清晰。
在此之前,确保你的电脑有:
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
得到的效果就是这样的:
写到这里,小帅b在淘宝搜了一下「老照片修复」,这...商机啊!
哈哈,OK,以上就是小帅b今天给你带来的分享,希望对你有帮助。
推荐阅读
下回见,peace!
渣男们,点个赞咯