Perceptual Losses for Real-Time Style Transfer and Super-Resolution阅读(二)
三、损失函数
虽然文章说的是perceptual losss,但是感觉上跟上一篇文章的约束并没有什么区别,我们可以来看看。
Feature Reconstruction Loss
- j表示网络的第j层。
- CjHjWj表示第j层的feature_map的size
Style Reconstruction Loss
对于风格重建的损失函数,首先要先计算Gram矩阵,
产生的feature_map的大小为CjHjWj,可以看成是Cj个特征,这些特征两两之间的内积的计算方式如上。
两张图片,在loss网络的每一层都求出Gram矩阵,然后对应层之间计算欧式距离,最后将不同层的欧氏距离相加,得到最后的风格损失。
具体的结果如下,截屏自论文:
其实上述结果与上一篇论文真的很像,都是表达了在风格重建时,越高层特征,粒度越粗,内容重建时,越底层,重见效果越好。在这两个约束上,我并没有感觉较之前有很大的进步。采用高层特征的原因是,内容和全局结构会被保留,但是颜色纹理和精确的形状其实并不需要。用一个特征损失来训练的时候,希望的是接近而不是完全匹配。
在这里,文章也是用了VGG的网络结构。文章中有一个点我很喜欢,说明了一部分图片转换失败的原因。因为VGG是被训练来分类的,所以对于图片的主体的识别要比背景保留完整的多,所以往往对前景能够有很好的识别效果,但是背景会有所混淆。具体的可以看下图的海滩场景和猫的场景。
四、实验结果
具体的实验结果不再赘述,但是这篇的实验要比上一篇的实验更加完整,更加成体系。这里没有细看。
五、总结
这篇文章最大的贡献就是做到了实时。能够提高三个数量级的时间。即使在我们搭建的服务器上也能很快的得到转换结果。也为后期的style transfer的发展做出了贡献。
其次,我很喜欢这篇文章的解释。解释虽然没有公式证明那么严谨,但是从大体上是合理的,为上一篇文章没有讲清楚的地方都讲清楚了,不含糊。在设计image transformation网络架构的时候也加入了自己的理解,让阅读的人可以明白这样设计的意图以及原因。
是一篇值得学习的好文章。