基于卷积神经网络的图像风格迁移算法研究
2021-05-07金智功周孟然
金智功,周孟然
(安徽理工大学 a.计算机科学与工程学院;b.电气与信息工程学院 ,安徽 淮南 232000)
0 引 言
图像风格迁移就是指将一张风格图片的艺术风格迁移到另一张内容图片上,最后得到一张生成图片。使得图像在保证内容特征不发生大的改变的情况下学习到艺术风格,如图1所示。
(a)内容图像 (b)风格图像 (c)生成图像
早期的风格迁移有基于纹理合成和基于非真实感渲染两种。其中基于纹理合成的方法有Julesz[1]提出的基于纹理建模来进行特征提取的方法,用获得的像素进行n阶信息统计特征的相似程度来表达视觉上的差异;Bergen[2]等人用金字塔图片来匹配不同尺度的滤波器响应直方图来分析纹理,而非直接统计像素点。总的来说,参数化纹理建模就是先用滤波器提取图像的纹理特征,之后用重采样方法合成新的纹理。基于非真实感渲染的方法有Lu[3]提出的通过对笔触的交叉、拖尾和颜色混合的处理,将原来的图像渲染成多色彩立体风格图像;Wang[4]使用了通过颜色转换、基于显著性的细节层次图绘制、手震模拟和湿画效应模拟,最后产生艺术还原度极高的水彩画图像的方法;Hertzmann等人[5]提出了使用一系列长而弯曲的笔触,通过选择源图像的色彩,将风格表示为一组直观参数,通过调整参数改变绘画风格,但是基于笔触的算法是根据某一种特定的风格设计的,不能模拟任意的样式,局限性较大。
随着深度学习的兴起,Gatys等人[6]利用迁移学习[7]使用了在Imagnet数据集上预训练好了卷积神经网络(Convolutional Neural Networks,CNN)模型来实现了图像风格迁移。同时定义了基于卷积神经网络风格迁移方法的损失函数,利用较高的卷积层特征来提供内容损失和综合多个卷积层的特征图来提供风格损失。从而使计算机辨别并学会艺术风格,从而用到普通照片上,就可成功地实现图像风格迁移。这种使用深度学习的风格迁移方法的效果要远远好于传统方法。
之后,刘洪麟等[8]提出了一种具有空间约束的快速神经风格迁移方法,可以使图像风格迁移效果更优;孙劲光等[9]采用残差式神经网络完成了图像特定区域的风格化。但是都没有对风格迁移算法的网络进行研究,都是沿用之前图像风格迁移算法的网络。并且一次算法运行过程中,只能迁移单一的风格。所以本文对风格迁移算法做了完善:1)测试了计算机视觉领域几种典型的卷积神经网络用于风格迁移效果,并提出了一种更加适用于图像风格迁移的卷积神经网络结构;2)对风格迁移的损失函数做了改进,可以使一张图片同时迁移多种不同的艺术风格。
1 风格迁移网络
卷积神经网络是一种具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习领域最常使用算法之一。其基本结构由输入层、卷积层、池化层、全连接层及输出层构成。卷积层通过卷积核与输入的图像进行卷积操作,得到特征图,卷积神经网络也由此而得名。一般若干个卷积层之后会接一个池化层,然后这样交替设置,池化层主要有最大池化和平均池化两种,其中最大池化比较常用。经多个卷积层和取样层后,会连接1个或者以上的全连接层。全连接层可以整合卷积层和池化层中具提取的特征信息,最后一层全连接层将最后输出值传递给的输出层。
1.1 经典卷积神经网络迁移效果对比
最早是卷积神经网络是于上个世纪90年代提出的时间延迟网络和LeNet-5。[10]但是到2012年,卷积神经网络才真正开始走进了人们的视野。在Imagenet图像识别大赛上Alexnet[11]引入了全新的深层结构和dropout方法,在图片分类方面将正确率从75%提升到85%以上远远超过第二名,颠覆了图像识别领域。从此卷积神经网络开始在计算机视觉领域开始了广泛的应用。
Bianco等人[12]对目前用于图像识别的大多数卷积神经网络进行了深入的分析,通过观察多个性能指标。例如,在Imagnet数据集上TOP1和TOP5的准确率,模型的结构复杂度,训练网络耗时和参数数量等等。这项工作帮助了后来从事计算机视觉的研究人员全面了解了这些网络的性能,以及未来值得去研究的方向,并为从业者选择更适合实际部署和应用的资源限制的卷积神经网络架构。使用其中几种典型的在Imagenet数据集上有着优秀表现的预训练卷积神经网络模型VGG19[13],Resnet50[14],InceptionV3[15]和NasnetMobile[16]等实现风格迁移算法,结果如图2所示。
(a)内容图片 (b)风格图片 (c)VGG19结果
(d)Resnet50结果 (e)InceptionV3结果 (f)NasnetMobile结果
从图2可以看出VGG19和InceptionV3的风格迁移效果较好,而Resnet50和NasnetMobile的风格迁移效果则很差。图(c)很好的迁移的风格图片的纹理,但是图像出现一定程度的扭曲和细节丢失,如图片右下角的石狮子就几乎消失了;图(d)不仅没有迁移风格,而且产生了大量噪声使图片变得模糊;图(e)很好的保存了图片的细节,但是纹理感不强,最后图(f)相较于内容图片则没有多大的改变只是整幅图片的颜色发生了少许变化。
1.2 卷积神经网络结构设计
Zeiler等人[17]提出了三种卷积神经网络可视化方法,分别为卷积核输出的可视化、卷积核的可视化和热度图的可视化。通过其中的卷积核输出可视化方法可以发现卷积神经网络的低层主要是学习一些线条,颜色,花纹等特征,而高层则学习到了一些更加具体的特征如狗的脸和鸟的翅膀等图案。而图像风格迁移中的艺术风格通常指的就是一些线条,颜色和花纹等基础特征。所以随着卷积神经网络层数的加深对风格迁移的效果理论上不会有太大的提升。于是,分别取VGG19网络的“block1_covn1”,“block2_covn1”,“block3_covn1”,“block4_covn1”,“block5_covn1”和InceptionV3网络的“covn2d_2”,“covn2d_5”,“mixed0”,“mixed4”,“mixed7”各5个卷积层作了实验,如图3所示。
(a)block1_covn1 (b)block2_covn1 (c)block3_covn1 (d)block4_covn1 (e)block5_covn1
(f)covn2d_2 (g)covn2d_5 (h)mixed0 (i)mixed4 (j)mixed7
从图3中的(a), (b), (c), (d), (e),可以看出,VGG19网络中“block3_covn1”层和前面的卷积层风格迁移效果差异较大而与之后的层差异则很小。从图3中的(f), (g), (h), (i), (j)中可以发现InceptionV3与VGG19类似,InceptionV3的“miexd0”之前层风格迁移差异较大,而之后的层则几乎没有变化,说明网络的深度对于风格迁移效果的影响并不是最主要的因素。所以在设计风格迁移网络时,可以不用追求太深的网络。因为网络的深度不能使风格迁移的效果有太大的提升,可以选择增加网络的宽度来提升风格迁移的效果。第一步将VGG19和InceptionV3网络并联起来,第二步根据上面实验的结果,所以选取VGG19网络中“block3_conv2”之前的层和InceptionV3网络中第二个InceptionA模块前所有的层来搭建网络。本文的风格迁移网络结构如图4所示。
图4 风格迁移网络结构图
本文的风格迁移网络结构比VGG19减少了95.1%的参数,比InceptionV3减少了95.5%的参数,具体如表1所示。同时大大减少了需要占用的内存空间,并提高了网络的运算速度。又将两种网络并联起来可以获得更加丰富的图像底层特征,兼顾了两种网络在风格迁移方面的优点。
表1 参数数量表
2 风格迁移损失函数
图像风格迁移的损失函数Ltotal主要分为两个部分:
Ltotal=αLcontent+βLstyle
(1)
其中:Lcontent为内容损失,描述了输入的内容图像与生成图像在内容上的差别,该损失函数值越小,表示处理前后的图在内容上越接近,反之则越大;Lstyle为风格损失,描述了生成图片与风格图片之间的风格差异,风格损失越小图像艺术化程度越高。
2.1 内容损失
(2)
2.2 风格损失
(3)
(4)
(5)
通常会使用多层卷积层来计算风格损失,同时为每层设置一个权重系数wl,则最终的风格损失函数为:
(6)
3 实验结果及分析
为了验证方法的有效性,在Windows10 64位系统下,使用基于Python的Tensorflow[18]框架,实现本文的图像风格迁移算法。同时使用ImageNet数据集上预训练好的VGG19和InceptionV3网络的权重。机器配置为inter i7-9750H CPU,16G内存和NVIDA GeForce GTX 1660Ti 6G显卡。
3.1 风格迁移结果对比
使用图2(a)作为内容图片,图2(b)作为风格图片。并且根据公式(6),设本文的风格迁移网络VGG19部分的卷积层权重为wvgg,InceptionV3部分的卷积层权重为winception,令winception:wvgg的比值分别为和100,102,104和106,迭代次数为500次,来进行实验,结果如图5所示。
(a)winception:wvgg=100 (b)winception:wvgg=102 (c)winception:wvgg=104 (d)winception:wvgg=106
从图中可以看出,图5中的(a)和图2中的(c)结果相似,图5中的(d)和图2中的(e)结果相似,而图5中的(b)和(c)的效果介于图2中的(c)和(e)之间。这说明本文的风格迁移网络可以通过调节winception:wvgg的比值来调节风格迁移的效果。
最后,调整winception:wvgg的比值到103这个数量级,取得的风格迁移效果最佳。并且与VGG19与InceptionV3网络的风格迁移结果的细节做了一个对比,如图6所示。
(a)整体效果 (b)Ours (c)VGG19 (d)InceptionV3
对比图6中(b)和(c),可以看出相比于VGG19的迁移效果,这里的图像并没有出现扭曲。对比图6的(b)和(d),(b)的纹理要比InceptionV3要清晰,兼顾了两种网络的优点。同时引入了峰值信噪比(PSNR)和结构相似性(SSIM)两个指标来对我们的风格迁移效果进行评价。其中PSNR用来衡量图片的失真情况,PSNR的值越大则失真越小;SSIM用来衡量图像的结构相似性,SSIM值越高则两幅图像越相似。结果如表2所示:
表2 三种模型风格迁移时间对比表
从表中可以看出,本文的方法在PSNR和SSIM两项指标上都要比VGG19和InceptionV3两种方法略高一些。同时本文的网络迭代速度比VGG19提升了47%,比InceptionV3提升了22%,具体如表3所示。
表3 三种模型风格迁移时间对比表
3.2 图像多风格迁移
Gatys方法中提出的原始风格损失函数只能在一次风格迁移过程中只能让内容图片学习到单一的风格图片的风格,为了使内容图片可以在一次风格迁移过程中同时学习到多种不同的风格,我们对Gatys损失函数的风格损失部分(4),做出了改进得到公式(5)。使得一张内容图片可以在一次风格迁移过程中学习到多种不同的艺术风格。
于是,使用图2(a)作为内容图片,使用梵高的《星夜》作为第一幅风格图像,《神奈川冲浪里》作为第二幅风格图像。并分别做风格迁移与多风格迁移的结果做出了对比,结果如图7所示。
(a)风格图像1 (b)单风格迁移结果1 (c)多风格迁移结果 (d)单风格迁移结果2 (e)风格图像2
4 结束语
本文使用了目前计算机视觉领域几种常用的卷积神经网络来实现风格迁移算法,并在此基础上构建了一种新的风格迁移网络模型。降低了网络参数,并提高了算法的运行速度和效果,同时为以后研究图像风格迁移的人员在网络选择和设计方面提供了参考。最后对Gatys提出的风格损失函数做了改进,使得算法可以同时对一幅图片迁移多种不同的艺术风格。