谈谈图像的Style Transfer(一)

本文介绍了图像风格转移的起源,特别是Gatys的《A Neural Algorithm of Artistic Style》论文及其后续发展。文章讨论了风格转换的早期工作,如使用Gram矩阵的纹理合成,并解释了为何Gram矩阵能捕捉风格信息。文中还提到了更快的前向网络方法,如Texture Networks和Perceptual Losses,以及它们如何改进风格转移的速度和效果。此外,文章探讨了Gram矩阵与卷积网络中卷积的区别,并提及了风格迁移在人脸识别属性转换的应用。
摘要由CSDN通过智能技术生成

总说

最近更新:17-5-9 增加Neural style使用Gram矩阵的前提工作

其实这个方向火起来是从2015年Gatys发表的一篇文章 A Neural Algorithm of Artistic Style, 当然了,当时新闻报道还是很标题党的,看的我热血沸腾。。言归正传,虽然只过了短短一年多,但是相关的论文已经有二三十篇了,这些论文在原有的基础上进行了极大的扩展。从最初的Neural Style,到Ulyanov的Texture Networks: Feed-forward Synthesis of Textures and Stylized Images以及李飞飞老师的Perceptual Losses for Real-Time Style Transfer and Super-Resolution。 一般来说主要就是这3篇,后面两篇是差不多的,都是将原来的求解全局最优解问题转换成用前向网络逼近最优解,原版的方法每次要将一幅内容图进行风格转换,就要进行不断的迭代,而后两篇的方法是先将其进行训练,训练得到前向生成网络,以后再来一张内容图,直接输入到生成网络中,即可得到具有预先训练的风格的内容图。 除了这3篇主要的,还有就是将style transfer应用到视频中的,以及一些在改变Gram矩阵的,还有其他很多。这里只写其中某几篇。

下面是最初版本的效果图
这里写图片描述

Prisma上的一些图片,用的应该是改进版本的方法
这里写图片描述
这里写图片描述

额,别跟我提新海诚滤镜,能把人变成二次元?我直接呵呵。你用多了就知道,它的天空就是直接从原著漫画中截取的,就几种,根本不管你现实中有没有云彩。试用“新海诚风”滤镜后 我忍不住戳穿了它。 原理的话,自己百度一下“新海诚滤镜特效的实现解密”就可以了。在此不做评论。

说一下Neural style的工作用Gram的前些工作

在neural style出来之前,Gatys还做了这个工作Texture Synthesis Using Convolutional Neural
Networks
,他们发现如果让隐藏层的特征用协方差来进行进行约束,可以得到较好的纹理生成。
这里写图片描述
他们发现如果用协方差(也就是Gram矩阵)来进行约束隐藏层特征的话,重建出来的特征虽然有些会保持,但是有些可能位置会打散。比如最右侧的一张图,人还是人,但是重建出来相当于“拼图”效果了。这是因为协方差本身就是去除了位置信息。 那么既然协方差可以用于纹理生成,那么如果我们加上 “让生成图的隐藏层特征与原图尽量一样,另一方面让生成图的打散特征与画的打散特征尽量相似”,这就是用神经网络做风格转换的最初想法。这也比较符合“风格”的定义,毕竟风格不应该具有位置信息,一种风格应该是与位置无关的。

注意:Gatys的几篇论文没有解释为什么用Gram矩阵, 其实可以这样认为, 协方差就是一种二阶统计信息, 我们要求输出图的什么信息与风格图相近, 肯定不是feature map上单纯的逐点的相近, Gram矩阵描述的就是全局特征的自相关, 如果输出图与风格图的这种自相关相近, 那么差不多是我们所理解的”风格”. 当然, 其实也可以用很多其他的统计信息进行描绘风格. 这也就是后面有用直方图的, 甚至直接简化成”均值+方差”进行描绘风格的.

A Neural Algorithm of Artistic Style

下面约定 p p 为风格图, a 为待转换的图,即内容图。比如 p p 为某张梵高的画, a 为某个场景,生成为 f f ,即具有梵高的画的风格的场景图。首先定义两个损失, l s t y l e lcontent l c o n t e n t ,前者希望 f f p 在“风格”上尽量一致,后者则希望 f f a 在内容上尽量一致。

l(a,f,p)=αlstyle(p,f)+βlcontent(a,f) l ( a , f , p ) = α ∗ l s t y l e ( p , f ) + β ∗ l c o n t e n t ( a , f )

上式子的 α α β β 为两个损失的平衡参数。我们希望 l l 尽量小,采用梯度下降即可优化。所用的CNN网络是VGG-19。开始训练时,随机生成 a 同等大小的随机噪声图 x x ,通过指定不同的层作为content损失的提取层 L c 以及style损失的提取层 Ls L s ,使得 x x L c 层得到的内容损失 lcontent(Lc,x) l c o n t e n t ( L c , x ) lcontent(Lc,a) l c o n t e n t ( L c , a ) 尽量一样。同时,使得 x x L s 层得到的风格损失 lstyle(Ls,x) l s t y l e ( L s , x ) lstyle(Ls,p) l s t y l e ( L s , p ) 也尽量一样。其中
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值