吴恩达斯坦福CS230第一名:图像超级补全,效果惊艳(附代码)


新智元推荐

作者:Mark Sabini、Gili Rusak

编辑:肖琴、三石

【新智元导读】图像修复(Image inpainting)是一个已经被广泛研究的计算机视觉问题,即恢复图像中缺失的部分。斯坦福大学CS230课程的Mark Sabini等人提出“Image outpainting”,比图像修复更进一步,能从一个图像片段“推断”出外延的部分,补全成整个画面。这篇论文获得了CS230期末poster的第一名,效果非常惊艳。

代码和论文地址:

https://github.com/bendangnuksung/Image-OutPainting

https://cs230.stanford.edu/projects_spring_2018/posters/8265861.pdf

这是Painting Outside the Box: Image Outpainting 这篇论文的代码实现。这篇论文在吴恩达的斯坦福大学CS230课程中获得了期末Poster的第一名。

图像修复(Image inpainting)是一个已经被广泛研究的计算机视觉问题,涉及恢复图像中缺失的部分。

目前最先进的图像修复方法方法包括Satoshi Iizuka等人在SIGGRAPH 2017提出的基于GAN的方法[1],以及NVIDIA的Guilin Liu等人提出的基于CNN的方法[2]。

在这个研究中,我们的目标是将[1]的方法拓展到修复图像之外的部分(outpainting),即补全超出图像边界的画面。

通过递归地进行outpainting,可以任意地扩展图像。

问题描述和数据准备

给定一幅 m × n 的源图像

,生成一幅 m × (n + 2k) 的图像

,其中

处于

的中心

要看起来真实而且自然

要解决的问题是:m=128,n=64,k=32

数据

baseline图像:128×128的RGB城市图像

数据集:Place365-Standard [3]

  • 包含36500张256×256的RGB图像,被降低采样到128×128
  • 100张图像用于验证

Place365数据集中城市图像的样本

数据预处理:

  • 给定图像

,标准化成 [0,1] →

  • 定义mask M:
  • 定义补足的mask
  • 计算

的平均像素强度

  • 堆叠
  • 输出

方法

训练Pipeline:

  • 使用与文献[1]类似的DCGAN结构(G,D);
  • 给定Itr,进行预处理来得到In和Ip;
  • 运行G(Ip)来得到outpainted的图像Io;
  • 在Io和ground-truth In上运行D;

训练Schedule:

  • 用于调节G和D的三阶段训练;
  • 阶段i:使用Adam(Ir=0.0001,β1=0.9,β2=0.999,ε=10-8)在迭代Ti中优化损失(i);
  • 在18:2:80的分片中选择T1,T2,T3
  • α=0.0004控制MSE损失

后处理:

  • 将Io重整化为[0,255]→
  • 使用泊松克隆(Seamless Cloning)来将

进行混合

模型

结构

除了G和D的最后一层之外,每一层都是ReLU。G和D的输出是Sigmoid函数。其中,η是伸缩因子(dilation factors)。

Outpainting

验证集中保留图像样本的修复结果,与原始ground-truth一起显示。模型训练了100个时段(相当于227,500次迭代),批量大小为16。

Places365的MSE损失

在Place365中训练MSE损失。不同阶段的背景颜色是不同的。在阶段3中,由于将联合损失(joint loss)进行了优化,MSE损失有小幅度增长。

本地标识符(Local Discriminator)

使用本地标识符进行训练,减少了垂直条带并提高了色彩保真度,但是增加了artifact和训练时间。

扩张(dilation)的影响

网络的训练在城市图像上过拟合了。在扩张不足的情况下,由于接受域有限,网络无法outpaint。

递归的outpainting

在扩展和填充之后,可以将图像输入到网络中。递归地将这个过程进行重复操作,将图像的宽度扩大到3.5。正如期望的那样,噪声随着连续迭代而混合。

结论

  • 最终实现了图像的outpainting;
  • 三阶段的训练有助于其稳定性;
  • 对于outpainting,扩张卷积对充分的神经元接受域至关重要
  • 虽然会伴随噪声和误差,但对outpainting进行递归是可行的。

用Keras实现Image Outpainting

在代码实现中,我们对256*256的图像进行了一些修改:

  • 添加了Identity loss,即从生成的图像到原始图像
  • 从训练数据中删除了patches(训练pipeline)
  • 用裁减(cropping)代替了掩膜(masking)(训练pipeline)
  • 添加了卷积层

结果

模型用海滩的数据训练了200 epochs。

Recursive painting

用Keras实现Image Outpainting

1. 准备数据:

2. 构建模型

  • 要从头开始构建模型,你可以直接运行’outpaint.ipynb',或
  • 你可以下载训练完成模型,并将其移到“checkpoint/”,然后运行它。

模型下载地址:

https://drive.google.com/file/d/1548iAtsNf3wLSc1i5zYy-HX8_TW95wi_/view?usp=sharing

Reference:

[1] S. lizuka, E. Simo-Serra, and H. Ishikawa. Globally and Locally consistent image completion. ACM Transactions on Graphics (TOG), 36 (4) : 107, 2017.

[2] G. Liu, F. A. Reda, K. J. Shih, T.-C. Wang, A. Tao, and B. Catanzaro. Image inpainting for irregular holes using partial convolutions. arXiv preprint arXiv:1804. 07723, 2018.

[3] B. Zhou, A. Lapedriza, A. Khosla, A. Oliva, and A. Torralba. Places : A 10 milLion image database for scene recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017.

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2018-07-30

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

R语言与机器学习(分类算法)支持向量机

说到支持向量机,必须要提到july大神的《支持向量机通俗导论》,个人感觉再怎么写也不可能写得比他更好的了。这也正如青莲居士见到崔颢的黄鹤楼后也...

36840
来自专栏机器之心

教程 | 如何用30行JavaScript代码编写神经网络异或运算器

选自Medium 机器之心编译 参与:Panda 配置环境、安装合适的库、下载数据集……有时候学习深度学习的前期工作很让人沮丧,如果只是为了试试现在人人都谈的深...

29290
来自专栏机器学习算法与Python学习

SVM大解密(附代码和公式)

22650
来自专栏人工智能头条

SVM大解密(附代码和公式)

24520
来自专栏深度学习那些事儿

我的模型能跑多快——神经网络模型速度调研(一)

对于神经网络,我们更多谈的是其精度怎么样,有百分之零点几的提升。但是如果谈到速度的话,深度学习神经网络相比于传统的算法来说,速度恐怕没有那么快了。

68110
来自专栏大数据挖掘DT机器学习

TensorFlow和深度学习入门教程

前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络,并把其PPT的参考学习资料给了我们, 这是codelabs上的教程:《Tensor...

38760
来自专栏机器之心

资源 | MIT提出Matlab插件mNeuron:实现深度模型神经元的可视化

选自MIT 机器之心编译 参与:黄小天、Smith 近日,麻省理工学院(MIT)Antonio Torralba 等人发表了一篇题为《mNeuron:...

37960
来自专栏Coding迪斯尼

手算梯度下降法,详解神经网络迭代训练过程

21740
来自专栏PaddlePaddle

转载|使用PaddleFluid和TensorFlow实现图像分类网络SE_ResNeXt

视觉(vision)、自然语言处理(Nature Language Processing, NLP)、语音(Speech)是深度学习研究的三大方向。三大领域各自...

17130
来自专栏ATYUN订阅号

【实践】伪造名人的脸—做一个小示例了解生成式对抗网络

生成式对抗网络(GAN)的概念由Ian Goodfellow提出。Goodfellow使用了艺术评论家和艺术家的比喻来描述这两个模型比喻发生器和鉴别,它们组成了...

40540

扫码关注云+社区

领取腾讯云代金券