栗子 晓查 发自 凹非寺

量子位 出品 | 公众号 QbitAI

illustrator 脊椎文字效果(一笔一划脑补回来)(1)

女神的照片花得像个二维码,心不心痛,着不着急?

你需要一位PS高手。

或者,一只AI。

illustrator 脊椎文字效果(一笔一划脑补回来)(2)

上面这个毫不违和的修复成果,就出自一个今年新诞生的图像修补算法之手。

illustrator 脊椎文字效果(一笔一划脑补回来)(3)

和完好的原图比一比,还原度99 %,一眼望去,都是安吉丽娜·朱莉。

和从前的图像修复AI不同,它在补图的时候没指望一步登天:

illustrator 脊椎文字效果(一笔一划脑补回来)(4)

蓝色轮廓是猜的

而是先勾出残存部分的轮廓,再猜出整张图的轮廓,最后把颜色填进去。

这个算法来自加拿大的安大略理工大学,叫做EdgeConnect,修复效果甚至超越了Adobe登上CVPR 2018的算法。

另外,名义上是修复图像,事实上可以有很多有趣的用法。先举一个栗子为敬:

illustrator 脊椎文字效果(一笔一划脑补回来)(5)

你不想看到哪个人,用橡皮擦一擦,他就融化在背景里。

不过,最重要的是,它已经开源了。

描边大法的胜利

先集中观察一下修补效果。

首先,是人类与人类最好的朋友:

illustrator 脊椎文字效果(一笔一划脑补回来)(6)

人类的朋友变成了大小眼,除此之外一切近乎完美,顺便让金发妹子的苹果肌立体了一些。

然后,是人文景观与大自然:

illustrator 脊椎文字效果(一笔一划脑补回来)(7)

一切恢复了安静祥和,与橡皮擦侵袭之前的景象,并没有太大的不同。

只是最后这一张,牛顿的棺材板悬空的柱子,不知道能支撑多久。但对一只没有学过经典力学的AI来说,也是合理的修复方案了。

跟原图比过之后,再和其他图片修复选手比一场。其中一道题是:

illustrator 脊椎文字效果(一笔一划脑补回来)(8)

选手们的表现是这样的:

illustrator 脊椎文字效果(一笔一划脑补回来)(9)

其中,c是Adobe团队入选CVPR 2018的方法,e和f是本文的描边大法。

有趣的用法

有了这样优质的方法,当然要拓展一下用途才好。

就像开头提到的,把抢镜的人类踢出去,是其中一种思路。

想把眼镜摘掉的话,也是同样的道理:

illustrator 脊椎文字效果(一笔一划脑补回来)(10)

要让两座山看起来更般配,还是这个思路:

illustrator 脊椎文字效果(一笔一划脑补回来)(11)

停,换一个思路。

把两张图拼起来怎么样?

比如有两只木屋,一个像夏天,一个像冬天。

illustrator 脊椎文字效果(一笔一划脑补回来)(12)

把夏天的左边和冬天的右边拼到一起,夏天的画风,便可以温暖冬天的冷。

两个肤色不同、脸型不同的妹子,也可以合体:

illustrator 脊椎文字效果(一笔一划脑补回来)(13)

AI小画家:先构图后上色

如果说以前那些修补图像的GAN只是用训练数据填充,那EdgeConnect就是在模仿画家的思路。

画家作画时,总是先把不同物体、不同颜色的部分用线条分割开来。先用线条构图,然后再填充颜色。

以前面的花瓣为例,以前的算法在恢复图片时边缘出现了扭曲,因为它们只是对图像进行平滑过渡或者模糊处理,所以在色差变化明显的边缘不能很好地与背景区分。

但是,一张图中不止有颜色变化平滑的部分,也包含不同颜色区域的边缘。以往的GAN难以准确地重建这些物体边缘。

而EdgeConnect是先把图片已知部分转换成一幅“白描画”,用神经网络补全残缺的笔画,然后在此基础上填充颜色。

EdgeConnect将图像修复模型分为两大部分:边缘生成器(edge generator)和图像补全网络(image completion network)。

illustrator 脊椎文字效果(一笔一划脑补回来)(14)

边缘生成器的作用,就是脑补缺失区域里物体的描边,生成幻觉边缘(hallucinated edges)。

要脑补空白部分的描边,直接输入残缺的彩色照片是不行的。需要先用边缘探测器 (Edge Detector) 把照片变成不完整的白描稿,再让生成器把这它补全。

探测器观察的是已知区域。它对色彩区分越仔细,给已知区域描出的边缘线,就越密集。

illustrator 脊椎文字效果(一笔一划脑补回来)(15)

黑线是描的,蓝线是脑补的 (不适用于下图)

已知区域的线条密了,边缘生成器为空白部分脑补的边缘线,也就密了。

illustrator 脊椎文字效果(一笔一划脑补回来)(16)

σ越小,探测越灵敏,脑补线条越密集

而线条过于稀疏的话,图像修复的质量就不会太好 (比如,只描出了右眼的轮廓↑↑↑) 。

那么,如果一条边缘线也没有呢:

illustrator 脊椎文字效果(一笔一划脑补回来)(17)

AI几乎是完全依赖从前见过的人脸特征,想象出一张脸来。额头显得有些空旷了。

完成白描图以后,我们就能给图片上色,这一步类似于之前Philip Isola等人提出了的条件GAN框架pix2pix

如果你还有印象,应该记得它能把抽象的简笔画变成一只可爱的猫咪。

illustrator 脊椎文字效果(一笔一划脑补回来)(18)

而图像补全网络与pix2pix不同之处在于,除了补全的边缘信息外,它还有一个残缺的彩色图像作为输入。

图像补全网络能根据已有的色彩信息,预测出缺失区域的颜色,并且要保证颜色变化不至于太突兀。

除了以上两个部分外,EdgeConnect还包含一个端到端的可训练网络,作用是结合前面的边缘生成和图像补全,进一步填补缺失区域的细节。

传送门

开源PyTorch实现:

https://github.com/knazeri/edge-connect

论文地址:

https://arxiv.org/abs/1901.00212

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

,