点击上方“视学算法”,选择加"星标"或“置顶”

重磅干货,第一时间送达

作者:David Berthelot、Peyman Milanfar、Ian Goodfellow

本文转载自:机器之心  |  参与:魔王、小舟

给出一张低分辨率图像,你可以用它做什么,用机器学习方法将它尽量恢复原貌?除此之外呢?近日,谷歌 David Berthelot、Peyman Milanfar,以及 Goodfellow 提出了一种名为 LAG 的生成器,可以基于一张低分辨率图像生成一组合理的高分辨率图像。

生成逼真图像是一件困难的任务,近来研究人员提出了很多处理该任务的方式。如果我们把这项任务限制在生成特定类别的图像,任务就会简单许多。也就是说,不用基于自然图像流形生成任意图像作为样本,而是从自然图像的特定「子空间」内采样图像,而这一过程由来自相同子空间的低分辨率图像指引

最近谷歌发表了一项研究,作者为谷歌研究院 David Berthelot、Peyman Milanfar,以及前谷歌大脑科学家、现苹果机器学习特殊项目组负责人 Ian Goodfellow。

  • 论文链接:https://arxiv.org/pdf/2003.02365.pdf

  • 代码地址:https://github.com/google-research/lag

该研究试图解决的问题与单张图像超分辨率问题接近,但又有区别。图像超分辨率问题是指从低分辨率(LR)图像中恢复高分辨率(HR)图像的过程,而该研究目的不在于此,它试图使用输入图像作为指引,生成一组合理的高分辨率图像。

具体而言,该生成采样框架仅使用输入(大概率是极低分辨率的图像)来指向网络应生成的样本类别。而且,该算法的输出不只是与输入相关的单张图像,而是基于自然图像流形采样得到的相关图像集合。

LAG 方法仅在对抗潜在空间中使用感知损失进行学习,无需像素损失

那么 LAG 效果如何呢?下图展示了该方法在人脸、卧室和教堂这三个类别上的图像生成效果:

研究贡献

LAG 方法旨在解决现有方法的基本缺陷,并做出了以下贡献:

  • 将输入图像建模为一组可能的图像,而不是单张图像,即建模了(低分辨率)输入图像的流形;

  • 学习单个感知潜在空间,来描述预测和真值之间的距离;

  • 分析条件 GAN(conditional GAN)和 LAG 之间的关系。

LAG 方法

给定一个低分辨率的输入图像 y,该研究希望预测出可能的高分辨率图像的感知中心 x。该研究提出将可能的高分辨率图像建模为随机向量 z(z ∈ R^n, z ∼ N (0, 1))。在该模型中,(y,z) 唯一地映射到一张高分辨率图像 x_z。该研究假设高分辨率图像 x 是在 z=0 的正态分布的中心点获得的。

训练所用的函数需要 (y,z) 来预测高分辨率图像 x_z。该研究采用 GAN 术语,将此函数 G 称为生成器:

该研究设计了 critic 函数,用于判断高分辨率图像 x 是否和低分辨率图像 y 相对应。该研究提出将 critic 函数 C 分解为两个函数:

  • 从图像到潜在空间 p 的投影 P;

  • 从该潜在空间到 R 的映射 F。

研究者将 p 称为「感知潜在空间」。将投影函数 P 定义为:

由 φ 和 ψ 参数化的 critic C: 是 F 和 P 的组成部分:

函数 G、P 和 F 都是用神经网络实现的。

LAG 实现细节:损失、条件和架构

该研究使用具有梯度惩罚(gradient penalty)的 Wasserstein GAN 损失。值得注意的是,使用 relativistic GAN 和谱归一化卷积也能得到不错的结果。不过,该研究没有穷尽所有可能的 GAN 损失选择(不在该论文研究范围内)。

研究者通过向 critic 提供低分辨率输入与真值的绝对差异来简化 critic 任务。即,计算

其中 x_z = G(y, z) 是生成的样本,H : R^x |→ R^y 是缩放算子,r 是颜色分辨率。缩放算子为高分辨率图像生成对应的低分辨率图像。研究者将缩放算子的输出四舍五入到最接近的颜色分辨率,在该案例中 r = 2/255。这种做法是为了避免网络不稳定。为了允许通过 rounding 操作进行梯度传播,该研究使用了 Hinton 的直通估计器(straight through estimator)[7]。

假设 stop gradient operation 为 sg,则直通估计器为:

这里,研究者并没有提倡某一个特定的神经网络架构,因为有很多潜在可用的实现。更新更好的架构层出不穷,LAG 应该与其他架构相适应。在实践中,研究者决定使用类似 EDSR 的残差网络。对于 critic,该研究使用了几乎一样的架构,但顺序是相反的。

该架构按照 [9, 19] 提出的方法训练得到。关于架构和训练细节,以及 TensorFlow 代码,参见 GitHub 项目。

LAG 的效果:生成逼真的图像合集

LAG 方法的主要优势在于不止生成一张图像,而是基于一张低分辨率输入图像生成一组合理的图像。也就是说,建模可能图像的集合,并预测位于其中心的图像,还能够基于 z ∼ N (0, 1) 的分布生成样本。

该研究用三个类别说明 LAG 方法的能力:人脸、教堂和卧室,还展示了该方法的跨类别生成图像能力。

图 1:对于不同的 z 值,基于 8x 下采样输入得到的生成图像示例。

图 2:对于不同的 z 值,基于 32x 下采样输入得到的生成图像示例。

镜像图像

在该实验中,研究者试图观察 LAG 网络跨类别生成图像的性能,即考虑给定图像及其镜像图像。

图 5:基于 16x 下采样输入得到的生成图像示例。

图 6:基于 16x 下采样输入得到的生成图像示例。

噪声和随机输入

出于完备性考虑,研究者在该实验中考虑了 LAG 网络对带噪声图像输入或仅包含噪声的输入图像的反应。

图 7:基于 32x 下采样输入得到的生成图像示例,输入图像具备噪声,且噪声逐渐增加。

欢迎给我"在看"!

高糊图片可以做什么?相关推荐

  1. 高糊图片可以做什么?Goodfellow等人用它生成一组合理图像

    本文转载自机器之心. 选自arXiv 作者:David Berthelot.Peyman Milanfar.Ian Goodfellow 机器之心编译 参与:魔王.小舟 给出一张低分辨率图像,你可以用 ...

  2. 对于一组给定的叶子结点_高糊图片可以做什么?Goodfellow等人用它生成一组合理图像...

    选自arXiv 作者:David Berthelot.Peyman Milanfar.Ian Goodfellow 机器之心编译 参与:魔王.小舟 给出一张低分辨率图像,你可以用它做什么,用机器学习方 ...

  3. 如何提升图片清晰度?有了这4个工具,高糊图片也能变清晰

    网上的图片经过多次传播,有的就不是很清晰了,想要提高图片清晰度,可以试试这5个好用的图片修复工具,简单易操作,上传图片就能一键变清晰! 1.Bigjpg 一个AI智能图片无损放大工具,使用方便,上传图 ...

  4. 做PPT怎么能少了素材!(收藏的高清图片素材网站一)

    要想PPT做的好,素材自然少不了,最近在学习PPT的过程中也收集了一些高清图片的素材网站,在这里跟大家分享一下. Pixabay:https://pixabay.com Pixabay这个是我比较喜欢 ...

  5. ECCV 2020 Oral | 可逆图像缩放:完美恢复降采样后的高清图片

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文介绍的是ECCV 2020 Oral论文<Inverti ...

  6. 高糊马赛克秒变高清,表情帝:这还是我吗?

    全世界有3.14 % 的人已经关注了 爆炸吧知识 来源:机器之心 参与:魔王.杜伟 有了这个工具,我们终于能够看到马赛克下的那张脸了. 给出一张高糊人脸照片,你能用它做什么? 杜克大学近期的一项研究可 ...

  7. ctf 改变图片高度_通过CRC32爆破修改图片的宽高 ctf-misc图片隐写

    ** 一.在处理图片隐写题的时候,可能会修改图片原有的宽高,导致图片里面的内容无法正常显示,那么怎么判断它的宽高是否被修改了呢? ** 1.把图片拖进010editor中会发现左下角提示CRC不匹配, ...

  8. 源代码src修改为本地图片_20 行 Python 代码批量抓取免费高清图片!

    前言 相信在你的工作中可能会经常用到PPT吧,你在PPT制作过程中有没有这样的困惑,就是可以到哪里找到既高清又无版权争议的图片素材呢?这里强烈推荐ColorHub,这是一个允许个人和商业用途的免费图片 ...

  9. PPT画图(或排版)后保存为高清图片(可自定义分辨率)

    (做个笔记) 第一次发paper,画图只会用PPT,然后复制再粘贴为图片,分辨率远远达不到期刊的要求.一审的时候被审稿人嫌弃"图丑","分辨率"不够.但是修改文 ...

最新文章

  1. service get list一般规范
  2. 《Linux编程》上机作业 ·003【Shell编程】
  3. NAS DIY的设计和实施过程-5-Openfiler篇
  4. Java机器学习开发库
  5. C++ 中的动态库和静态库(Windows)
  6. ASP.NET程序中常用的三十一种代码
  7. 【大数据部落】R语言基于决策树的银行信贷风险预警模型
  8. 如何免费制作支付宝微信合并收款二维码?
  9. Java 定时任务表达式
  10. Unity获取时间戳
  11. python爬虫实战--------搜狗微信文章(IP代理池和用户代理池设定----scrapy)
  12. 对于百度统计热力点击图的研究
  13. c语言求100以内偶数和while,c语言 求1到100以内的偶数之和
  14. 互联网络业的十大发展趋势
  15. 软件工程知识点复习第二章
  16. uva1593代码对齐
  17. Java用数组实现队列和循环队列
  18. Opencv(C++)笔记--模板匹配cv::matchTemplate()和最值计算cv::minMaxLoc()
  19. 服务器上搭建git仓库
  20. 残躯演绎完美爱情 浙江“轮椅夫妻”温暖千万网友

热门文章

  1. 如何教计算机认识手写数字(上)
  2. 利用C#语言实现小闹钟
  3. 【C++】用类来处理排序问题
  4. 使用CSDN-markdown编辑器
  5. 赠书 | 一文了解预训练语言模型
  6. 释放CPU,算力经济下DPU芯片的发展机遇
  7. 阿里再次主办大数据世界杯, KDD Cup2020正式开赛
  8. 一块GPU就能训练语义分割网络,百度PaddlePaddle是如何优化的?
  9. 2018 中国AI人才大调查:14张图表解读他们来自何处,又将去往何方?
  10. TensorFlow集成TensorRT环境配置