专栏首页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 工程:

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

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

cd Face_Enhancement/models/networks/
git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
cd ../../../
 
cd Global/detection_models
git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
cd ../../

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

cd Face_Detection/
wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
bzip2 -d shape_predictor_68_face_landmarks.dat.bz2
cd ../

然后分别下载 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

使用方法:

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

python run.py --input_folder [test_image_folder_path] \
              --output_folder [output_path] \
              --GPU 0

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

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

python run.py --input_folder [test_image_folder_path] \
              --output_folder [output_path] \
              --GPU 0 \
              --with_scratch

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

运行效果(点图查看):

2、DeOldify

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

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

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

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

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

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

项目地址:

https://github.com/jantic/DeOldify

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

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

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

#NOTE:  This must be the first call in order to work properly!
from deoldify import device
from deoldify.device_id import DeviceId
#choices:  CPU, GPU0...GPU7
device.set(device=DeviceId.GPU0)

import torch

if not torch.cuda.is_available():
    print('GPU not available.')
    
import fastai
from deoldify.visualize import *
import warnings
warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?")

colorizer = get_image_colorizer(artistic=True)

colorizer.plot_transformed_image("test_images/1.png", render_factor=10, compare=True)

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

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

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

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

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

三、总结

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微软又一开源力作!瞬间修复老旧照片!!!

    岁月流逝带走了时光却带不走回忆,从 1839 年法国画家达盖尔将 “摄影术” 带到世人面前,世界上就多了一种使用影像记录回忆的方式。那些我们想要留在心底或未曾经...

    GitHubDaily
  • 妈妈不在身边的第X个母亲节,用AI找回她的美好时光

    出门在外,是不是才觉得妈妈的唠叨分外可爱又令人怀念。母亲节到了,翻箱倒柜想找出一张妈妈的老照片,却因为早已泛黄褪色而触碰不到回忆的信号,记不得哪年哪月哪天,找不...

    大数据文摘
  • 560万Facebook人际关系数据,揭秘家庭职业传承“真相”

    当你走出校门迈向职场,择业时也许很难完全避免来自父母的影响。而这种影响甚至还不是一时,而是打你一出生就已经开始了。“龙生龙凤生凤”,父母的职业在多大程度上会影响...

    DT数据侠
  • 神还原女神照片!GAN为百年旧照上色

    如何把女神的黑白照片变成彩照?今日小编发现新加坡 GovTech 数据科学与人工智能部门在 Medium 上介绍了一个为百年旧照上色的项目。

    机器之心
  • 神还原女神照片!GAN为百年旧照上色

    如何把女神的黑白照片变成彩照?今日小编发现新加坡 GovTech 数据科学与人工智能部门在 Medium 上介绍了一个为百年旧照上色的项目。

    abs_zero
  • 从宝丽来到数字电影——图像与视频色彩的科学

    文 / Kylee Peña, Chris Clark, and Mike Whipple

    LiveVideoStack
  • css基础系列

    border边框,margin外边距,padding内部距,content内容,width宽度。

    达达前端
  • 《陪孩子写作业》附录:敲黑板!把孩子陪成的独家方法与窍门

    yeedomliu
  • 02 . 前端之CSS

    外部样式就是讲css写在一个单独的文件中,一般以.css结尾,就叫css文件,然后在html页面进行引入即可,推荐使用此方式:

    常见_youmen
  • 腾讯云AI「 承包了一片海 」

    ? 普通人与AI的距离还有多远? 对于公益,AI将带来什么样的可能性? 一个不懂编程的人,如何快速开发出一款具有AI能力的小程序? ...... 这些...

    腾讯云AI
  • 家里有娃的人最怕哪两个字?

    ? 暑假 在39°高温陪伴的炎炎夏日里 有两个存在是家里有娃的人无法直视的 一是太阳,一是放暑假的娃儿们 ? 眼看着老父亲、老母亲们 期待已久饱受摧残的暑假已...

    鹅老师
  • 乱炖数据之2700余篇“简书交友”专题文章数据的花式玩法

    简书上有个“简书交友”专题,经常会有人写些自己的情况、贴贴自己的照片然后投稿到这一专题,有介绍的比较详细的比如下图所示(侵删),较为规整和全面;

    古柳_DesertsX
  • 知乎大神爬取高颜值美女(Python爬虫+人脸检测+颜值检测)

    这是一篇来自知乎大神的技术文章 ---- 写在前面: 本文作者:邓卓 原文链接:本文转发修改已取得原作者授权 https://zhuanlan.zhihu.c...

    小小詹同学
  • 日本小哥如何使用深度学习和TensorFlow种黄瓜?

    大数据文摘
  • 思考 | 从百度医疗竞价说起,大数据需要科学和正直的品格

    最近几天,一篇“一个死在百度和部门医院之手的年轻人”的新闻刷爆网络,又一次将百度的医疗竞价排名推到了风口浪尖。 大数据是新出现的事物,作为一门深刻洞察社会规律...

    灯塔大数据
  • 微信智能相框来了,这次能抄底吗?

    原创2015-03-03王振 2014年智能硬件蓬勃发展,BAT、小米、 360、京东等巨头中,腾讯相对淡定,路宝盒子、QQ互联这样的“小动作”远远没有别家又做...

    罗超频道
  • 谷歌AI“你画我猜”强推“狗年版本”,腾讯AI要帮你修老照片 | 竹货新春

    ? 今天大年初一。为了庆贺中国农历狗年的到来,谷歌刚刚在自己的AI“你画我猜”游戏中更新了狗狗版本。 (你画我猜,介系里没有挽过的船新版本。挤需体验三番钟,...

    量子位
  • 知乎大神爬取高颜值美女(Python爬虫+人脸检测+颜值检测)

    这是一篇来自知乎大神的技术文章

    小詹同学
  • CSS基础

    CSS基础 CSS基础知识 选择器(重要!!!) 继承、特殊性、层叠、重要性 CSS格式化排版 单位和值 盒模型 浮动 相对定位与绝对定位 布局初探 CSS基础...

    用户1667431

扫码关注云+社区

领取腾讯云代金券