图象风格迁移

什么是图象风格迁移

图象风格迁移就是将一张图片的某种风格或者特征应用到另一张图片上。例如ps或者powerpoint中的图片风格化。

需要的知识储备

  • python
  • tensorflow应用知识
  • Linux基础知识
  • VGGNet的相关知识

图象风格迁移原理

VGGNet

VGGNet是英国牛津大学研究者提出的一种用以识别图象目标的分类与定位的神经网络,当时获得了ILSVRC2014比赛识别组的第二名与定位组的第一名。

VGGNet结构

VGG由5层卷积层、3层全连接层、softmax输出层构成,层与层之间使用max-pooling(最大化池)分开,所有隐层的激活单元都采用ReLU函数。
可以这样简化的理解VGGNet的结构:前面的卷积层是从图象中提取“特征”,后面的全连接层则是把“特征”转换成类别的概率。其中,VGGNet中的浅层(如conv1_1,conv1_2),提取的特征往往是比较简单的(如检测点、线、亮度),VGGNet中的深层(如conv5_1,conv5_2),提取的特征往往是比较复杂的(如有无人脸或者某种特定物体)。
VGGNet的本意是输入图象,提取特征,并输出图象类别。图象风格迁正好与之相反,输入的是特征,输出对应这种特征的图片

VGGNet与图象风格迁移的区别

图象内容还原与图象风格还原

根据VGGNet的原理,我们选取一幅图象,经过VGGNet的计算可以得到各个卷积层的特征,根据这些卷积层的特征,可以还原出对应这种特征的原始图象。通常情况下:浅层的还原效果比较好,深层对应的还原图象丢失了部分颜色和纹理,但是大体保留了原始图象中物体的形状和位置。

  • 图象内容还原

  • 图象风格还原
    图象风格即是图象的特征还原,这里需要考虑的就是用什么样的算法来表示图象的风格。此处选用图象卷积层特征的Gram矩阵。

  • 风格迁移
    前文描述皆是对原始图象本身的内容和风格还原,将内容还原与风格还原结合起来,在还原一张图象的同时,还原另外一张图象的风格,便形成了图象的风格迁移。

    以上便是图象风格迁移的原理,但是使用梯度下降法来进行风格迁移需要耗费大量的计算时间,在CPU上计算生成一张图片需要数十分钟甚至几小时,即使使用高性能GPU进行运算也需要十几分钟,不能很好的满足实时化的应用。

快速风格迁移算法


快速风格迁移demo

demo提供了七种训练好的快速风格迁移模型,具体如下:

训练好的模型

随机选择几种进行演示,效果如下:
原始图象

wave风格化

scream风格化

你可能感兴趣的:(图象风格迁移)