本文转载自机器之心。

选自arXiv

作者:David Berthelot、Peyman Milanfar、Ian Goodfellow

机器之心编译

参与:魔王、小舟

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

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

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

该研究试图解决的问题与单张图像超分辨率问题接近,但又有区别。图像超分辨率问题是指从低分辨率(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 下采样输入得到的生成图像示例,输入图像具备噪声,且噪声逐渐增加。

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

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

END

备注:GAN

GAN

生成对抗网络、GAN等技术,

若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

高糊图片可以做什么?Goodfellow等人用它生成一组合理图像相关推荐

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

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

  2. 高糊图片可以做什么?

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:David Berthelot.Peyman Milanfar ...

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

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

  4. AI技术 | PIFuHD-由高清图片生成3D人物模型对BIM的启示

    AI技术 | PIFuHD-由高清图片生成3D人物模型对BIM的启示 AI技术 | PIFuHD-由高清图片生成3D人物模型对BIM的启示 AI技术 | PIFuHD-由高清图片生成3D人物模型对BI ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 设计模式学习每天一个——Factory模式 和 Abstract Factory模式
  2. 一张图看懂阿里云网络产品【十五】IPv6 解决方案
  3. 八、深入Go 编程语言接口
  4. c语言求标准体重答案,C语言标准体重测试程序,请大家帮我看下,我的代码哪错了?...
  5. css textarea行数_限制textarea中的行数并使用jQuery显示行数
  6. webserver之使用数组实现阻塞队列
  7. linux下iptables的编译及简单使用
  8. 苹果电脑win10蓝牙音响卡顿_Macbook Pro 2017安装win10以后蓝牙鼠标卡顿
  9. DMA控制器原理详解
  10. Lena,Pepper等图像,图像处理必备资料。
  11. 最简单的三极管音频放大电路
  12. C语言编程练习:定义判断素数函数int isPrime(int n);若n是素数返回1,否则返回0。调用isPrime函数,输出2~1000之内所有素数,按一行10个素数形式输出。
  13. hub设备_小米生态链爆品开箱,50W闪充加持,HUB扩展解锁电源新技能
  14. excessive cpu 优化杀进程解决方案 android P
  15. 一文看懂推荐系统:概要01:推荐系统的基本概念
  16. 《利用python进行数据分析》第二版 第13章-Python建模库介 学习笔记
  17. java运算符与数字分解,看完对java更加有信心了(主除以和取余的理解)
  18. 全国高校2022年经费预算排名(前150名)
  19. idea ctrl+alt+向左箭头不能用
  20. Cocos Creater 敏捷开发之插件开发

热门文章

  1. 统计学习方法笔记(李航)———第五章(决策树)
  2. UML与需求分析进阶
  3. 将汇编语言翻译成C语言,如何把汇编语言转换成C语言
  4. java程序样例_一个完整的java程序示例
  5. linux timespec 链接库,Linux内核 timespec_sub()
  6. java将生成数据写入文件_JAVA-将内容写入文件并导出到压缩包
  7. 中职计算机高考总分是多少,高考理科总分是多少分
  8. html表格添加选项代码,使用实例演示 表单 中的选项卡功能 在里面添加table id=bootstrap-table/table后不显示表格...
  9. 德州python培训_人工智能在多人桌德州扑克比赛中战胜世界顶尖选手
  10. php 输出mysql查询结果_php如何输出mysql查询结果