教程 | GitHub项目:利用不完整的数据样本补全不完整的图像

选自GitHub

机器之心编译

参与:刘晓坤、思源

大多数图像补完和生成模型需要完全被观察的样本来训练。但是,在 AmbientGAN 里,阐述了获取高分辨率样本对于一些应用来说是可能非常昂贵的或者是不切实际的。该 GitHub 项目结合了两篇论文 AmbientGAN 和 GLCIC 的思想,实现了用不完整图像样本训练的补全不完整图像的网络。

GitHub 地址:https://github.com/shinseung428/ImageCompletion_IncompleteData

这个 GitHub 项目里的模型融合了以下工作中的思想:

  • AmbientGAN(来自有损测量生成的模型)
  • Globally and Locally Consistent Image Completion(GLCIC,全局和局部一致的缺漏图像完整性技术)

AmbientGAN 使我们可以直接用有噪声或者不完整的样本来训练生成模型。模型的生成器可以成功地用测量函数从正确的分布里预测样本。

另一方面,GLCIC 一文里的模型用了完全被观察的样本来训练网络。补完网络首先用了 mse 损失来预训练权重,之后用了一个判别器损失以完整地训练模型。

把 AmbientGAN 和 GLCIC 文章里的思想结合以后,这个项目中的模型学习仅用不完整的数据来填充不完整的区域(例如:被随机用 28*28 大小补丁覆盖的地方)。你可以看到,一些生成区域是不完美的。这个模型生成的图像仍然有缺陷,一些区域的颜色也不连贯。

网络

方法

现在假定我们已经有不完整图片的样本,且我们知道添加到样本的噪声类型。我们可以使用加上掩码的图像作为补完网络(completion network)的输入而不是使用随机隐向量。假设补完网络成功生成了掩盖的区域,那么生成的图像块将使用掩码信息 X_g 与输入图像相结合。

随后,补完的图像 X_g 将会被馈送到度量函数中。如 AmbientGAN 原论文所述,度量函数将尝试模拟生成对象 X_g 上的随机度量。这很有可能实现,因为我们知道添加到完整图像的噪声类型。此外,我们也可以创建一个度量函数以模拟添加到图像中的噪声。

在将度量函数和不完整样本 Y_r 馈送到判别器以从假的度量方式中鉴别出真正的度量方法,最后可生成图像 Y_g。在补完网络和判别网络进行对抗性的训练后,补完网络学习到如何生成图像块以补完不完整样本的确实部分。

数据集

该项目最终使用 CelebA 数据集。为了创建不完整图像的数据集,我们将原版的 CelebA 图像居中剪裁为 32*32 的图像块,并调整尺寸为 64*64,然后将 28*28 的空白图像块(图像块的值填充为 1)随机添加到图像中。

项目效果

论文:AmbientGAN: Generative models from lossy measurements

论文地址:https://openreview.net/forum?id=Hy7fDog0b

摘要:生成模型提供了一种对复杂分布的结构进行建模的方法,并已被证明在很多现实任务中很有用。然而,目前的训练生成模型的技术需要访问充分观测的样本。在很多设置中,获得充分观测的样本是代价昂贵的甚至不可能完成的,但是从部分的、带噪声的观测中获取样本则是经济的。我们考虑了仅给定从感兴趣分布得到的样本的有损耗测量来学习隐式生成模型的任务。我们证明真实的潜在分布可以被实证地恢复,即使每个样本都存在信息损耗时也可行(根据特定的测量模型)。基于此,我们提出了一种训练生成对抗网络的新方法,称为 AmbientGAN。在三个基准数据集上,我们用不同的测量模型证明了该模型无论定性上还是定量上都能获得大幅提升。用我们的方法训练的生成模型可以获得 2-4 倍于基线模型的性能。

论文:Globally and Locally Consistent Image Completion

论文地址:http://hi.cs.waseda.ac.jp/~iizuka/projects/completion/en/

摘要:我们在本文中展示了一种新的图像补完的方法,可以在图像中获得局域的和全局的一致性。利用一个全卷积神经网络,我们可以通过填充任意形状的缺失区域对任意分辨率的图像补完。为了训练该图像补完网络获得一致性,我们使用了全局的和局域的语境判别器(分辨真实图像和被补完的图像)。全局判别器观察完整的图像以评估它是否整体上一致,而局域判别器仅观察中心位于补完区域的小块区域以确保生成补丁的局域一致性。然后图像补完网络被训练以欺骗这两个语境判别器网络,即它需要生成和真实图像无法区分的无论是整体还是细节上都保持一致性的图像。我们证明了该方法可以用于补完大量类型的。此外,和基于补丁的方法(例如 PatchMatch)不同的是,我们的方法可以生成在图像其它地方不存在的碎片,这使得我们可以自然地用熟悉的和特定的结构(例如人脸)补完物体的图像。

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-02-22

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Petrichor的专栏

论文阅读: R-FCN

由上表易知,R-FCN就是为了 解决 不共享的proposal处理过程 而诞生的。

28230
来自专栏机器之心

教程 | 手把手教你可视化交叉验证代码,提高模型预测能力

选自KDNuggets 机器之心编译 参与:刘晓坤、路雪 本文介绍了如何使用K折交叉验证提高模型预测能力,并对代码进行了可视化。 我们试着利用代码可视化来提高模...

424140
来自专栏红色石头的机器学习之路

台湾大学林轩田机器学习技法课程学习笔记9 -- Decision Tree

上节课我们主要介绍了Adaptive Boosting。AdaBoost演算法通过调整每笔资料的权重,得到不同的hypotheses,然后将不同的hypothe...

27800
来自专栏云时之间

深度学习与TensorFlow:FCN论文翻译

这篇论文跟上一篇的VGG论文一样,在深度学习领域同样的经典,在2015年的CVPR,该论文拿到了best paper候选的论文,在之后的PASCAL VOC20...

35020
来自专栏marsggbo

论文笔记系列-Efficient Neural Architecture Search via Parameter Sharing

本文提出超越神经架构搜索(NAS)的高效神经架构搜索(ENAS),这是一种经济的自动化模型设计方法,通过强制所有子模型共享权重从而提升了NAS的效率,克服了NA...

61820
来自专栏AI深度学习求索

弱监督语义分割算法|AE-PSL算法对抗性擦除最具有判别性区域

这是一篇有趣的弱监督语义分割算法,最有趣的在什么地方呢?它通过将图片中最重要的、最具有判别性的部分擦除了,从而来得到次判别性区域,不明白他为什么会舍弃最好的而求...

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

支持向量机(SVM)--(4)

回忆:在上一篇文章中我们谈到为了使支持向量机能够处理非线性问题,进而引进核函数,将输入空间的输入数据集通过一个满足Mercer核条件的核函数映射到更高...

33160
来自专栏专知

【最新TensorFlow1.4.0教程03】利用Eager Execution构建和训练卷积神经网络(CNN)

【导读】主题链路知识是我们专知的核心功能之一,为用户提供AI领域系统性的知识学习服务,一站式学习人工智能的知识,包含人工智能( 机器学习、自然语言处理、计算机视...

42050
来自专栏机器之心

学界 | 旷视&清华大学提出新型两步检测器Light-Head R-CNN

34460
来自专栏机器之心

入门 | 如何通过梯度检验帮助实现反向传播

14050

扫码关注云+社区

领取腾讯云代金券