栗子 晓查 发自 凹非寺 
量子位 出品 | 公众号 QbitAI

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

你需要一位PS高手。

或者,一只AI。

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

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

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

 蓝色轮廓是猜的

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

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

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

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

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

描边大法的胜利

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

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

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

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

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

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

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

选手们的表现是这样的:

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

有趣的用法

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

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

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

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

停,换一个思路。

把两张图拼起来怎么样?

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

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

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

AI小画家:先构图后上色

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

传送门

开源PyTorch实现:
https://github.com/knazeri/edge-connect

论文地址:
https://arxiv.org/abs/1901.00212

另外,图像修补这件事儿,PS大厂Adobe、显卡大厂英伟达都很喜欢,量子位之前介绍过他们的成果:

P图,还是阿逗比厉害(DeepFill v1和v2)

论PS的功力,英伟达的AI这次谁也不服

加入社群

量子位AI社群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;

此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。

进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

诚挚招聘

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

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

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

喜欢就点「好看」吧 !

女神被打码了?一笔一划脑补回来,效果超越Adobe | 已开源相关推荐

  1. 小小音形之超强快码和五笔整句输入法

    小小快码是一款基于小小输入法平台制作的两笔输入法.是在小小音形的基础修改,用了付东升老师的超强快码7.1.3编码方案.又加入了五笔字型,五笔也可以整句输入了,快码I键(型码),五笔Z键(拼音)可以查询 ...

  2. 一笔一划教你写一签名

    首语:很多人都想可以有人把自己的名字可以找到[一笔一划教你写一签名]的大师,网上可能也有软件,但是应该不是手写的,今天咱们就来说说手写的一笔一划教你写一签名.希望可以帮助大家解决问题! 一笔一划教你写 ...

  3. php生成动态笔画字体,怎么制作手写文字的动画效果视频 文字一笔一划写出来的动画效果制作...

    有到了令人高兴的周五,是的没错,明天又可以各种浪了!不过呢,今天还是要好好工作好好学习滴!那么今天就分享一个好玩的文字动画制作方法给大家.这是一种很简单的文字动画效果,看上去就像是文字是由某人的手一笔 ...

  4. java 一笔一划 写汉字_基于Web的汉字一笔一划书写方法

    基于Web的汉字一笔一划书写方法 [技术领域] [0001]本发明属于汉字文化数字化技术领域,特别涉及一种基于Web的汉字一笔一划的书写展示方法. [背景技术] [0002]21世纪是人类信息数字技术 ...

  5. 还不错的全民采矿小程序源码+代码已开源

    正文: 还不错的全民采矿小程序源码+代码已开源,可配合流量主和激励视频,程序是单开版的,一个站点只能单个平台使用此应用,一个小程序使用此应用. 下方图片是小程序工具介绍: 下方是程序介绍: 程序: l ...

  6. php导购系统,php源码:鱼福CMS淘客导购系统V1.2–免费开源

    程序介绍: 后台用户名:admin888 后台密码:admin888 程序下载站点: 以下站点由 带数据V1.2版本:百度网盘下载 不带数据V1.2版本: V1.1升级到V1.2升级包20131118 ...

  7. java 一笔一划 写汉字_让PPT一笔一划演示汉字书写

    经常想起小时候学写字的情景:慈爱的老师在黑板上一笔一划地写着神秘的汉字,并一遍一遍地强调着先写这一笔,后写那一划.对书写顺序不正确的小朋友耐心地指导纠正.而现在已经进入多媒体教学时代,如何用计算机实现 ...

  8. 在线直播系统源码,横向无限循环滚动的单行弹幕效果

    在线直播系统源码,横向无限循环滚动的单行弹幕效果实现的相关代码 实现思路分析 要实现上面的效果,我们先拆分下实现要素: 1.弹幕布局是从屏幕的右侧向左侧滚动,单个弹幕之间的间距是固定的(设计要求) 2 ...

  9. java 一笔一划 写汉字_怎么用Powerpoint制作一笔一划汉字书写

    经常想起小时候学写字的情景:慈爱的老师在黑板上一笔一划地写着神秘的汉字,并一遍一遍地强调着先写这一笔,后写那一划.对书写顺序不正确的小朋友耐心地指导纠正.而现在已经进入多媒体教学时代,如何用计算机实现 ...

最新文章

  1. k8s实战之数据卷(volume)
  2. Java实现 String类型的ip与整数之间的相互转换(2021.8.1百度提前批面试题)
  3. 巴克码相关器的verilog HDL设计
  4. vue函数如何调用其他函数?_从源码中学Vue(一)生命周期中的钩子函数的那点事儿...
  5. linux 解压所有以zip结尾的文件_在 Linux 上压缩文件:zip 命令的各种变体及用法...
  6. Request转发---应用
  7. 汇编语言EQU伪指令
  8. 有时候,爱就是那么简单
  9. C++在数字向量中找到出现奇数次的数字的算法实现(附完整源码)
  10. ORA-02287: sequence number not allowed here
  11. 关于JSON CSRF的一些思考
  12. 由.def文件生成lib文件[转]
  13. 介绍一下再Apache下的Tomcat负载均衡的一些使用问题
  14. 知网又火了!续订费近千万且连年上涨 中科院:不堪重负 停用
  15. Drools 7.x Rate算法
  16. 使用Python教你秒搭本地服务器
  17. 【草莓音乐节】现场美女大放送
  18. 【文献阅读】大脑中与音乐体验和与音乐错误(冲突)监测相关的神经激活
  19. SAP ABAP BOM 创建 CSAP_MAT_BOM_CREATE 多备选BOM
  20. 腾讯资深架构师干货总结:一文读懂大型分布式系统设计的方方面面

热门文章

  1. ofo 回应假装老外秒退押金;董明珠雷军十亿赌约到期;高通苹果摩擦再升级 | 极客头条...
  2. C++ 17 标准正式发布:终于能更简单地编写和维护代码了!
  3. 那些坑爹的老代码,究竟改还是不改?!
  4. c语言作业统计字符,C语言统计字符数(示例代码)
  5. linux网卡配置文件中2个ip,Linux Centos 7系统中如何一个网卡配置多个IP
  6. python重定向反爬虫_高效实用http爬虫代理ip之盘点一些网站的反爬虫机制
  7. java重装机兵机甲咆哮_重装机兵之机甲咆哮流程攻略
  8. python异步调用shell_Jenkins pipeline中优雅的执行shell/python/groovy脚本
  9. python写入文件不覆盖_Python第7课:不一样的新建文件
  10. wepack中loader的分类