神还原女神照片!GAN为百年旧照上色
全世界只有3.14 % 的人关注了
数据与算法之美
如何把女神的黑白照片变成彩照?今日,数据汪发现新加坡 GovTech 数据科学与人工智能部门在 Medium 上介绍了一个为百年旧照上色的项目。
这个项目名为 Colourise.sg,最初是该团队(成员包括:定量分析师 Andrew Tan、软件工程师 Preston Lim、数据科学家 Tan Kai Wei)参加 hackthon 时为新加坡旧照做的深度学习上色工具。点击以下项目地址可以自己尝试给任意黑白照片上色。
项目地址:https://colourise.sg/#colorize
应用页面
具体效果如何呢?数据汪找了玛丽莲·梦露的经典照片尝试了一下,效果惊艳。
以下是从 Colourise.sg 图库中找到的效果对比图。
以及作者根据项目初衷作出的新加坡旧照上色前后的对比图。
原始黑白照片(左)和 Colourise.sg 生成的彩色照片(右)。照片为「新加坡华人女子学校」,摄于 1890-1920 年期间。美国国会图书馆 Frank and Frances Carpenter Collection 收藏。
看过对比图之后,我们发现有的照片效果惊艳,但有的照片效果并不好。作者表示,该配色工具的意义在于生成颜色看上去比较合理的照片。它不保证生成的彩色照片就是当时的真实颜色。此外,该项目也只是该研究领域的一角,其模型也并非是完美的。它在一些照片上表现很好,但在其它照片上可能不是。
所以,这个上色工具是如何做的呢?为什么其表现不太稳定?以下是作者在 Medium 上写的技术解读:
这项技术之前没有人做过吗?
可以说有,也可以说没有。
之前的确有人做过上色工具,但那些工具都不是专门针对新加坡历史背景的。
你可能会问,这有什么关系?以 Algorithmia 创建的彩色图像为例,Algorithmia 创建的图像色彩强度不够,可信度也不够高。
原始图像(左)和由 Algorithmia 创建的彩色图像(右)
新加坡老照片上色效果较差的一个主要因素可能是新加坡黑白照片和训练集之间差别太大。Algorithmia 使用的模型是用来自 ImageNet 的 130 万张图像训练而成的。ImageNet 由来自斯坦福大学和普林斯顿大学的研究人员创建,可能不包含与新加坡相关的图像。也就是说,模型可能无法学到旧时新加坡校园的真实颜色。
研究人员认为,针对新加坡老照片训练的工具也许能够生成比现有工具更逼真的彩色新加坡老照片。
如何给黑白旧照上色
在解释电脑程序如何上色之前,我们先来看一下人类如何给图像上色。
上色是一份非常耗时且对技能要求很高的工作。为了创建一张色彩协调的照片,人类着色师必须完成两项任务:
对照片的历史、地理、文化背景进行深入研究,以推断出合适的颜色;
用 Photoshop 等软件工具对黑白图像进行上色。
同样,计算机程序也需要完成两项任务:
识别黑白照片中的目标并基于之前见过的照片推断出适合目标的颜色;
给黑白照片上色
使用生成对抗网络进行上色
为了给黑白照片上色,我们运用了深度学习中已知的生成对抗网络技术。包括:
首先,使用具有大量数学参数(>2000 万)的「生成器」基于图像中的特征来预测不同像素黑白照片的像素值;
其次,用「判别器」来确定与原始彩色图像相比,生成照片的颜色是否逼真。
训练模型,直到判别器无法区分生成器生成的照片是否为真实的。训练模型的架构的简化视图如下所示:
用于上色的简化 GAN 架构
我们使用流行的 fast.ai 和 PyTorch 程序库开发模型,其架构和训练步骤受到 Jason Antic 的启发。我们基于一组超过 50 万张关于新加坡的旧照片的数据集进行训练,我们使用装有英伟达 V100 GPU 的本地 GPU 集群编译了这些照片。
在提升模型时我们还采取了一些其它措施,包括添加一些来自谷歌 Open Image V4 的照片(这主要是针对该模型做得不太好的身体部位,如模型难以识别的手、腿和手臂),修改学习率和批大小,从而取得更好效果。
将我们的深度学习模型部署为 web 端应用程序
至此,我们的深度学习模型位于办公室本地端的 GPU 集群上——这意味着,只有我们的团队可以使用 colouriser 模型。为使其他人可以使用 coloriser,我们必须在网络上部署这一模型。
我们将谷歌云作为 coloriser 云服务的供应商,其架构非常简单:
(1)CDN 提供 DDos 防护并缓存静态内容,
(2)NGINX 前端代理和静态内容服务器,
(3)负载平衡器负责流量分配,
(4)用英伟达 Tesla K80 GPU 支持 colouriser 服务,进行实际的上色操作。
Colourise.sg 架构图
上色过程属于计算密集型任务,完成一张图片大约花费 3 秒钟。照此,我们打算使用 NGINX 服务器将请求排至后端,从而屏蔽后端 colouriser 服务器。如果请求导入的速度远远超出后端服务器的操作能力,NGINX 服务器直接将状态响应返回至客户,请求用户再次尝试。
这一架构的关键点在于 colouriser 服务虚拟机能够对每台虚拟机所必须提供的流量做出自动调整。此举可以节省成本,其他虚拟机只在需要时开启。
结果
以下是我们最喜欢的一些生成结果,使用的训练照片来自纽约公共图书馆(New York Public Library)和新加坡国家档案馆(National Archives of Singapore)。这些原始照片均为黑白照片,对我们创建的彩色照片没有任何影响。
较好的生成结果
该模型在高分辨率照片上表现很好,这些照片突出了人类主体(人在照片中占很大比例)和自然景色。
下面的照片看起来很真实(至少对我们来说),因为它们包含一些在图像数据集中训练充分的目标。因此模型可以识别图像中的正确目标,并给它们准确上色。
「在巴东庆祝马来西亚日」——摄于 1963 年 9 月 16 日。图中为 Yang Di-Pertuan Negara Yusof Ishak 和联邦内部安全长官 Ismail bin Dato Abdul Rahman 拿督。新加坡国家档案馆馆藏照片(左),用 Colourise.sg 上色的照片(右)。
「内政和国防部长林金山在裕廊巴西拉峇军营举行的军官学员阅兵仪式上发表讲话」,摄于 1969 年 7 月 10 日。新加坡国家档案馆馆藏照片(左),用 Colourise.sg 上色的照片(右)。
「新加坡,康乐通道上行驶的汽车」。来自纽约公共图书馆。左为原始照片,右为加工后的照片。
「新加坡」,来自纽约公共图书馆。左为原始照片,右为加工后的照片。
趣事
当模型不能识别照片中的目标时,会发生一些有趣的事。
比如下面这张照片——「新加坡的日本投降者」。配色工具将一个士兵的拳头变成了红色,但其他士兵的拳头颜色是对的。这是因为,从照片拍摄的角度来看,模型不能确定那个紧握的拳头是真的拳头。所以它做出了最佳预测,但却没有猜对。
「新加坡的日本投降者」,摄于 1945 年 12 月 12 日。摄影师为皇家海军官方摄影师 Trusler C。帝国战争博物馆的原始照片(左),Colourise.sg 上色后的照片(右)。
下面这张照片也出现了这种情况。图为「财政部长 Dr. Goh Keng Swee 抵达直落布兰雅 Bata 鞋厂开业现场」。照片中最右边那个人的脸被染成了可怕的灰色,因为他半张脸被挡住了,所以模型无法识别该目标。
这种现象被称为「遮挡(occlusion)」,是计算机视觉的主要挑战之一。在这种情况下,目标识别算法无法识别被部分遮挡的目标。
「财政部长 Dr. Goh Keng Swee 抵达直落布兰雅 Bata 鞋厂开业现场」,摄于 1964 年 4 月 9 日。来自新加坡国家档案馆的原始照片(左)和 Colourise.sg 上色后的照片(右)。
更多照片
下面是更多效果比较好的照片。
「新加坡,马来女孩」,拍摄日期不详。来自纽约公共图书馆。左为原始照片,右为加工后的照片。
「新加坡」,拍摄日期不详。来自纽约公共图书馆。左为原始照片,右为加工后的照片。
「新加坡,牛在成堆的椰子壳中吃草」。来自纽约公共图书馆。左为原始照片,右为加工后的照片。
「新加坡 Jiksha 站」。来自纽约公共图书馆。左为原始照片,右为加工后的照片。
Twitter 网友把爷爷奶奶的黑白结婚照都翻出来了
该网站发布后引起了大量 Twitter 网友的转载,他们从各种渠道找到了一些早已淡出大众视野的老照片,有些还是自己祖父母的旧照。上色之后,这些照片上的人似乎又变得鲜活起来。
利用 Colourise.sg 给 1880 年的汤加(太平洋岛国)旧照上色。
网友惊呼利用 Colourise.sg 可以将黑白照片「秒变」彩照
网友利用 Colourise.sg 给自己祖父母的结婚照上色,惊呼「So so awesome」
网友利用 colourise.sg 技术给旧风景照上色,效果惊人。直呼:盘它!
转载请在公众号中,回复“转载”
版权归原作者所有,转载仅供学习使用,不用于任何商业用途
如有侵权请留言联系删除,感谢合作。
超模君准备了几份 数学思维好物
《超模定制笔记本》《数学原来会说谎》
《数学的故事》《简单微积分》......
免费 送给大家,参与就有机会获得
神还原女神照片!GAN为百年旧照上色相关推荐
- 神还原女神照片!GAN 为百年旧照上色
(给Python开发者加星标,提升Python技能) 转自:机器之心(ID:almosthuman2014) 一键点击,百年旧照变彩色. 如何把女神的黑白照片变成彩照?今日小编发现新加坡 GovTec ...
- GAN—为百年旧照上色
前言 Attention GAN 该项目的目的是为旧照片着色并将其修复.带自注意力机制的生成对抗网络.生成器是一个预训练 Unet,我将它修改为具有光谱归一化和自注意力.这是一个非常简单的转换过程.首 ...
- Github每日精选:超6k星的开源神器,一键还原百年老电影、黑白旧照片本色
1.DeOldify:一键还原百年老电影.黑白旧照片本色 DeOldify在Github一上线就爆火,目前已收获6000多星,可以让黑白老电影以及老照片复原其本色.该作者在GitHub中提到,DeOl ...
- python 3d图如何改变视角_2D变3D,视角随意换,神还原高清立体感,还是不用3D建模的那种 | 代码数据开源...
原标题:2D变3D,视角随意换,神还原高清立体感,还是不用3D建模的那种 | 代码数据开源 原标题:2D变3D,视角随意换,神还原高清立体感,还是不用3D建模的那种 | 代码数据开源 来源:量子位 O ...
- 通过PS神还原“宫崎骏”式的动漫真人效果
我们经常见到一些模仿日式漫画的照片,把人物放进漫画里面,营造一种动漫的真实感,宫崎骏是个造梦者,不管大人还是小孩,都沉浸在宫崎骏打造的动漫世界里,本篇教程通过PS带你走进宫崎骏的动漫世界,把自己的照片 ...
- pulse 去马赛克软件_细致到毛孔头发 神还原的高清大图!AI去马赛克新算法
AI人工智能技术近年来大热,尤其是在图像识别领域,大家很期待的一个功能就是AI去马赛克.美国杜克大学的研究人员日前发明了一种新的PULSE算法,它可以将低分辨图片变成高清图片,细致到毛孔.头发都能神还 ...
- 手把手教你上传女神照片到服务器
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View ...
- AI神还原苏东坡相貌,古画上的苏东坡“活”了
作为备受推崇的历史文化名人,苏轼从古自今可谓"圈粉"无数. 近日,网友根据古画,用AI技术还原了多幅画像上的苏东坡,还别出心裁搭配了古音诗歌朗诵. 速戳视频↓↓ 感受人工智能与古韵 ...
- GitHub 超 6800 Star!让你一键还原百年老电影、黑白旧照片本色
作者:三石 出处:新智元 黑白老照片上色已经不足为奇了,但是让黑白老电影还原彩色还是非常新鲜有趣的意见事情. 前不久,Twitter 上有一位小哥研究了一个名为 DeOldify 的工具,可以让黑白 ...
最新文章
- php mms,PHP代码示例_PHP账号余额查询接口 | 微米-中国领先的短信彩信接口平台服务商...
- 两个命令把 Vim 打造成 Python IDE
- 如何用windbg查看_eprocess结构
- php异常处理的深入
- python训练营朋友圈留言_用Python发一个高逼格的朋友圈【附代码】
- 想自学一种编程语言,各种编程语言都有什么区别?
- 【配置文件】Log4j
- wenbao与数论(大白书)
- Ubuntu alias在/etc/profile重启无效解决
- memset 和 fill 初始化数组
- 方法的创建、重载及递归调用
- 基于Java的学生管理系统
- NBU 备份系统详细操作手册之维护与安装
- Mybatis中文文档
- Java题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
- 微信小程序订单支付后端demo
- Chrome google浏览器从缓存下载视频
- 交错、反交错与IVTC —— 从入门到放弃
- C语言中文网 读后感
- darda oracle tfa_OSW - feiyun8616 - 博客园
热门文章
- 腾飞答不忘初心的三个问题
- 使用 OAS(OpenAPI标准)来描述 Web API
- ASP.NET Core Web API 最佳实践指南
- Bumblebee微服务网关之Url重写
- .Net Core Razor 预编译,动态编译,混合编译
- Akka系列---什么是Actor
- ArcGIS 10.2数字化线状要素时自动拼接成一条线
- 剑指offer之二叉树的高度
- Android之invalid address or address of corrupt block 0xabb494a0 passed to dlfree崩溃解决办法
- C++之extern和string的find函数和substr函数和data()函数使用总结