图像风格迁移

图像风格迁移是一件比较有意思的事情,比如下图:

 

将一张建筑图片转变成不同风格的艺术图片。在原文中是这样实现的:

图像风格迁移_第1张图片

 

整个实现需要一张风格图和一张内容图,输入还需要另外的一张白噪声图片,作为最后生成的风格迁移图像的载体输出。上图左边是风格图片的输入,通过VGG19或者VGG16网络提取风格图片的风格表示(style representation)或者说风格特征A^{l},在五层卷积层都需要计算并存储。VGG19或VGG16网络的五部分卷积,中间以池化层作为分割,每部分又有两到四次的卷积操作。计算A^{l}是在每部分的某一层计算。中间是输入的白噪声图片,其风格特征style features G^{l} 和 内容特征content features F^{l}被计算和保存。每一层都需要计算G^{l}A^{l}的元素平均平方差(element-wise mean squared difference)E^{l},总的风格损失就是上图中的L_{style} = \sum_{l}^{ }w_{l}E_{l}。右图是内容图片的输入,内容损失函数是计算F^{l}P^{l}之间的均方误差损失(mean squared difference),具体是取某一部分卷积的某一层的内容特征作为P^{l},比如上图中的conv4_3.整体的损失函数是风格损失和内容损失的线性组合。

 

具体来说:

内容损失函数计算如图:

其中p代表原始图像,x代表生成的图像(输入为白噪声),l为层数。F_{ij}^{l}  表示生成图像的第l层卷积后第i个过滤器的第j个特,P_{ij}^{l} 是原始输入的内容图像的信息。第l层有N_{l} 个卷积核(过滤器),每个特征图像的长*宽为M_{l}.

风格特征的相关性由Gram矩阵给出,具体为:

 

F_{ij}^{l}的內积。其他计算公式为:

 

 

参考资料:

1、Image Style Transfer Using Convolutional Neural Networks

你可能感兴趣的:(深度学习之GAN)