《深度学习原理与TensorFlow实践》学习笔记(四)

本文介绍了深度学习在图像风格化中的应用,重点探讨了CNN如何量化图像风格并进行风格化,包括内容损失和风格损失的定义。此外,还简单概述了生成对抗网络(GAN)的基本思想、框架和应用场景,并提供了相关资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CNN应用之图像风格化实例

Image Style Transfer Using Convolutional Neural Networks (CVPRR16) [PDF]

如何量化风格
  • 图像风格化:运用深度学习的方法将普通图片与艺术作品进行融合,使普通照片具有名画的画风
  • 什么是画风呢?色彩?笔触?在CNN应用中则定义为可以捕捉的纹理
  • 纹理提取:
    • 通过反卷积重建(风格重建和内容重建),可以查看VGGNet不同层次提取的纹理特征。
    • 风格重建:浅层(a、b、c层)纹理较细密,深层图案更完整(风格信息保留,内容信息丢失)。
    • 内容重建:浅层(a、b、c层)更接近原图,深层像素细节信息丢失,但保留了内容信息。
      @VGG网络在风格和内容量化提取中的作用
      Markdown
  • 图像风格化目标:

    • 根据风格和内容的量化指标,合成图需要在内容维度上逼近照片,在风格维度上逼近绘画。
    • Gatys 等人利用预先训练好的 VGGNet 来提取图片中内容和风格的数值化特征,然后定义了一种特殊的损失函数来评估合成图片符合“风格”的程度,然后再使用 SGD 的方法不断修正合成图的各个像素以使损失值变小。
  • 代价函数定义:

    • 由内容损失和风格损失构成: Ltotal(p⃗ ,a⃗ ,x⃗ )=αLcontent(p⃗ ,x⃗ )+βLstyle(a⃗ ,x⃗ )
    • 内容损失:VGG19 中 relu4_2 层输出的特征图中每个元素的差的平方和
      • Lcontent(p⃗ ,x⃗ ,l)=12i,j(FlijPlij)2
      • 其中 p⃗  代表原始内容图片, x⃗  表示生成图片, Pl Fl 分别表示原始内容图片和生成图片在 l 层的特征图,即 relu4_2 层。
    • 风格损失:是风格图和合成图以 relu1_1、relu2_1、relu3_1、relu4_1、relu5_1 五层的特征图所求得的格拉姆矩阵的差的平方和。
      • Lstyle(a⃗ ,x⃗ )=Ll=0wlEl
      • 其中 El=14N2lM2li,j(GlijAlij)2 a⃗  代表原始风格图片, x⃗  表示生成图片, Al Gl 分别表示原始风格图片和生成图片在 l 层的风格表示。
      • 其中 Glij=kFlikFljk 是格拉姆(Gram matrix)阵,表示向量化的特征图 i j l 层的内积,代表了不同滤波器所得结果之间的相关性。
    • α β 是超参数
  • 提取风格的VGGNet
快速风格化的两种模型(训练生成风格的滤镜)
  • 实时风格迁移(Real-time Style Transfer)的核心思路:以 neural style 的研究为基础,基于 VGGNet 所提取出的高维抽象特征构建损失函数,同时使用一个图像变换卷积网络来存储风格的纹理特征,然后将训练好的网络直接作为滤镜使用即可完成对图片的风格变换。

  • 滤镜模式:构建一个图像迁移网络,固定一个风格图,用大量照片轮番训练网络,使网络保留风格,同时对内容保持足够的泛化程度。
    @风格滤镜系统结构
    Markdown

  • 风格转换网络:

    • 塔式网络 Texture Net [PDF] [Github] (保留图片内容,同时学习风格)输入必须固定(512,512,3)
    • 残差网络 Image Transform Net [PDF][Github],输入可以是任意shape,只涉及图片本身的缩放,无需固定尺寸
  • 训练框架:https://github.com/DeepVisionTeam/TensorFlowBook/tree/master/neural_style/fast_neural_style.py

生成对抗网络介绍(GAN)

GAN的基本思想
  • 警方和假币制造者:造假币的人(生成器,generator)想尽量造出警方无法识别的假币,警方(判别器,discriminator)希望尽可能的识别出真币和假币。

  • GAN(Generative Adversarial Networks):引入判别模型,生成模型要尽量去模仿、建模和学习真实数据的分布规律;而判别模型则是要判别自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型。

    GAN的优化过程就是在寻找生成模型和判别模型之间的一个纳什均衡。

  • 生成模型:将一个随机变量(可以是高斯分布,或0到1之间的均匀分布),通过参数化的概率生成模型,进行概率分布的逆变换采样,从而得到一个生成的概率分布。https://blog.openai.com/generative-models
    Markdown

  • 生成模型的损失定义(优化目标)
    • 传统生成模型:最大似然估计
GAN的基本框架
  • 假设我们设计一个图片分类器 D 来识别一系列描述动物的图片。同时,图片分类器还有一个对手 G,目标是用一些看起来像动物但其实并不是真实的图片来迷惑 DG 在训练集(隐空间,latent space)中随机采样正常的样本,然后在这些正常样本的特征中加入随机噪声,以此合成具有迷惑性的图片样本。D 则交替接受真实样本和虚假样本,来进行迭代训练。
    Markdown
GAN的适用场景
  • 超分辨率重建(Super Resolution)

    • Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network [Paper]
      Markdown
  • 内容识别填充

    • Improved Training of Wasserstein GANs [Paper]
      Markdown
  • pix2pix自动上色

    • Image-to-Image Translation with Conditional Adversarial Networks [Paper] [Github]
      Markdown
课程推荐资料

教材:《深度学习原理与TensorFlow实践》
https://blog.openai.com/generative-models/
https://github.com/savan77/The-GAN-World


感谢《深度学习基础与TensorFlow实践》课程主讲王琛老师的讲解
Edited by @AppleCore_Q | http://blog.csdn.net/applecore123456

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值