Perceptual Losses for Real-Time Style Transfer
哒溜君上次给大家介绍了一个image2art的,如果你忘记了可以前去参考一下,戳我。
继续摆上哒溜君网红照片。
+
=
一、Method
由于A Neural Algorithm of Artistic Style论文太消耗时间,所以论文主要是针对算法的效率上进行了改进。
作者的整体思路跟前面的一样,重新生成的照片分成了2个部分,分别是content
和style
。content
反映的是原始图片的信息,style
反应的是艺术照片的信息。唯一不同点就是作者使用一个前反馈网络完成整个图片的生成。
下面看一下整体的网络结构图。
可以看到后半部分的结构图其实跟前文的结构是一样的,同样使用的是VGG16的网络作为loss获取的网络。
二、Core Idea
首先看看他们最主要的区别,A Neural Algorithm of Artistic Style这篇论文中,通过随机初始化一个y,然后通过若干轮的迭代,每次修改的是y的数据,以此来完成目标图像的重建。也就是说他的这个学习具有很强的灵活性,任意给定的style和content图片,都是可以进行学习的,但是这样就造成了他的一个致命的缺点,就是同一style的中间结果(或者说修改的方法没有保存,话说如果是这样训练也不知道该如何保存),造成了它的效率很低。
这篇论文的核心idea就是利用计算机领域经常使用的trick--空间换取时间,就是想一个办法可以把同样的style图片的转化方法保存一下,这样就有了前面的fW(Image Transform Net)网络,这个网络里面的参数就是保存生成指定style的变换方法。
作者的fW网络采用的是resnet。
三、Loss Function
loss function跟前面论文的损失函数相差不大,这里就不再细说,可以参考A Neural Algorithm of Artistic Style
四、总结
这篇论文的效率得到了极大的提升,下面看一下论文给出的数据
其实这个应该来说还是挺正常的,毕竟使用的是只有一个前反馈网络。
但是他有一个最致命的缺点就是,所有的style都必须是已经提前训练好的,如果训练好的模型没有,那么就不可能实现转化,因为ys每次都是固定的,这个相比于前面的那篇论文灵活性又有不足。
下面给大家推荐一个App philm, 非ios好像打不开...
最后哒溜君给大家透漏一个小秘密,由于工作的需要,会研究一下使用OpenGL es,实现此算法。
基于Torch的代码GitHub