Image style transfer

论文Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization

图像风格变换的任务是,把一种风格域S1的图像转换成另一种风格域S2的图像。风格变换的同时保存图像的内容不变。

GAN火起来之后,有一些用GAN做图像风格变换的应用,比如Cycle GAN/Dual GAN/Disco GAN。他们的一般结构是使用两对G与D的组合,以确保转换风格而不变换内容。结构略庞大了一些,训练不方便。
而要提到的这批论文,想法和实现都很简单,转换效果也是很不错的。

要解决的问题

ok,先吐槽一下其它style transfer方法的弊端
1. 模型复杂,训练难
2. 不能完成任意风格变换。比如,训练时使用两中风格S1,S2,那么该模型能做的也就是这两种风格间的变换。
3. 有一些方法,依靠浅层的特征,比如直方图统计,而不能抓住图像的语义信息。

作者主要受到了两点启发
1. 论文Image Style Transfer Using Convolutional Neural Networks,在特征空间操作风格的变换。
2. Batch Normalization,Instance Normalization

方法

Image style transfer_第1张图片
过程可以描述为:把content image和style image编码到同一特征空间;然后在特征空间给予content image的特征以style image特征的(统计)风格;最后再把特征解码成图像。

编码encoder

作者直接使用预训练的VGG模型,将图像编码到特征空间。具体的使用网络中的哪层特征,可以实验测试。论文使用relu4_1层。

解码decoder

训练学习一个CNN解码器,把特征恢复成图像。论文设计的解码器是编码器encoder成镜像结构。

AdaIN

先来回顾一下,BN:
Image style transfer_第2张图片
IN:
Image style transfer_第3张图片
这里写图片描述
他们做的是把一种高斯分布拉到另一种高斯分布,不同之处只是统计针对的对象略有差别,前者的样本是批量图像的一个通道,后者的样本是一张图像的某个通道
作者扩展了IN为自适应的IN:
Image style transfer_第4张图片
很简单吧,就是把content image的feature分布拉倒style image的feature分布,这样就在特征空间完成了风格变换。而由于stlye image可以任意输入,可以实现任意风格变换

loss & train

loss包含两部分,用来限制风格与内容:
这里写图片描述
这里写图片描述
Image style transfer_第5张图片
其中content loss,参考[1],使用特征空间的欧式距离。不直接使用图像空间的欧式距离是因为[1]的结论:高层的特征能得到物体以及其在输入图片中的排列的high-level信息,而不用太多的限制像素的值。
(但是也有GAN的论文,content loss使用的就是生成图像与label图像像素见得均方误差。)
style loss中,φi表示encoder的某一层,考虑了encoder中多个层中的统计差别。

results

1 quality
与几种方法的对比

此方法的转换效果很不错,取得了与’Ulyanov‘[2]相当的成绩( 其方法针都针对各个style训练过,是single-style变换,而本文的方案是第一次遇到这种style)

2.speed
测试阶段,时间消耗在三个地方:编码content图像,编码style图像,解码特征。
使用GPU,(512x512 pixels)整个流程耗时约0.065s;如果只想把图像转换成某一种风格,则可以省略重复对style image的编码,效率提高。

3.转换风格的力度可控
当然,在loss函数中,控制参数lamda可以做到控制力度;
仅仅在测试阶段,控制
这里写图片描述
其实就是控制,中间合成的变换风格后的特征,有多大部分是AdaIN变换的,有多大部分是原图像的,很容易实现控制风格力度。
4.位置和颜色可控
控制变换后的图像的颜色分布,只是在style image图像加了一步预处理,将其的颜色与content的颜色分布匹配。

总结

该论文的方法相比state of art的其他单一风格转换的模型效果略逊一点,但也只是一点点。突出的优点是该方法简单,而且很灵活,计算速度可以达到real time;能实现任意风格的转换。
end.
[1] Image Style Transfer Using Convolutional Neural Networks
[2] Improved texture networks: Maximizing quality and diversity in feed-forward stylization and texture synthesis.

你可能感兴趣的:(深度学习,CNN,GAN)