Perceptual Losses for Real-Time Style Transfer and Super-Resolution 论文理解

 1、我们的系统由两部分组成:一个图片转换网络fw 和一个损失网络 φ(用来定义一系列损失函数l1, l2, l3),
图片转换网络是一个深度残差网络,参数是权重W,它把输入的图片x通过映射 y=fw(x)转换成输出图片y,
每一个损失函数计算一个标量值li(y,yi), 衡量输出的y和目标图像yi之间的差距。
图片转换网络是用SGD训练,使得一系列损失函数的加权和保持下降。

2、Images Transform Net 的具体细节如下:

 3、

 

 4、

本文首先阐述了Style Transfer 和 Super Resolution 现阶段的发展。 提出了一个重要的概念--"Perceptual Loss". 指出其他的paper用Pixel loss 来计算相似度, 也就是 [公式] 这个方法把Super -Resolution 的问题理解成了一个普通的MSE 回归问题。这篇文章指出了Pixel Loss 存在的缺点,其中一个缺点为 Pixel Loss 不能判断两张图像认知上的异同。
举个例子:两张一样的图像, 只不过图像A 的所有像素都比图像B往左偏移了一个像素。 这两张图像的Pixle loss 会非常大,但这两张图像应该被判定为相同。

然而用Perceptual loss 就能很好的克服这一问题。
Perceptual loss 借用了已经训练好的VGG-16这一网络。 把VGG-16网络的中间层activations作为目标,计算两个图像经过VGG-16中间层的两个activations 的欧氏距离。 可以用如下数学公式表达:

[公式]

其中:

    • j 是 VGG-16 的中间层代号,比如 [公式]或者 [公式]
  • [公式]指的是输入图像是y , VGG-16 网络的j 中间层的输出。比如[公式]指的是HR 作为输入,relu3_3层的输出。
  • [公式]是 [公式]的长宽高。


那么Perceptual loss 这数学公式就可以理解为两个图像在VGG-16中间层j的欧氏距离。 越小,说明VGG-16网络认为,这两张图越接近。

5、用了优化的方式去找到一张图y,最小化从VGG16的某几层取出来的风格损失。图像y只保存风格特征不保存空间结构。

6、训练细节:我们的风格转换网络是用COCO数据集训练的,我们调整每一个图像到256x256,共8万张训练图,batch-size=4,迭代40000次,大约跑了两轮。用Adam优化,初始学习速率0.001.输出图被用了全变量正则化(strength 在1e-6到1e-4之间),通过交叉验证集选择。不用权重衰减或者dropout,因为模型在这两轮中没有过拟合。对所有的风格转换实验我们取relu2_2层做内容,relu1_2,relu2_2,relu3_3和relu4_3作为风格。VGG-16网络,我们的实验用了Torch和cuDNN,训练用了大约4个小时,在一个GTX Titan X GPU上。
原文地址:https://www.cnblogs.com/h694879357/p/13347510.html