卷积神经网络的图片风格转换系统思考

卷积神经网络的图片风格转换系统思考

摘要:随着互联网技术的推进发展,对图片风格进行个性化、艺术化的处理受到广泛关注,并成为一大发展热点。神经网络迁移是另一种“印刷术”,从图片中复制风格并对新的图片进行转换,具有重要的现实意义。本文通过使用卷积神经网络方法,在内容、风格两个层面上将图像分离,标注融合后相对应的图片进行跟进优化,降低照片的损失值;按照数值重新糅合制作出新的图片,能够促进图片与所需风格的有效融合,可以完美地掩饰图片上的一些瑕疵,应用范围更加广泛,与用户交互更加友好,体验感更愉悦。

关键词:Python;卷积式神经网络(CNN);深度学习;图片风格迁移;VGGNet;NeuralStyle

0引言

在学术研究方面,对于图片风格转换的可探索性领域十分广泛;在日常互联网产品中,其应用空间也十分广阔。例如可应用于所拍摄照片的后期处理,为用户打破使用固定滤镜的限制;还可以根据用户心仪的风格,改变图片纹理,对图片的视觉感官进行层次化处理,从而在社交网络分享平台上多角度体现自己图片的独特性,为用户打造个性化体验。在图像方面,2015年Gatys等人[1]提出了基于神经网络的风格迁移算法。JustinJohnson提出了采用Torch实现Neural-style网络,将图片经过多次运算,达到无法以肉眼判别图片真伪的程度。后来研究方法主要包括利用卷积神经网络实现高层次图像的内容合成[2]和对Gatys算法的优化[3],加快了训练模型的速度。随着人们对技术的更加智能、精准、快捷的追求,反卷积层允许模型[4]被提出,通过小图的点描绘大图中的方块。随后BagofFeatures方法[5]也被提出,该方法先把图片拆成小块,然后逐块进行比较,并标记出相似块数最多的区域;当某一小块识别出现错误时,将其他小块作为识别依据,从而大大降低系统错误的风险。基于神经网络的风格迁移从2015年出现至今,发展非常迅速,并且被应用在很多领域里。本系统以Python作为开发语言来实现深度学习,在运用NeuralStyle算法的同时进行优化改进,通过收集用户感兴趣的画家作品,将图片转化为各种需求的画作风格,大大增强了系统应用的性能。

1系统设计原理

图片风格转换系统利用Tensorflow框架和大量的第三方库提供了卷积式神经网络方法,并利用NeuralStyle算法对图片和不同的风格加以融合,使照片更具个性和艺术气息。另外还对NeuralStyle算法进行优化,以增强其实际使用的有效体现,显示了基于CNN的样式传输方法的输出。首先以深度学习为基础,采用VGG19网络结构与Python的Tensorflow系统提取原有图片内容与艺术作品的图像风格,后期基于轻量框架Flask将系统部署在Web服务器上运行。VGG19网络结构通过层层递进对更复杂的特征进行提取,从而更好地识别物体,所以每层都相当于许多小提取器,对局部特征进行更精确地提取。深度卷积分类网络在特征提取方面功能强大,将网络训练好后可以成为效果良好的图片数据特征提取器,由多层非线性函数所构成的深度网络可定义为复杂多元非线性函数来实现从输入图片到输出的映射。因此,通过将深度网络进行训练就可以成为一种损失函数计算器。

1.1VGG19深度网络

VGGNet旨在提取输入图片的特征并输出图像类别,而图像风格迁移技术主要是用于产生对应输入特征的图片并进行输出,如图1所示。通过VGGNet,前面的卷积层是从图片中获取风格特征,后面的全连通层将特征转化成类别概率。其中的浅层提取特征比较简单,可检测亮度和点等特征;深层提取特征往往是较为复杂,如判断是否体现脸部特征、是否出现某种特定物体等。

1.2内容重构

在每个卷积层中,根据滤波器个数Nl确定图片p和训练卷积网络(比如VGG19)所得到的featuremap个数;再将featuremap转化成向量,其大小为Ml。将每一级的Nl个特征向量存储到矩阵Fl∈RMl×Nl中,其元素Fijl表示第l层的第i个滤波器在位置j上的激活频率。如果须确定某一特征从而产生新图片x,使图片在选定层中的新特征Pl与原特征Fl相等,则定义损失函数如下:

1.3图片风格

一般情况下对所需风格进行定义会相对复杂。根据上一层卷积操作中卷积核的数量,可以获得每一级中的特征图。对featuremap两两进行内积,得到Gram矩阵为图片风格,其中包含了纹理和颜色的相关信息,定义如下:l其中:Gijl为对某一featuremap的i与j列进行内积,也是Gram矩阵中第i行第j列的元素值;k则是featuremap中所对应的元素。每层风格的损失函数定义如下:其中:Nl为某一featuremap的个数;Ml为featuremap的尺寸。对这层中的每一个featuremap进行遍历,从而得出Gram矩阵,i和j可相同。最终的风格损失函数为:其中,wl为某层的风格对应的权重。1.4训练图像选择白噪声图像,并加入表达内容的图片和所需风格的图片来搭建卷积式神经网络,从而得到具有特定内容和风格的合成图片,如图2所示。设计网络时须注意某些层和提取网络的维度相同。

2系统功能实现

首先利用Tensorflow库与VGG19网络搭建卷积神经网络,训练出具有将任意一张图片的内容与风格分离功能的模型;然后分别对原照片的Content(内容)与名画风格的Style(风格)进行单独提取;再将提取到的风格与原图的内容相结合,生成最终的效果图,实现风格迁移;最终将训练好的模型保存,利用Flask将项目部署在Web服务器上即可。接下来训练卷积式神经网络,然后定义卷积算法,在Tensorflow的slim模块中传入参数。对结构部分进行处理,需要先对输入图片做padding,并通过图像转换网络后去除,这样可以防止经过迁移之后出现边缘效应。随后根据VGG19的特征图片,对图片的内容差异进行了比对衡量。根据输出的特征图片的均方误差,可以通过比较合成图片与内容图片对来实现优化,使其内容一致。通过Gram矩阵量化体现合成图片与原图片在风格和内容上的差异;再将风格loss与内容loss按权值相加,优化loss,使所优化图片同时拥有所选内容图片的内容和所选风格图片的风格。为了带给用户更快的图片转换体验,该系统在实现过程中对速度进行了优化。首先,建立交换网络,以进一步优化权值,进而实现快速风格转化;其次,对系统进行降维和升维优化,减少计算量,并对loss进行优化,将图片在水平、垂直两方向上平移一个像素,再与平移前的图片相减,算出绝对值之和,为TotalVariation;最后,对一些近似图片进行约束,减少内容相似的图片和风格相似的图片,从而产生一个可以较快地对风格和图片进行有效融合并输出用户期望图片的模型。为了达到更加友好的交互效果,选择将项目部署在Web上,采用了轻量级Web框架Flask,将程序打包搭建成一个Web系统。最终实现结果如图3所示。

3系统测试效果

通过测试来验证本系统功能是否满足所计划的用户需求,是否与实际情况相符合。图4为测试图,选择陕西师范大学的一张风景照片,对不同的风格进行风格融合,选择六种不同艺术画作为风格训练内容,其中包括爱德华•蒙克的《呐喊》(如图5所示)、葛饰北斋的《神奈川冲浪里》(如图6所示)、梵高的《星月夜》(如图7所示)、伊万•切尔尼的《尖角》(如图8所示)、梵高的《向日葵》(如图9所示)、毕加索的《窗前的女人》(如图10所示)。随着意境的变化,图片产生了别样的美感,彷佛本来就出自著名画家之手。4结语本文通过使用卷积神经网络方法,设计了图片风格转换系统。首先,系统整体从设计开发、功能运行到测试,已经达到了最初开发目的;并且经过实际测试,已达到投入使用的标准。另外,开发系统所用技术为当前主流技术,开发工具和所用框架效果较好,整体设计良好。最后,图片风格转换系统为用户处理图片提供了更多选择和更全面的功能,能够使拍摄的照片更具有艺术气息。

作者:王瑜佳 单位:陕西师范大学  物理学与信息技术学院