- 本文的贡献在于将perceptual loss和feed-forward网络结合,处理速度很快。
- 感知损失:用特征算损失,评估两张图片在内容和风格上的差异。
-
减小特征图,扩大卷积核,可以在不增加计算量的情况下,扩大感受野。同时,这对需要连续变换的风格迁移也很重要
3.1 Image Transformation Networks
- 在上下采样中,使用步进和小步进卷积代替池化层。除残差模块外,均使用spatial batch normalization,输出层使用ReLU,将输出限制在[0, 255]。除第一和最后一层使用9 x 9卷积核外,其余均使用3 x 3卷积核。
- 输入和输出均为 3 x 256 x 256
- 使用5个残差模块,每个包含两个3 x 3的卷积层。
- 在几个Residual blocks之后,使用两个步进为2的卷积去对输入降采样,然后使用两个步进为1/2的卷积去上采样,虽然输入和输出的尺寸一样,但有两个好处:下采样后,我们可以在相同计算代价的情况下,用更大的卷积核,即获得更大的感受野。高质量的风格转换需要有尽可能连续的变换,因此需要在输入有更大的感受野。
3.2 Perceptual Loss Functions
使用两个perceptual loss functions,计算图片之间的内容和风格之间的差异。loss net是在ImageNet上做图片分类的VGG-16。
Feature Reconstruction Loss
计算两张图片之间的内容差异。作者使用layer relu2-2的输出作为图片内容,作者认为网络high-level的特征保存了内容和全部空间结构,但没有保存颜色、纹理和提取出的形状,因此要使用early layers。
具体计算:将经过Image Transform Net输出的图片和输入原图送入loss net,第j层卷积层输出的特征图相减后求二范数,平方后求平均输出。
Style Reconstruction Loss
作者使用layer relu1_2, relu2_2, relu3_3, and relu4_3的输出作为图片风格
首先计算经过Image Transform Net输出的图片和目标风格图片对应的Gram matrix(Cj x Cj):将图片送入loss net,得到第j层卷积层输出特征图Cj x Hj x Wj。将每个通道视作一个独立的样本Hj x Wj,则Gram matrix可以视作,求Cj个样本的无中心化协方差矩阵。对应到某两个样本间的计算则是:对应元素相乘后累加,除以CjHjWj。
也可以将特征图转换为Cj x HjWj(相当于将图片转换为向量),然后计算:
最后用F-范数计算两个Gram Matrix的距离:
F-范数是求矩阵的各项元素的绝对值平方和,然后开根号。
最后:
yc是content图片,ys是style图片,y用白噪声初始化。
Experiments
Baseline是风格转换的经典论文A neural algorithm of artistic style,使用的是pixel loss: