前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >吴恩达斯坦福CS230第一名:图像超级补全,效果惊艳(附代码)

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

作者头像
新智元
发布2018-08-01 11:19:20
8550
发布2018-08-01 11:19:20
举报
文章被收录于专栏:新智元

新智元推荐

作者: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.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档