Python

重拾旧时光——Bringing-Old-Photos-Back-to-Life

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

微软提供了开源项目「Bringing-Old-Photos-Back-to-Life」

配置安装


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

Python3的运行环境
GPU或着CPU

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

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

2.下载 Synchronized-BatchNorm-PyTorch

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

将下载的sync_batchnorm文件夹复制到「Bringing-Old-Photos-Back-to-Life/Face_Enhancement/models/networks」和「Bringing-Old-Photos-Back-to-Life/Global/detection_models」两个文件夹内。

3.下载地标检测预训练模型 shape_predictor_68_face_landmarks.dat.bz2

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

接着解压缩

bzip2 -d shapepredictor68facelandmarks.dat.bz2

把解压缩出来的shape_predictor_68_face_landmarks.dat拷贝到「Bringing-Old-Photos-Back-to-Life/Face_Detection」下面。

4.下载训练模块

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

把下载的face_checkpoints.zip解压缩到「Bringing-Old-Photos-Back-to-Life/Face_Enhancement」下面

把下载的global_checkpoints.zip解压缩到「Bringing-Old-Photos-Back-to-Life/Global」下面

5.创建 python 虚拟环境

 cd /mnt/bopbtl
 python -m venv bopbtl
 source bopbtl/bin/activate

6.安装依赖项目

cd /mnt/bopbtl/Bringing-Old-Photos-Back-to-Life
pip install -r requirements.txt

软件使用


修复没有划痕的老照片

python run.py --input_folder [旧照片的文件夹路径] --output_folder [新照片的文件夹路径] --GPU -1
–GPU 0是使用第一个GPU处理,如果你用CPU的话就设置-1
例如:
cd /mnt/bopbtl/Bringing-Old-Photos-Back-to-Life
python run.py --input_folder /mnt/test/in --output_folder /mnt/test/out --GPU -1

修复有划痕的老照片

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

python run.py --input_folder D:\Bringing-Old-Photos-Back-to-Life-master\test_images\old_w_scratch --output_folder D:\Bringing-Old-Photos-Back-to-Life-master\output\final_output --GPU -1  --with_scratch

修复高分辨率划痕破损老照片

这个模式只能改进色彩和清晰度,不能修复破损照片

python run.py --input_folder D:\Bringing-Old-Photos-Back-to-Life-master\test_images\old_w_scratch --output_folder D:\Bringing-Old-Photos-Back-to-Life-master\output\final_output --GPU -1 --with_scratch --HR 

需要修复的照片不能太破了,太破了是修复不了的。

补充:安装dlib


如果pip install dlib 出错,可以按照下面步骤手动安装dlib

地址: https://pypi.org/simple/dlib/

比如版本: dlib-19.21.0.tar.gz

tar -zxvf dlib-19.21.0.tar.gz
cd /mnt/bopbtl/dlib-19.21.0
python setup.py install

总结



怎么样,是不是觉得这个算法很有意思,那就找出那些照片来修复,重拾那些美好的旧时光,同时,有条件的伙伴可以提高电脑的配置,来修复更高像素的图片。