Image Style Transfer Using Convolutional Neural Networks
论文亮点
- 给出了内容损失(Content Loss,也被称为特征重建损失)和风格损失(Style Loss)的定义,之后的论文中二者被总结成感知损失(Perceptual Loss)。
- 给出了当内容损失和风格损失的权重不同时,风格迁移结果的对比。根据论文的实验结果,一般来说内容损失相比风格损失的权重要少2~3个数量级,即1:100的关系。
- 可视化了提取出的图像风格表示和内容表示
- 定义了成功的风格迁移——如果生成图像看起来像风格图像但是展示了内容图像的目标和场景
研究背景
将一张图像的语义信息渲染成不同风格是非常困难的图像处理问题。之前方法存在的主要限制条件是可以准确表示语义信息,以及因此将图像内容从风格中分离出来的图像表征的缺乏。
在风格迁移领域存在许多经典的无参数算法,它们的原理基于使用不同的方式来保留目标图像的结构,然而这些方法的缺陷在于它们只能使用目标图像的低层图像特征。
事实上,想进行风格迁移的关键在于我们如何将图像的内容和风格很好地分离开。而可以提取高层语义信息的卷积神经网络的出现,则为风格迁移工作提供了很好的思路。
研究方法与意义
在这篇文章中,作者使用了从卷积神经网络中学习到的图像表征来分别处理和操作图像的内容和风格,它可以使得高层图像信息更确切。作者提出了一个艺术风格的神经算法(A Neural Algorithm of Artistic Style),它可以分离和重新组合自然图像的内容和风格。这个算法可以生成较高感知质量的新图像,结合任意照片的内容和许多著名艺术品的外观(风格)。
方法细节
使用了经典的VGG19网络来提取图像的高层语义特征,它具有16个卷积层和5个池化层,未使用任何的全连接层。还对VGG的参数进行了不改变其输出的正则化,并且发现平均池化相比最大池化取得了稍微更好的结果。
内容表示与内容损失
内容表示本质上就是图像输入到神经网络后,某一卷积层的输出特征图。当然采取不同的卷积层输出的特征图不一致,得到的内容表示也不一致。
由生成图像提取出的内容表示和真实图像提取的内容表示的差异可以计算出内容损失,计算方法是对比生成图像在某一卷积层的输出特征图与真实图像在相同卷积层的输出特征图二者的逐像素差异,即内容损失实质上就是在生成图像和真实图像卷积得到的特征图上再计算逐像素损失。其计算公式表示如下:
有 N l N_{l} Nl个滤波器的卷积层会得到 N l N_{l} Nl个输出特征图,假设其输出特征图的高度与宽度相乘后的结果为 M l M_{l} Ml,则卷积层 l l l 的响应可以表达为 F l ∈ R N l × M l F^{l} \in \mathcal{R}^{N_{l} \times M_{l}} Fl∈RNl×Ml,其中 F i j l F_{i j}^{l} Fijl是卷积层 l l l 第 i t h i^{t h} ith个滤波器在位置 j j j上的响应。如果用 p ⃗ \vec{p} p表示真实的内容图像,而 x ⃗ \vec{x} x表示生成图像, P l P^{l} Pl和 F l F^{l} Fl分别表示它们在相同卷积层上的输出。通过输出特征图之间的最小均方误差(MSE,逐像素计算)来定义内容损失:
L content ( p ⃗ , x ⃗ , l ) = 1 2 ∑ i , j ( F i j l − P i j l ) 2 \mathcal{L}_{\text {content }}(\vec{p}, \vec{x}, l)=\frac{1}{2} \sum_{i, j}\left(F_{i j}^{l}-P_{i j}^{l}\right)^{2} Lcontent (p,x,l)=21i,j</