使用两个perceptual loss functions,计算图片之间的内容和风格之间的差异。loss net是在ImageNet上做图片分类的VGG-16。
计算两张图片之间的内容差异。作者使用layer relu2-2的输出作为图片内容,作者认为网络high-level的特征保存了内容和全部空间结构,但没有保存颜色、纹理和提取出的形状,因此要使用early layers。
具体计算:将经过Image Transform Net输出的图片和输入原图送入loss net,第j层卷积层输出的特征图相减后求二范数,平方后求平均输出。
作者使用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用白噪声初始化。
Baseline是风格转换的经典论文A neural algorithm of artistic style,使用的是pixel loss: