CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)

目录

  • 前言
  • 二、风格迁移 Image Style Transfer
    • 1.假设
    • 2.假设带来的问题
    • 3.做风格迁移的思路
      • (1) backbone
      • (2) content loss
      • (3) style loss
      • (4) Combine contents and styles
      • (5)Generated from white noise
    • 4.gram matrix
    • 5.另一种思路

前言

上一篇博客介绍的图像迁移中的图像分割以及几个常用的分割网络,这一篇接着介绍图像迁移中的另一个分支——风格迁移。风格迁移的输入有两个,一个是风格输入,一个是内容输入;而输出是一个,生成变成输入风格的内容。

input(A style )+ input(B content) == output(C style+content)
CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)_第1张图片

二、风格迁移 Image Style Transfer

1.假设

Images can be represented by contents and styles
即:满足假设没有只有风格的图片,也没有只有内容的图片

对于输入图片A,我们需要它的风格,但图片本身不止有风格记为As,也有一定的内容记为Ac

对于输入图片B,我们需要它的内容,但图片本身不止有内容记为Bc,也有一定的风格记为Bs

对于输出图片C,我们需要它有A的风格和B的内容,C图片本身有风格记为Cs,也有一定的内容记为Cc

The higher a layer is, the more semantic info we’ll get; The lower a layer is, the more loca info we’ll get.
即:神经网络越深的层语义信息越丰富,越浅的层位置信息越丰富

事实上这个假设在整个神经网络中都是满足的

We can transfer an image’s style by minimizing the loss of their styles and contents.

关于loss计算,最小化 loss(Cs,As)+loss (Cc,Bc),当然,两个loss前是有一定的系数比例的,需要人为进行设置

2.假设带来的问题

How to represent contents?

怎么表示内容?

How to represent styles?

怎么表示风格?

How to minimizing the gap?

怎么计算loss

How to combine content / style?

怎么把内容和风格结合起来?

3.做风格迁移的思路

CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)_第2张图片

(1) backbone

首先,有三个网络,这三个网络都是相同的backbone,分别对应风格输入的网络,内容输入的网络,输出的网络。
CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)_第3张图片
在这里用到的都是VGG16,而且参数是固定的,也就是这三个网络是完全一样的。(复杂的网络可以理解为一个复杂的函数F,也就是这三个backbone是用相同的三个函数F计算)

(2) content loss

对于内容损失,计算内容输入网络和输出网络的高层特征图之间的损失:(因为语义往往在高层特征图中)
CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)_第4张图片

(3) style loss

对于风格损失,计算每层风格网络特征图和输入之间的损失然后求和(⑤⑥),需要注意i到,风格损失是每层都计算loss取loss和,内容损失只计算高层特征图之间得loss
CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)_第5张图片

(4) Combine contents and styles

将风格损失和内容损失按一定的系数加和,得到整个网络的loss
CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)_第6张图片
其中,系数可以规定偏重风格还是偏重内容。

(5)Generated from white noise

这个模型的特点是模型固定,所以训练的时候是不训练模型backbone的,那么训练什么呢?训练的是输出图片的噪声
CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)_第7张图片
一开始的时候原始输出是一张噪声图记作F(output),通过迭代loss计算过程

MIN_loss(F(content),F(output),F(style))

使得中间的F(output)能与content的内容loss小,与style的风格loss小,最终生成红框框中右侧部分的图,就是输出了。

但是这样的模型有一个缺点,那就是每换一个输入就需要重新迭代计算一次输出,每个输入都要训练一次噪声。

4.gram matrix

用于衡量风格。传送门1 传送门2

5.另一种思路

损失网络跟前面一样,也是固定的,加了前面一个网络部分用来生成输出。(Functional network + Loss network)
CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)_第8张图片

你可能感兴趣的:(14周AI人工智能,神经网络)