参考 http://blog.csdn.net/u011534057/article/details/55052304
代码 https://github.com/yusuketomoto/chainer-fast-neuralstyle
出处
2016 · european conference on computer vision
Motivation
研究Image transfomation的方法。有别于现有的typically train feed-forward convolutional neural networks using a per-pixel loss between the output and ground-truth images,本文使用基于perceptual loss的方式来提取特征,生成风格转换图片和高分辨率图片
Introduction
章节开始介绍了Image transformation的定义和一些work,简单地说喂一张图片,吐一张不同的图片即是。举例说明perceptual loss相对于per-pixel loss的优势,两张几乎一样的图片会因为一个像素点的偏差导致per-pixel loss完全不同,但在感官层面,是没有区别的,这显然使得像素级的损失函数不太科学了。现有的工作已经开始用perceptual loss 来抽取视觉特征生成高质量图片,但速度非常缓慢。该文的模型在Image transformation方面能生成和[1]效果大致相仿的高质量图片,并在速度上快了3个数量级,在重建分辨率方面,能有4倍到8倍的分辨率提升。
Related work
1.各种基于per-pixel的Feed-forward image transformation work
2.Perceptual optimization.
3.Style Transfer.
4.Image super-resolution.
Method
整个模型系统框架如下所示:
模型分为两个部分
Image transformation networks $f_w$ 和 loss network(vgg-16 pretrained on Imagenet) $phi$
- Image Transformation
a deep residual convolutional neural network parameterized by weights $W$,使用映射将输入的Image $X$映射成。Image Transformation的网络架构基本上基于DCGAN模型并使用了5个残差网络层。因 为整个网络是全卷积网络,所以在test-time输入可以是任意大小的图片。
对Transform network来说,优化目标为
- Loss network
经过预训练的Loss network在整个训练过程中保持超参数不变。 在$phi$中定义了一堆loss 函数$l_1,l_2...$,每一个loss function计算了,即映射输出的图片和target image $y_i$的loss
同时,作者定义了两种Perceptual Loss Functions,Feature Reconstruction Loss 和Style Reconstruction Loss
perceptual loss: 保证了在feature层面上生成图片和原图片保持一致
Style Loss:在feature层面保证了生成图片和风格图片的一直
构建了一个Gram矩阵,即$i$通道的feature map与$j$通道的feature map进行内积,用以衡量两个feature map之间的差异度,从而可以从两张图的Gam矩阵入手,构建loss函数:
两张图的size即使完全不一致也可以计算出该style loss,因为Gram矩阵计算时基于的是卷积层的feature map的总差异。
[1]Gatys, L.A., Ecker, A.S., Bethge, M.: A neural algorithm of artistic style. arXiv preprint arXiv:1508.06576 (2015)
[2]Gatys, L.A., Ecker, A.S., Bethge, M.: Texture synthesis using convolutional neuralnetworks. In: NIPS. (2015)