深度学习之Style Transfer

Style Transfer

1、引入

最近看了一些基于深度学习的Style Transfer, 也就是风格迁移相关的paper,感觉挺有意思的。

所谓风格迁移,其实就是提供一幅画(Reference style image),将任意一张照片转化成这个风格,并尽量保留原照的内容(Content)。之前比较火的修图软件Prisma就提供了这个功能

下面就总结一下这个领域的几篇比较有影响力的paper。如有纰漏,还请指正。
在这里插入图片描述
上图是Style Transfer问题的效果图:将图片B的风格迁移到另一张图片A上。

在这里插入图片描述
上图是图像风格迁移所涉及的科技树。

在继续讨论之前,我们有必要指出Style Transfer和其他传统的有监督学习的CV问题之间的差异。

1.风格这种抽象的概念,该如何定义?艺术领域的很多东西,通常都是很难量化的。如果要采用有监督学习的方法的话,怎么获得学习的标签呢?

2.就算解决了第1个问题,如何生成一批同一风格的图片也是一个大问题。画家可是稀缺资源啊。

因此,Style Transfer问题的关键点就在于:如何利用仅有的1张风格图片,将其风格迁移到其他图片上。

下面是对一个动态图,进行毕加索风格处理后的结果。
在这里插入图片描述
在这里插入图片描述
2、过程介绍

现在我们来看看具体的实现过程。这是论文[3]给出的实现框架。首先我们来理解一下这个框架,懂了这个框架你就懂了风格迁移的实现过程了。我们可以看到有三个框架和三个输入图片。论文中使用的框架是VGG19,也有用VGG16的,我们在实验中使用的是VGG16。a是风格图,p是内容图,x是随机生成的噪声图。该过程的总体思想就是通过对噪声图像进行约束,使其不断的同时趋近于内容图也趋近于风格图。这个约束怎么实现的呢?本论文中使用的是两种(风格和内容)损失来进行约束。首先看内容损失Lcontent,是由内容图和随机噪声图经过卷积滤波后,在第四层分别的feature map的距离的平方和。这里存在一个问题,为什么是第四层?后面有讲,先不纠结。再看风格损失Lstyle求取过程。先对风格图和噪声图的每一层滤波feature map分别求gram矩阵,再求其距离的平方和,再将5层的结果加权求和。此时我们获得了风格损失。最后将两种损失加权求和求得总的损失Ltotal。在这里又存在两个问题:1.什么是gram矩阵,为啥要用gram矩阵2.为啥风格损失要将前几层的损失求和,而内容损失确只是第四层?先不纠结,后面有讲。现在对x噪声图的约束产生了,也就是总的损失。利用反向传播算法,迭代更新权重和偏置参数,从而更新输入图像。由于现存的框架比如TensorFlow内含优化函数,所以迭代过程我们就不关心了。好了,整个过程大致就是这样。

在这里插入图片描述
现在让我们来回答上面三个问题:

1.什么是gram矩阵,为啥要用gram矩阵?
Gram矩阵就是每一层滤波后的feature map, 后将其转置并相乘得到的矩阵,如下图所示。其实就是不同滤波器滤波结果feature map两两之间的相关性。譬如说,(如下图)某一层中有一个滤波器专门检测尖尖的塔顶这样的东西,另一个滤波器专门检测黑色。又有一个滤波器负责检测圆圆的东西,又有一个滤波器用来检测金黄色。对梵高的原图做Gram矩阵,谁的相关性会比较大呢?如上图所示,“尖尖的”和“黑色”总是一起出现的,它们的相关性比较高。而“圆圆的”和“金黄色”都是一起出现的,他们的相关性比较高。因此在风格转移的时候,其实也在风景图里去寻找这种“匹配”,将尖尖的渲染为黑色,将圆圆的渲染为金黄色。如果我们承认“图像的艺术风格就是其基本形状与色彩的组合方式” ,这样一个假设,那么Gram矩阵能够表征艺术风格就是理所当然的事情了。

在这里插入图片描述
在这里插入图片描述
2.为什么风格损失要用多层的损失加权求和,而内容损失只用第四层的损失?
我们都知道,随着卷积网络层数增加,获得的特征映射更加抽象。论文[3]中做了这样的实验,可以看出,层数增高的时候,内容重构图可变化性增加,具有更大的风格变化能力。而风格随着使用的层数越多,风格迁移的稳定性越强。我们也做了实验来证明。

在这里插入图片描述
下面的两行图是我们自己,对不同层的风格和内容的重构图。上面一行是不同层内容作为损失的内容重构。下面一行是多层组合风格损失的重构图。具体的层数,在每一幅图的下面有注明。结果表明确实层数增高的时候,内容重构图可变化性增加,具有更大的风格变化能力。而风格随着使用的层数越多,风格迁移的稳定性越强。所以,前面论文[3]做出了这样的选择。同样,这个过程中,还有很多权重参数的设置,都是实验验证出来的。所以没有什么为什么,就是这样实验出来的效果好罢了。到这里,整个过程也就讲完了。

Content reconstruction

在这里插入图片描述

Style reconstruction

在这里插入图片描述

原始的 Optimization-based method

在这里插入图片描述
简单来说便是输入一张随机噪音构成的底图,通过计算Style Loss和Content Loss,迭代update底图,使其风格纹理上与Style Image相似,内容上与原照片相似。正常的训练过程是通过loss反向传播更新网络参数,这里则是用一个已经训练好的VGG16作为backbone,锁住参数,更新输入的底图。

Content Loss

在这里插入图片描述
即 Content image和Output image在某一层(VGG16第四层)的距离的平方和。

Style Loss

在这里插入图片描述
这里需要用到一个在纹理生成领域比较常见的Gram Matrix,来衡量Style image和output image在某一层的风格相似性。作者对前四层的feature map都进行了计算,加权求和。这里给出CS231n描述的计算方法还有另一位博主写的理解以供参考(https://www.cnblogs.com/subic/p/8110478.html)
该方法最大的确定就是速度慢,大概200-300次迭代才能得到比较理想的结果。

一次成型的Feedforward-based method

在这里插入图片描述
也是比较直接的一个想法,增加了一个Autoencoder 形状的Feedforward Net 来拟合风格迁移的过程,仍然是之前的Content loss 和Style loss ,用另一个网络计算并统一在一起称之为Perceptual Loss。

早期方法

图像风格迁移这个领域,在2015年之前,连个合适的名字都没有,因为每个风格的算法都是各管各的,互相之间并没有太多的共同之处。

比如油画风格迁移,里面用到了7种不同的步骤来描述和迁移油画的特征。又比如头像风格迁移里用到了三个步骤来把一种头像摄影风格迁移到另一种上。以上十个步骤里没一个重样的。

可以看出这时的图像风格处理的研究,基本都是各自为战,捣鼓出来的算法也没引起什么注意。

在这里插入图片描述
上图是一个油画风格迁移的pipe line。

在实践过程中,人们又发现图像的纹理可以在一定程度上代表图像的风格。下文如无特指,纹理/风格均为同义词。

这又引入了和风格迁移相关的另一个领域——纹理生成。这个时期,该领域虽然已经有了一些成果,但是通用性也比较差。

早期纹理生成的主要思想:**纹理可以用图像局部特征的统计模型来描述。**然而手工建模毕竟耗时耗力。。。

CNN的纹理特征

在进行神经风格迁移之前,我们先来从可视化的角度看一下卷积神经网络每一层到底是什么样子?它们各自学习了哪些东西。

遍历所有训练样本,找出让该层激活函数输出最大的9块图像区域;然后再找出该层的其它单元(不同的滤波器通道)激活函数输出最大的9块图像区域;最后共找9次,得到9 \times 99×9的图像如下所示,其中每个3 \times 33×3区域表示一个运算单元。

在这里插入图片描述
可以看出随着层数的增加,CNN捕捉的区域更大,特征更加复杂,从边缘到纹理再到具体物体。

Deep Visualization

上述的CNN可视化的方法一般被称作Deep Visualization。

实现细节

在这里插入图片描述
这是原始论文的插图,其符号表示和本文有所差异。其中的A、F、P各层的output,都是使用预训练好的Alex-Net生成的。

可以看出A和P,在整个迭代过程中,只需要进行一次Alex-Net的前向计算,因此可以事先计算好。

为了在迭代过程中,不修改Alex-Net的权重,而只修改F,我们可以使用tf.constant来创建Alex-Net的各个参数,进而建立Alex-Net。这样在backward的时候,梯度就只会修正到tf.Variable,也就是F上。

缺点

Gatys的方法虽然是里程碑式的进步,但仍然有如下缺点:

1.渲染速度缓慢。渲染一张图片需要从随机噪声开始,反复迭代若干次,才能得到最终的结果。

2.需要根据风格的不同,调整不同的超参数。换句话说,就是一个Style Transfer的模型就只能用于转换一种Style,通用型不强。

因此,之后的研究主要集中在对这两方面的改进上。针对前者的改进可称作fast style transfer,而后者可称作Universal Style Transfer。

此外,不是所有的style transfer都是DL方法,很多新特效往往还是用传统的滤镜实现的。比如最近比较火的“新海诚风格”。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Style Transfer Gui Master是一个基于图形用户界面(GUI)的图像风格迁移的操作软件。这个软件的主要功能是将一张图像中的风格特征与另一张图像中的内容特征相融合,从而生成一张具有新风格的图像。这个软件采用了深度学习技术,通过卷积神经网络(CNN)来实现图像风格迁移。 Style Transfer Gui Master的操作流程非常简单,用户只需要输入待处理的图像及风格图片,然后根据软件预设的参数进行风格迁移操作。软件提供多种预处理和后处理选项,用户可以根据需要自行选择。此外,软件还支持多种不同的风格模型,提供了一定的自由度供用户选择。操作完成后,可以立即预览和保存结果。 Style Transfer Gui Master的应用非常丰富,可以用于创作艺术作品、修饰照片、以及制作风格化的视频等。比如,可以将一张普通的风景照片转换成具有梵高画风格的图像,或用它制作抽象艺术作品等等。由于软件操作简单易用,即使不具备深度学习知识的用户也可以轻松上手。 ### 回答2: “Style Transfer GUI Master”是一种图形用户界面大师,在计算机科学和人工智能领域中使用,常用于图像处理的Style Transfer(风格转换)技术中。 风格转换是一种利用深度学习技术,将一张图片的风格转移到另一张图片上的技术。Style Transfer GUI Master则是对这种技术进行了图形化处理,使得操作更为简便。 该软件主要分为两个模块,一个是用于选择源图像和风格图像,然后进行风格转换的模块,该模块内置了多种风格选择,用户也可以自己自定义风格。此外,该模块还支持通过调整参数来定制化风格转换结果。 另一个模块则是对已经转换过的图像进行后期处理,包括平滑、锐化、降噪等。同时,在该模块中,用户还可以选择导出文件的格式和质量,从而更加灵活地处理图像。 总之,“Style Transfer GUI Master”是一种功能强大的图像处理软件,而且由于具备了友好的图形用户界面,非常易操作,并且可以通过自定义参数来实现更加个性化的风格转换效果。 ### 回答3: Style Transfer GUI Master是一款风格转移图像处理软件,可以让用户将一张图像的风格特征应用到另一张图像上,从而创造出独特的艺术效果。它基于深度学习技术,通过对图像的内容和风格进行分析、编码和计算,将两者融合生成一张新的图像。该软件提供可视化的图形用户界面,用户可以通过简单的操作,选择不同的风格样式、调整参数,实时预览效果,并保存处理后的图像。除此之外,Style Transfer GUI Master还具备批量处理功能,能够同时对多张图像进行风格转移处理,大大提高了用户处理效率。此外,它还支持多种图像格式的导入和导出,方便用户在不同的平台上进行使用和分享。总之,Style Transfer GUI Master是一款功能强大、易于使用的图像处理工具,为广大艺术家和个人用户带来了创造性的艺术效果和便捷的使用体验,值得用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪子私房菜

给小强一点爱心呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值