百年老照片修复算法,那些高颜值的父母!

2020年9月25日08:55:41 6 2,791 °C
摘要

老照片承载着生命中的每一份意义,那是一代代人的回忆。今天,Jack Cui 教大家两个算法,帮你搞定不清晰的、褶皱的老照片,黑白照片变彩照。

百年老照片修复算法,那些高颜值的父母!

一、前言

你们家里,有没有高颜值的长辈老照片?

亦或是黑白、亦或是模糊,甚至是褶皱破损。

老照片承载着生命中的每一份意义,那是一代代人的回忆。

今天,Jack Cui 教大家两个算法,帮你搞定不清晰的、褶皱的老照片,黑白照片变彩照。

模糊照片,一键高清:

百年老照片修复算法,那些高颜值的父母!

褶皱照片,一键复原:

百年老照片修复算法,那些高颜值的父母!

黑白照片,一键上色:

百年老照片修复算法,那些高颜值的父母!

在这个人工智能的时代,算法都能帮你搞定

二、算法

模糊、褶皱照片修复,是微软 2020 年最新的一篇 CVPR 文章:

「Bringing Old Photo Back to Life」

黑白照片上色,是一个经典上色老算法(2018年):

「DeOldify」

1、Bringing Old Photo Back to Life

该文作者来自香港城市大学、微软亚洲研究院、微软云 + AI 、中国科学技术大学。

作者使用变分自动编码机(VAE)将图像变换到隐空间,并在隐空间进行图像恢复操作。

百年老照片修复算法,那些高颜值的父母!

听不懂,说人话!

举个例子,国际象棋大师观察棋盘 5 秒,就能记住所有棋子的位置,而常人是无法办到的。

但棋子的摆放必须是实战中的棋局(也就是棋子存在的内在规则),棋子随机摆放可不行。

象棋大师并不是记忆力优于我们,而是经验丰富,很擅于识别象棋模式,从而高效地记忆棋局。

自动编码机(VAE)就是「象棋大师」,它可以找到图片的内在规则(隐空间),然后通过自己的方式表示出来。

作者使用了两个 VAE:

第一个 VAE 用于将合成的老照片(模糊、磨损)进行编码到隐空间。

第二个 VAE 用于将对应的干净的老照片进行编码。

然后,在隐空间学习从污损的老照片到干净照片的映射。

就这样,实现了一个老照片的修复算法。

这个有点像在学习控制图片清晰、磨损的一个特征表示,通过控制这个特征,可以达到修复破损照片的目的。

论文的修复效果:

百年老照片修复算法,那些高颜值的父母!

算法开源,还有预训练模型,可以直接测试效果。

项目地址:

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

项目依赖于「Synchronized-BatchNorm-PyTorch」,按照教程配置即可。

第一步,clone 工程:

第二步,进入工程目录,clone 依赖项目:

第三步,下载预训练模型。

然后分别下载 Global 和 Face_Enhancement 的训练好的模型,并解压,放在对应目录下:

Global:

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

Face_Enhancement:

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

下载速度慢,或者嫌麻烦,可以下载我打包好的工程,拿来直接用!

模型、代码、素材,工程下载地址(提取码:jack):

网盘链接:https://pan.baidu.com/s/1jVjd8dS0j0AnWeFI-7l-eA

使用方法:

没有裂痕的图像修复,就是图片不清晰,可以用如下指令:

将你想修复的图片放到 [test_image_folder_path] 目录下(自己指定),生成的图片会放到 [output_path] 目录中。

对于裂痕的图片,需要额外增加一个参数,指令如下:

这里需要注意的是,指定的路径需要使用绝对路径

运行效果:

2、DeOldify

「DeOldify」是一个图片上色算法。

曾经上过热搜的修复百年前老北京的影像,就是用的这个算法。

百年老照片修复算法,那些高颜值的父母!

一切都是现成的,用起来很简单。

DeOldify 就是一种对抗生成网络的应用。

其原理是使用 NoGAN 技术,它结合了 GAN 训练的优点,比如出色的上色效果,同时也消除了一些副作用,比如画面着色不稳定、闪烁的现象。

算法出了很久,算法原理教程应该很多,这里就不再累述,我们直接看怎么用吧。

项目地址:

https://github.com/jantic/DeOldify

需要配置的上文一样,安装一些库,然后下载模型权重文件。

项目工程页里详细说明了下载哪些文件,需要安装什么。

配置好后,在工程目录编写如下代码:

test_images/1.png 为要上色的图片,运行程序,就可以实现为黑白照片上色。

百年老照片修复算法,那些高颜值的父母!

还是,模型、代码、素材都已打包,工程下载地址(提取码:jack):

网盘链接:https://pan.baidu.com/s/17sma_a1ICJMY07KLnDpiww

打开 Jupyter 直接运行 run.ipynb 文件即可,生成的结果保存在 result_images 文件夹中。

除了处理图片,为视频上色也不在话下。

三、总结

家中,是否有一些黑白老照片?

百年老照片修复算法,那些高颜值的父母!

为长辈修复下他们的老照片,是惊喜,也是心意。时光一逝永不回,往事只能回味~

长辈如有惊艳到,记得回来转发、点赞哦!

我是 Jack Cui,一个爱发技术干货的程序员,我们下期见~

百年老照片修复算法,那些高颜值的父母!

weinxin
微信公众号
分享技术,乐享生活:微信公众号搜索「JackCui-AI」关注一个在互联网摸爬滚打的潜行者。
Jack Cui

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:6   其中:访客  6   博主  0

    • avatar 风水学知识 来自天朝的朋友 火狐浏览器 Windows 10 广东省惠州市 电信 0

      感谢分享~

      • avatar 周易测算网 来自天朝的朋友 火狐浏览器 Windows 10 广东省惠州市惠阳区 电信 0

        写的不错

        • avatar 心灵博客 来自天朝的朋友 谷歌浏览器 Mac OS X 10_15_5 广东省深圳市 联通 2

          唉,只可惜老照片都找不到了。

          • avatar 逸驰 来自天朝的朋友 谷歌浏览器 Windows 10 北京市 联通 1

            老照片是扫描到电脑上么

            • avatar dahans2145 来自天朝的朋友 谷歌浏览器 Windows 10 山东省济南市 联通 1

              Running Stage 4: Blending
              Traceback (most recent call last):
              File “align_warp_back_multiple_dlib.py”, line 4, in
              import torch
              File “C:\ProgramData\Anaconda3\lib\site-packages\torch\__init__.py”, line 81, in
              ctypes.CDLL(dll)
              File “C:\ProgramData\Anaconda3\lib\ctypes\__init__.py”, line 348, in __init__
              self._handle = _dlopen(self._name, mode)
              OSError: [WinError 126] 找不到指定的模块。
              如何解决

              • avatar vividmen 来自天朝的朋友 谷歌浏览器 Windows 10 广西南宁市 电信 0

                库文件都下载好了,run.py 直接用pycham运行不出,运行步骤能在详细些吗