使用VGG深度学习网络进行风格迁移和快速风格迁移
什么是图像风格迁移?
给定一个内容图片A和一个风格图片B,能够生成一张有着和A内容一样而风格却更像B的一张图片C。
例如:
内容图片A如下:
风格图像B如下:
最后生成图片C如下:
具体的理论有兴趣的同学可以看下A Neural Algorithm of Artistic Style这篇论文,我这里给一个翻译好的文件链接 [译] A Neural Algorithm of Artistic Style
下面就是一些具体实现的步骤
1.获取预训练的VGG-19模型
VGG网络在2014年的 ILSVRC localization and classification 两个问题上分别取得了第一名和第二名。VGG网络非常深,通常有16-19层,如果自己训练网络模型的话很浪费时间和计算资源。这里要用到的VGG19模型就是在imagenet数据集上预训练的模型。
VGG19结构图如下:
我们要从预训练的模型中,获取卷积层部分的参数,用于构建我们自己的模型。VGG19中的全连接层舍弃掉,这一部分对提取图像特征基本无用。
要注意的是,我这里提取出来的VGG参数全部是作为constant(即常量)使用的,也就是说,这些参数是不会再被训练的,在反向传播的过程中也不会改变。
2.感知损失函数
首先先放一张论文中的图:
2.1内容损失
内容重构。我们可以通过从一个已知特定层的网络的响应重构输入图片来可视化CNN中不同处理层的信息。我们重构了输入图像从VGG的‘conv1 1’ (a), ‘conv2 1’ (b), ‘conv3 1’ ©, ‘conv4 1’ (d) and ‘conv5 1’ (e)。发现从较低层重构的几乎可以称完美 (a,b,c)。在网络的较高层,具体的像素值信息在更高层次的内容被保存的时候丢失了(d,e)。
各