Bringing Old Photos Back to Life

香港城市大学和微软亚洲研究院的“让老照片重现光彩”(Bringing Old Photos Back to Life)项目侧重于对老照片进行划痕修复和人脸效果增强,在老照片处理方面取得了很好的成绩,在这篇文章里我们介绍一下这个项目。

论文地址:https://arxiv.org/abs/2004.09484

Github项目:https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life

1.必备环境(Windows 10,显卡可有可无,GPU可设置0,CPU设置-1)

python 3.7.4
torch 1.5.0
torchvision 0.6.0

1.1从 Github 下载源代码,解压缩,进入工作目录,安装其他软件环境:

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

pip install -r requirements.txt

1.2下载组件

(1.2.1)https://github.com/vacancy/Synchronized-BatchNorm-PyTorch

将上面项目的代码下载下来,解压缩,将 .\sync_batchnorm 拷贝到:.\Global\detection_models 和 .\Face_Enhancement\models\networks 两个目录下。

(1.2.2)http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

将下载的压缩包解压缩,拷贝到:.\Face_Detection 下。

该文件也可到百度网盘下载:https://pan.baidu.com/s/1E0J0gOlTcrjWkA5G1qddPw 提取码:qm3h

2.下载预训练模型
可以到百度网盘下载:https://pan.baidu.com/s/1T2tEqUsi4QRwBSbPNNLWPQ 提取码:fdgx

将 .\Face_Enhancement\checkpoints.zip (327MB)解压缩,保存为:.\Face_Enhancement\checkpoints 目录及相关文件

将 .\Global\checkpoints.zip (1.62GB)解压缩,保存为:.\Global\checkpoints 目录及相关文件。

3.修改几个文件

run.py,加入一行代码:

os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

.\global\detection_models\networks.py,修改:

from .sync_batchnorm.replicate import DataParallelWithCallback
from .antialiasing import Downsample

.\Face_Enhancement\models\networks\normalization.py,修改:

from .sync_batchnorm import SynchronizedBatchNorm2d

3.1将待修复的带划痕/有破损的老照片放到:.\test_images\old_w_scratch 目录下,将不带划痕需要改进色彩或清晰度的老照片放到:.\test_images\old 目录下,运行以下命令行(命令行中需要使用绝对目录!):
注:GPU可设置为0或0、1、2或0、2; CPU使用-1

修复带划痕/有破损的老照片(使用 RTX 2080Ti 最大可修复 512x512 的照片):

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

改进老照片的色彩或清晰度(使用 RTX 2080Ti 最大可改善 1024x1024 的照片):

python run.py --input_folder D:\pycharm\Bringing-Old-Photos-Back-to-Life-master\test_images\old --output_folder D:\pycharm\Bringing-Old-Photos-Back-to-Life-master\output_images --GPU -1

3.2为了避免成果照片混淆,在完成上一次修复/改进操作后,将成果照片(放在:.\output_images\final_output 目录下)移走后请将 .\output_images 下的子目录清空,然后再进行下一次操作。

4使用效果

4.1老照片修复

论文给出的例子:
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐