当前位置: 代码迷 >> 综合 >> 【李宏毅2020 ML/DL】P81 Generative Adversarial Network | Intelligent Photo Editing
  详细解决方案

【李宏毅2020 ML/DL】P81 Generative Adversarial Network | Intelligent Photo Editing

热度:4   发布时间:2024-02-08 09:39:22.0

我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

这是我的李宏毅老师 GAN 系列第8篇笔记,GAN 系列:

  • 1:Basic Idea
  • 2:Conditional GAN
  • 3:Unsupervised Conditional Generation
  • 4:Theory behind GAN
  • 5:fGAN: General Framework of GAN
  • 6:Tips for improving GAN
  • 7:Feature Extraction

本节内容综述

  1. 本节讲解修图的例子。
  2. Modifying Input Code ,如何找出我们输入的信息每一个元素对应的特征都是什么呢?
  3. 可以使用 GAN + Autoencoder 。
  4. 李老师又找了个 Demo ,“智能 photoshop”。并且介绍了其 Basic Idea 。
  5. 还可以用于将图像变得清晰。见 Image super resolution 。此外还有技术比如 Image Completion 。

文章目录

  • 本节内容综述
  • 小细节
      • Modifying Input Code
        • GAN + Autoencoder
      • Basic Idea
        • Back to z
        • Editing Photos
      • Image super resolution

小细节

Modifying Input Code

GAN + Autoencoder


如上,我们已经有了一个 Generator ,把其作为 Decoder ,固定,前面接一个 Encoder (其参数可以用 Discriminator 参数来初始),这样就可以从生成的图片x反推对应什么代码z

如上,两个集合,长发与短发,分别得到其对应的 code ,然后分别求平均,这样就可以得到一个向量 z l o n g z_{long} ,用于长短发间的转换。

Basic Idea


如上,让数据在 code space 上做一个小小的移动。

Back to z


如上,让图片转换回 code 有许多方法:

  • 方法一: z ? = a r g min ? z L ( G ( z ) , x T ) z^*=arg\min_zL(G(z),x^T) ,使用梯度下降找到最合适的 z ? z^*
  • 方法二:使用 auto encoder ;
  • 方法三:方法一、二结合。

Editing Photos


此外,如果我们为画面增加一笔(如上图红色笔画),Editing Photos 中 z ? z^* 该如何表示呢?这里有三个约束:

  • 这个 z 要满足与这一笔有关联;
  • 这个 z 与原图像的 z 0 z_0 不能太远;
  • 这个 z z 应该真实。

Image super resolution


如上,使用 GAN 在细节处也能在绘制出清晰的图片。

  相关解决方案