图像风格迁移是一件比较有意思的事情,比如下图:
将一张建筑图片转变成不同风格的艺术图片。在原文中是这样实现的:
整个实现需要一张风格图和一张内容图,输入还需要另外的一张白噪声图片,作为最后生成的风格迁移图像的载体输出。上图左边是风格图片的输入,通过VGG19或者VGG16网络提取风格图片的风格表示(style representation)或者说风格特征,在五层卷积层都需要计算并存储。VGG19或VGG16网络的五部分卷积,中间以池化层作为分割,每部分又有两到四次的卷积操作。计算是在每部分的某一层计算。中间是输入的白噪声图片,其风格特征style features 和 内容特征content features 被计算和保存。每一层都需要计算和的元素平均平方差(element-wise mean squared difference),总的风格损失就是上图中的。右图是内容图片的输入,内容损失函数是计算和之间的均方误差损失(mean squared difference),具体是取某一部分卷积的某一层的内容特征作为,比如上图中的conv4_3.整体的损失函数是风格损失和内容损失的线性组合。
具体来说:
内容损失函数计算如图:
其中p代表原始图像,x代表生成的图像(输入为白噪声),l为层数。 表示生成图像的第l层卷积后第i个过滤器的第j个特, 是原始输入的内容图像的信息。第l层有 个卷积核(过滤器),每个特征图像的长*宽为.
风格特征的相关性由Gram矩阵给出,具体为:
是的內积。其他计算公式为:
参考资料: