吴恩达斯坦福CS230第一名:图像超级补全,效果惊艳(附代码)-阿里云开发者社区

开发者社区> 新智元> 正文
登录阅读全文

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

简介: 图像修复是一个已经被广泛研究的计算机视觉问题,即恢复图像中缺失的部分。斯坦福大学CS230课程的Mark Sabini等人提出“Image outpainting”,比图像修复更进一步,能从一个图像片段“推断”出外延的部分,补全成整个画面。

【新智元导读】图像修复(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张图像用于验证

image

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

数据预处理:
给定图像,标准化成 [0,1] →
定义mask M:
定义补足的mask
计算的平均像素强度

堆叠
输出

方法

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

image


训练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损失

image

后处理:
将Io重整化为[0,255]→
使用泊松克隆(Seamless Cloning)来将和进行混合

模型

image

结构

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

image

Outpainting

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

image



Places365的MSE损失

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

image

本地标识符(Local Discriminator)

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

image



扩张(dilation)的影响

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

image



递归的outpainting

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

结论

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

用Keras实现Image Outpainting

在代码实现中,我们对256*256的图像进行了一些修改:
添加了Identity loss,即从生成的图像到原始图像
从训练数据中删除了patches(训练pipeline)
用裁减(cropping)代替了掩膜(masking)(训练pipeline)
添加了卷积层

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

image

Recursive painting

image

用Keras实现Image Outpainting

  1. 准备数据:

    image

  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
本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”。
原文链接:吴恩达斯坦福CS230第一名:图像超级补全,效果惊艳(附代码)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: