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老照片修复