APP下载

基于生成模型的图像风格迁移设计与实现

2020-10-26周亦诚

关键词:风格特征特征提取损失

杨 勃,周亦诚

(1.湖南理工学院 信息科学与工程学院,湖南 岳阳 414006;2.南京邮电大学 通信与信息工程学院,江苏 南京 211800)

0 引言

图像风格迁移是指利用算法学习特定图像的风格,然后将这种风格应用到另外一张图像上的技术[1].随着基于深度学习[2]的图像风格迁移技术在算法和理论方面的不断改进,图像风格迁移的效果得到很大提升.因而在图像处理、视频处理、充当风格设计辅助工具等方面都具有广阔的应用前景.

目前,基于深度学习的图像风格迁移方法主要包括基于图像迭代方法和基于模型迭代方法两类[1,3].前者在白噪声图像上进行迭代优化,后者在神经网络模型上进行迭代优化.虽然基于图像迭代的方法可以生成效果出色的合成图像,但这种方法计算效率低下[4].而基于模型迭代的方法通过使用庞大的数据集进行训练,生成带有指定风格的生成网络模型.当生成模型完成后,图片只需要经过一次前向传播,便可以得到最终的合成结果.相较于图像迭代方法的反复迭代,基于模型迭代的方法在计算效率上有很大提高.

本文采用基于生成模型的方法来实现图像风格迁移,借助预训练网络模型VGG19[5]与部分第三方函数库实现对图像风格迁移的处理,训练相应风格的生成模型,将图像输入生成模型就可以得到风格艺术化后的合成图像.

1 基于生成模型的风格迁移原理

基于生成模型的风格迁移方法最早由Justin 等[3]提出,是一种以文[1]算法为基础的改进方法,称为快速风格迁移.此方法使用感知损失函数对预训练网络模型提取的高层抽象特征进行平方求差,通过迭代优化训练出具有某种特定风格的生成模型.在文[1]的基础上直接使用训练好的模型的损失函数参数,节省了修改损失网络中各参数所需的大量时间,很大程度上提高了风格迁移的效率.

基于生成模型的风格迁移系统包含两个部分:生成网络(Transform Net)和损失网络(Loss Network)[3],如图1所示.图1中左侧方框内为生成网络,训练后用于最终的风格迁移;右侧方框内为损失网络,用于训练过程中风格迁移质量的评价.

图1 基于生成模型方法的网络结构

1.1 生成网络

生成网络是由白网络通过不断训练更新网络内的权值参数所生成的能够完成特定风格转换的网络,能将任意内容图像训练成带有一种特定风格的合成图像.一个生成网络只能将图像转换成一种固定风格的合成图像.如果需要更换不同风格,则需重新训练对应风格的生成网络.

目前主流的生成网络大都采用深度残差网络.本文基于深度残差网络基本模型[6],设计了一个包含多层残差模块的深度卷积网络.该网络设计为11层,前3层和后3层均为普通的卷积层,中间5层为标准残差模块,具体参数见表1.

此外,为提高网络非线性特征提取能力,普通卷积层之后再接一个RELU 非线性层;为了防止过拟合,使用实例正则化(instance normalization)对一个批次中单个图片输出进行归一化.最后,添加一个正切层将输出图像的像素映射在[0,255]之间.

本文采用全变差损失[7]来度量和优化生成网络生成的图像质量.全变差损失定义为

表1 生成网络模型参数表

而在图像中,连续域的积分可转化为在像素离散域中求和:

进一步,为度量和优化生成网络生成图像的风格迁移质量和内容保持质量,本文采用了风格损失和内容损失.计算风格损失时使用了Gram 矩阵,用于计算不同响应层之间的联系,即在保留低层特征的同时去除图像内容的影响,只比较风格的相似性.内容损失和风格损失[1]分别定义为

其中φ表示预训练模型VGG19;j表示第j个卷积层;φj(x)表示图x在模型φ的第j层的激活值;表示生成图G;y表示原始图C;F表示F-范数;表示图x在模型φ的第j层的激活值的Gram 矩阵.

1.2 损失网络

损失网络一般是预先训练好的、能够进行感知与语义信息编码的特征提取网络模型[8],通常使用预训练网络模型VGG16、VGG19 等.与生成网络不同,损失网络是用来计算内容损失和风格损失的工具,其内部各参数不进行更新,网络通过最小化总损失为生成网络的参数更新提供梯度.

本文使用的损失网络是预训练网络模型VGG19,包含16 个卷积层,3 个全连接层和5 个池化层.因全连接层对提取图像特征基本无用,故实际训练中未使用任何全连接层[9].实验中使用的预训练网络模型VGG19 的具体网络参数设置见表2.

表2 VGG19 网络模型参数

2 基于生成模型方法的风格迁移设计

2.1 处理流程

基于生成模型方法的图像风格迁移处理流程如图2所示.

首先将训练图像x输入到生成网络中获得合成图像y;然后将合成图像y、目标风格图像ys和目标内容图像yc分别输入到预训练VGG 网络中,提取y的内容和风格特征、ys的风格特征和yc的内容特征;计算y的内容损失、风格损失和全变差损失,并使用反向传播算法完成生成网络的参数优化和训练[10~12].

2.2 系统实现

按照上述的信息处理流程,以Python 作为工具语言编写程序,分六个步骤实现图像风格迁移:

Step 1:初始化.导入程序所需第三方库及卷积神经网络,指定风格图像路径、训练集路径、VGG 网络路径、保存路径等.设定learning rate、epoch、batch size 等参数,将训练集内图像数调整为batch size的整数倍,删去多余图像.

Step 2:图像预处理.读入图像后,对图像进行旋转、裁剪等处理.使用官方给出的RGB 通道均值数据[123.68,116.779,103.939]作为均值,图像数据减去RGB 通道均值进行去均值预处理操作.

Step 3:图像风格特征和内容特征提取.损失网络对图像矩阵进行特征值分解,提取出对应各个特征的特征向量,并在反向传播中不断更新这个特征向量集,使其构成一个符合某种分布的包含所需特征的特征向量集,进而达到进行特征提取的目的.风格图像经过损失网络处理后,逐层提取style_layers('relu1_1','relu2_1','relu3_1','relu4_1','relu5_1')中的风格特征features,用features 乘自身转置矩阵再除以自身的size值得到gram 矩阵作为图像的风格特征.将每一层的gram 的值存入style_features[layer]中,方便后续的调用操作.内容特征则直接采用VGG 网络提取content_layer('relu4_2')的特征.图像经过三层卷积下采样、五个残差块、两次反卷积上采样与最后一层卷积层处理,再经过tanh 函数规范输出值在0~255 之间,得到经生成网络处理后的各图像数据.下采样使feature_number 的个数增加,feature_size 减小;残差块解决网络退化的问题,提高网络性能;上采样使输入输出保持同样大小;最后一层卷积层输出通道为3 的图像,不进行relu 操作.

Step 4:计算总损失.总损失为风格损失、内容损失与全变差损失的和,计算公式为

其中w为各损失对应的权重值.

Step 5:迭代优化.总损失计算完毕之后,通过不断迭代优化,更新生成网络中的参数,使图像经过合成之后的总损失尽可能最小.

Step 6:模型形成.当迭代的图像张数达到最初设定的要求后,模型训练完毕,生成模型形成.

图像的风格特征提取是Step 3 的重点,输入预处理后的风格图像style_image_pre,经过风格特征提取,输出风格特征矩阵style_features.实现的伪代码如下:

1)去均值处理后的图像style_image_pre 通过VGG19 网络提取风格特征;

2)遍历生成网络中的style_layers 层,逐层将提取到的风格特征存入features 矩阵;

3)根据features 矩阵计算每个style_layers 层的风格特征矩阵

4)输出存有所有gram 值的风格特征矩阵style_features.

内容特征提取原理与风格特征提取基本相同.

图2 基于生成模型的风格迁移处理流程

3 实验与分析

实验时使用的计算机的CPU 为Intel i7 2.7GHz,操作系统为Windows10 x64,Tensorflow 版本为Tensorflow 1.4.0.实验数据来源分别是训练集train2014 和损失网络VGG19;实验参数见表3.

表3 实验参数

经过数十小时的程序运行,实验结果见表4.

表4 实验结果

模型生成完毕后,可使用任意图像进行测试.将测试图像输入生成的网络模型,经过一次前向传播,仅需数秒的时间便可以输出兼有输入图像内容以及风格图像风格的合成图像.图3为一个图像的风格迁移示例,其中(a)为风格图像,(b)为内容图像(原图像),(c)为基于风格图像输出的合成图像.

图3 风格图像《神奈川冲浪里》及其模型生成的合成图像

通过对比可以看出,合成图像在颜色和笔触风格方面与风格图像基本一致.内容图像中边界较为清晰的图像部位与合成图像中各元素的对应位置吻合度高.从整体上来看,得到的生成模型在合成图像中保留原内容和风格迁移等方面效果明显.

在测试的过程中同时发现,对于纹路过于细腻的图像,模型会将风格应用于原图像的每一处纹路,导致合成图像从整体上无法直观地呈现出风格图像的风格.图4为测试图像分别输入不同风格生成网络得到的结果,其中(a)为输入的内容图像,(b)、(c)、(d)为不同风格下输出的合成图像.结合该内容图像与合成图像可以看出,合成图像基本保留了内容图像的内容特征,图像的尺寸大小,猫咪毛发的纹理、花纹的位置等在合成图像中均得到较好的保留,但其在整体呈现出的风格上与风格图像存在的差异较为明显.原图像内纹路过于细腻,使得生成模型将风格应用于图像的每一处细小纹路,从总体上看,合成图像虽在颜色方面与风格图像相近,但实际体现出的风格反而不明显了.

图4 纹路细腻的内容图像与合成图像

4 结语

本文借助VGG19 网络以及部分第三方函数库形成图像风格迁移的生成网络模型,并对其风格迁移效果进行测试.测试结果表明,图像的合成效果普遍较好,在纹理、颜色、笔触等细节方面与风格图像均较为接近,在内容方面与输入图像的差别也较小,整体上在合成图像中保留原有内容及发生风格迁移等方面效果明显.同时发现在处理纹路较细腻的图像时,模型对纹路的处理过于细致,导致合成图像无法直观地呈现出风格图像的风格;对于内容模糊的原图像,合成图像的内容损失和边缘处噪声较为明显,这些都是后续工作中需要改进的问题.

猜你喜欢

风格特征特征提取损失
胖胖损失了多少元
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
玉米抽穗前倒伏怎么办?怎么减少损失?
基于Daubechies(dbN)的飞行器音频特征提取
浅析甘肃清水县轩辕鼓舞的风格特征
浅析蒙古族民间舞蹈中“绕肩”的审美规范
肖邦《降b小调夜曲》(OP.9NO.1)的演奏特点与风格特征
基于民族风格特征的云南原生态音乐分类研究