高糊图片可以做什么?

共 3079字,需浏览 7分钟

 ·

2021-04-19 10:20

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自:视学算法

出一张低分辨率图像,你可以用它做什么,用机器学习方法将它尽量恢复原貌?除此之外呢?近日,谷歌 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:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 30
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报