高 媛,王思彤
(牡丹江师范学院 数学科学学院,黑龙江 牡丹江 157011)
图像风格迁移是使用计算机技术将自然图片转化为特定风格的图片。最初,人们尝试通过算法模仿艺术家的作画习惯,但这种算法的不足在于算法改动依赖于图像像素,无法控制图像的内容结构保留效果,深度学习技术的出现解决了图像语义与纹理提取的问题,能够自动抽取图像的关键纹理结构特征,从而实现任意风格与内容的结合,取得了很好的风格迁移效果。图像风格迁移包括基于纹理迁移和基于深度学习的图像风格迁移。图像纹理能代表图像的风格特征,将图像某一部分色彩具有的规律性称为该图像的纹理,因此图像的风格迁移也可以是图像纹理的迁移[1]。图像风格与图像纹理密不可分,将二者联系起来可形成纹理迁移方法:一类属于纹理再生成的物理仿真技术,另一类是基于数据集样本的统计拼接技术,通过统计纹理样式重新采样的参数化纹理迁移及通过初始图像数据生成特定纹理的非参数化纹理迁移。Gatys等[2]提出了一种运用卷积神经网络来实现的新型的风格迁移算法,将特征图的Gram矩阵作为图像的风格特征,进行迭代,为了定义该算法的损失函数,分别提取内容图片的内容特征及风格图片的风格特征,通过卷积层的特征图提供损失,内容损失则由高卷积层构成,风格损失由多个卷积层综合构成,计算机由此学会艺术风格应用到普通图像上,即基于深度学习的图像风格迁移。本研究基于深度学习的图像风格迁移算法原理,对影响算法效果的两个关键因素,即迁移次数与目标图像的选择,采用控制变量法与实验对比法进行实验,找到迁移效果与这两个因素之间的变化规律,从而对算法的应用研究提供参考。
基于深度学习的图像处理网络主要采用卷积神经网络(Convolutional Neural Network,CNN)。卷积神经网络因其独特的结构而具有强大的学习能力,包括输入层、卷积层、激活函数、池化层及全连接层。卷积层是卷积神经网络的核心,卷积层的卷积运算相当于图像处理中的滤波器运算(也称核运算),将各个位置上滤波器的元素与输入元素相乘的和(即做内积)保存到对应的输出位置,每个位置都计算一遍,以得到卷积运算的输出。池化层的作用是将卷积运算后的结果特征矩阵进行压缩,且不破坏特征的方位信息。通常使用最大池化层,这种池化层不仅保留了特征的方位信息,还能防止特征值被压缩或过滤。卷积与池化后通常需使用全连接层进行分类或回归,全连接层激活函数通常为sigmoid函数及ReLu函数。
算法模型网络结构图如图1所示。本研究使用的深度学习网络模型是VGG[3],具有多种模型结构,其中VGG16及VGG19是效果最好的两种。该模型主要使用3×3的卷积算子,在保证感受野的前提下减少了模型参数量,能够很好地实现纹理及内容特征提取。模型结构主要采用已经训练好的VGG19深度网络模型,对风格图像、目标图像及内容图像均进行特征的卷积采集,并选择一些卷积层作为风格或内容因素对比层,来计算目标图像与风格图像的风格损失,计算目标图像与内容图像的内容损失,并对内容损失及风格损失进行加权求和,求得的总损失作为优化目标,来更新目标图像的像素内容。
图1 算法模型网络结构
内容损失。生成图像与原始内容图像在内容上的差异程度被称为内容损失,通过原始图片的内容和生成图片的内容作欧氏距离求得,其大小随着原始图像与生成图像的内容结构距离的变化而变化,见式(1):
(1)
风格损失。使用格拉姆矩阵(Gram矩阵)代表图像的风格。n维欧氏空间中,任意k(k≤n)个向量a1,a2,…ak内积所组成的矩阵,称为这k个向量a1,a2,…ak的Gram矩阵。例如:向量a=[a1,a2,a3,…an],向量b=[b1,b2,b3,…bn],则a和b的内积公式为:
a·b=a1b1+a2b2+…anbn
(2)
如果两个图像的特征向量的Gram矩阵差异较小,那么判定它们高度相似。
(3)
(4)
(5)
将输入的图像缩放,将其转换为torch tensor且适合网络的输入尺寸。对内容图像和风格图像分别用预训练好的VGG网络进行特征采集,并保存计算出的所有层的特征数据。对目标图像通过VGG网络进行特征学习,与已经计算好的内容图像及风格图像对应的特征层的特征数据进行计算,得到内容损失、风格损失及总损失。对总损失函数进行求导,根据导数采用反向误差传播法,对目标图像进行优化。重复上一步过程,直到总损失函数的变化量足够小,即内容图像的风格变化与风格图片的风格距离最小且风格图像的内容变化与内容图片的内容距离最小或达到预定的迭代次数。
本实验以Pyhton为编程语言,使用VGG16神经网络模型进行训练。计算机硬件处理器为Intel(R) Core(TM) i5-8300H,主频为2.30 GHz,内存为12.0 GB。
如图2、图3所示,风格图像是梵高的星空,当迭代次数固定为2000次时,改变内容与风格的权重比,当权重比较小时,生成图像与内容图像几乎相同,原因是风格权重相对于内容权重在运算时产生的影响过小。当权重比过大时,产生的迁移效果过分依赖于风格图像,干扰了内容成分。
图3 内容与风格不同权重比生成图
从图3能够看出,当风格权重较小时,生成图像的风格与风格图像的风格差别较大,内容图像的内容特征能很好地展现。当风格权重较大时,生成图像的风格会与风格图像的风格相近,但仍能保存内容图片的内容特征。当风格权重为100时(此时就可以理解为是最为合适的权重比),能生成视觉上感觉好看的图像。风格特征与内容特征的权重比没有一个固定精确的值,可依情况精细处理。
使用噪声图片进行图像风格迁移,因为噪声图片的像素是随机产生的,它所包含的特征既不同于内容图像也不同于风格图像,在迁移过程中能更好地向内容图像及风格图像进行迁移,令风格迁移效果增强。
如图4所示,当迭代次数逐渐增大时,使用噪声图像进行迁移与使用内容图像进行迁移生成的输出图像有明显差别。这是因为使用内容图像进行迁移时,迁移结果对于内容图像的内容特征损失值为0,迭代过程中迁移效果更倾向于内容图像,即受到内容图像的约束较大,所以迭代次数少时也能生成视觉上感觉好看的图像。使用噪声图像进行迁移是向内容图像与风格图像两个方向同时迁移,迁移过程中既要在内容上向内容图像的内容特征接近,又要在风格上向风格图像的风格特征接近,使优化过程相对自由,不会像使用内容图像时落入局部最优点,所以迭代时更倾向于优化为全局最优点,迭代次数越大,整体迁移效果越好,整体风格的迁移越好。
图4 不同原始目标图像对比图
图像风格迁移算法是计算机领域的重要应用。探究了基于深度学习中的卷积神经网络所形成的图像风格迁移算法及算法相关因素,即损失因素对比率,根据原始内容的选取与迭代次数的关系,完成了实验并对影响因素进行分析,得到以下结果:风格权重与内容权重之比对迁移效果影响较大,比率与迁移效果呈倒U规律,故可根据此规律调整比率参数。根据噪声图像或内容图像为原始目标图像在迁移效果上的特点,可按照迁移的具体要求选择不同的原始目标图像,如果能从理论上分析出最优值,就可以不采用实验法来确定这些参数,从而提高风格迁移效率。