张海红,黄练基
(广东工商职业技术大学a.艺术学院;b.计算机学院,广东 肇庆 526000)
图像风格迁移是将内容图像与风格图像融合形成具有艺术风格的新图像[1]。 在利用神经网络开始研究图像风格迁移的方法之前, 所有的研究都是先对一种风格的图像进行分析, 再给这种风格建立一个数学统计模型,然后改变内容图像,使之符合风格已经构建好的模型[2]。 这种方法有一个很大的缺点:运行一个程序只能生成一种图像风格。 故对于图像风格迁移的实际应用极少[3]。 近年来,深度神经网络在大规模图像分类上表现出优异性能, 加之其强大的多层次图像特征提取和表示能力,不但使上述问题得到了解决,而且性能也有了明显提高[4]。 Gatys 等[5]提出了一种关于图像艺术风格的神经算法, 它可以分离和重组图像的内容和风格,生成具有高感知质量的新图像。但在图像进行风格迁移过程中, 每次都要经过整个训练迭代的过程,导致风格迁移的速度非常缓慢[6]。 J. Johnson 等[7]提出另一种网络结构, 通过利用输出图像和原图像之间逐个像素的损失来训练前馈卷积神经网络, 这种结构使风格迁移过程仅需要完成一次模型训练。另外,运用从预训练的网络中提取的高级特征来定义和优化感知损失函数,可以生成高质量图像[8–9]。为了让输出图像在内容和风格上均与原图更相似,本文通过训练具有感知损失函数的前馈变换网络, 将图像变换和优化的图像生成方法的优点结合起来, 利用感知损失来训练图像风格,提高细节和边缘质量,优化图像风格迁移的速度。
图像风格转换部分的网络结构分为训练和运行2个部分[10]。训练部分:将选定的风格图像输入到转换网络中,换成输出图像,通过计算最小化损失值确定输出图像特征。 运行部分:将输入图像传递到训练网络中,得到迁移结果。图1 为风格转换部分的网络结构。其右侧是损失网络(loss network),在训练过程中是保持不变的,例如训练好的卷积神经网络VGG-16[11];其左侧fw为转换网络(image transform net),用来将输入图像转换为输出图像。
(1)转换网络。本文所使用的转换网络是一个深度残差网络[9],但是上采样和下采样是通过步幅卷积或微步幅卷积来完成的,而不是使用池化层。本文中的转换网络包含5 个残差块[11],除了激活函数(rectified linear units,RELU)的非线性层和最末层使用了一个缩放的双曲正切函数(Tanh)将输入转换为区间(-1,1),所有的非残差卷积层都有一个空间性的批处理规范(batch-normalization)用于防止过拟合。 除了第一层和最后一层的卷积核(kernel)是9×9,其他卷积层选择使用的卷积核均为3×3。
(2)损失网络。 损失网络包含内容损失(content loss)和风格损失(style loss)两部分,用来衡量图像在内容和风格上的差距。 图像风格迁移网络中的损失函数的作用是使用预先训练好的用于图像分类的卷积神经网络,计算预测值与真实值之间的差异。本文使用一个提前训练好的用来给图像分类的网络来定义整个网络结构的损失函数。 本文中训练卷积转换网络采用的也是深度卷积网络的损失函数。
牛津大学的团队Visual Geometry Group (VGG)开发的VGG 网络包含了16 个卷积层, 网络中所有的特征在卷积层中都使用3×3 的卷积核, 在池化层中都使用2×2 的池化。 本文中使用的是VGG-19 模型, 包括16 个卷积层和3 个全连接层[9],中间经过5 个池化层,最后经过归一化指数函数层。 在内容与风格特征提取方面,定义了一个列表(list)接收特征。 特征提取需求得形状元组(batch_shape)的值,形状元组在Tensflow软件里有标准格式(B,h,w,c)。 其中:B为一次迭代图片的数量;h和w分别为图片的宽和高,文中都定义为256;c为图片的色彩通道,对彩色图片c值为3。
将传进来的图片经过preProcess 函数预处理,再将处理后的图片信息和下载路径作为参数代入迭代函数net()中进行迭代,最终得到一个网络。 利用Python软件中numpy 模块下的array()函数对风格图片进行格式转换,并提取出特征。因为对比的不是每一层的特征图(卷积层目标图像颜色、形状、纹理特征的输出结果)上的数值之间的差异,而是比较特征图之间的差异值,所以还需要对特征进行变换。 本文通过numpy 模块下的reshape()函数得到变换后的特征。 将变换后的特征的转置乘上它自身,所得结果传入matmul()函数中,将每个特征图的元素矩阵相乘,得到gram 值(gram值用来代表style 的一个特征),最后再传入初始的list集合中并返回,完成特征提取。
(1)内容损失。本文通过VGG-19 模型进行图像分类,计算并提取内容图像的图像特征,采用两种构造损失函数分别用来衡量两张图片之间内容及风格特征的差别。 损失量的计算公式为[9]
图像迁移的结果如果使用底层的特征损失, 会使图像内容失真,体现不了风格图像的风格。本文选择了高层重建,这样既可以保留图像内容和整体空间结构,又不影响具体的颜色、纹理和形状。实验中图像转换网络的训练用的是一个损失网络, 这能让输出图像更加接近目标图像。
(2)风格损失。当输出图像与目标图像的内容偏离时,内容损失函数(输出图像与原图像之间的MSE 损失)就会对输出图像进行重建。 实现重建风格差异,需要用风格重建的损失函数。 令为输入是x的网络的第j层, 其形状就是的特征映射。 将gram 矩阵定义为矩阵[11],这样即使输出图像和目标图像y具有不同的尺寸, 也会将输出和目标调整为相同的形状。 由于设定了gram 矩阵,风格重建损失是确定的。
(3)结构相似度。 结构相似度(SSIM)是衡量两幅图像相似程度的重要指标。 它越接近1 则原图像与风格插值后图像的结构越相似。 其计算方法为
式中:x为内容图像,y为风格图像,为x平均值,为y平均值,为协方差,C1和C2为常数,和分别为x和y的方差。
(1)图像风格模板。实验采用了4 种不同的风格图像如图2 所示:图2a 为The Scream,该画为彩蜡木板画;图2b 是布面油画《缪斯》(The Muse);图2c 为《神奈川冲浪里》;图2d 为一幅怀旧油画。
图2 4 种风格的图像
(2)图像数据集合。本文的风格转换网络是在MSCOCO 数据集上训练而成的。 该数据集是由微软公司提出的用来收集、识别检测和分析图像的数据集。 其中包含了91 种类型的照片, 共有3.28×103个影像和250 万个标记实例[10]。 本文将12 张训练图像都调整为256×256, 令一次迭代图片的数量B=4, 迭代次数为40 000 次。 使用Adam 优化,将学习率定义为1×10-3,通过交叉验证集和strength 函数介于1×10-6到1×10-4之间的全变量正则化来对输出图像进行调整。 在这个过程中不使用权重衰减或者随机失活, 防止出现过拟合现象。 运行平台:Windows 10,Intel Core i5 12400 CPU 2.5 GHz,显卡Nvidia RTX 3060,RAM 32G DDR4。
实验选取了3 张图片, 分别为五十六个民族的同学在校门口的合影、建筑及肖像[图3(a)],分别用4种风格对图片进行变换。 经过The Scream风格变换后的图片不仅有The Scream的色彩和构图风格,内容与原图也很接近,能够看到每一位同学的站姿和服饰,甚至能够看清楚“大连民族”的字样[图3(b)]。 而其他几种风格的效果则不大令人满意,例如图3(d)。 经过多次实验发现,当内容图像内容过于复杂时,在使用某些风格进行图像迁移时,图像的内容就会变得不明显。例如图3(e)中经过《缪斯》的风格迁移后的图像中几乎看不见人物。可见,并不是每一张图像在风格迁移后都能够得到令人满意的结果。
图3 不同内容图像风格迁移结果
为了定量评价基于卷积神经网络[CNN(VGG-19)]的图像风格迁移效果, 以结构相似度和风格化时间为测试指标, 以上述4 种图像作为风格图像, 随机选取12 张MS-COCO 数据集中的图像作为内容图像进行风格插值测试,并采用Ours 和Inception V3 模型[5]进行对比分析。 结果如表1 所示。
表1 不同风格迁移效果的定量比较
从表1 可以看出,在迁移效果方面,用The Muse风格迁移后的图像结构相似度最高,为0.481 3;海浪风格迁移后的图像结构相似度最低,为0.362 5。 这主要是因为The Muse风格图像的颜色模块化区分明显,迁移效果明显,没有破坏图像内容结构。用The Scream风格迁移图像的风格化时间最长,为76.85 s,其次是The Muse的风格化时间为74.26 s;海浪的风格化时间最短,为71.08 s。 这主要是因为基于卷积神经网络采用卷积和池化的方式获取风格图像的颜色,The Scream的颜色种类与亮度层次最丰富,故风格化时间最长。与Ours 和Inception V3 模型对比,基于卷积神经网络[CNN(VGG-19)]的风格迁移效果更好,这主要是因为[CNN(VGG-19)]没有使用池化层,而采用步幅卷积或微步幅卷积来进行网络内的上采样或者下采样,只进行了颜色采集,没有破坏内容结构。
图像风格迁移技术可以让计算机分别提取出图像的内容和风格。 深层神经网络的作用就是找出这些像素中更高层、更复杂、更有趣的图像特性。本文在Gatys和Johnson Justin 等的研究基础上,研究通过用感知损失函数来训练前馈网络进行图像风格迁移的方法。 本文中的神经网络没有使用池化层而是采用步幅卷积或微步幅卷积来进行网络内的上采样或者下采样。 5 个残差块中,除了具有非饱和特点的RELU 的非线性层,最末层使用了具有饱和特点的Tanh 缩放函数将输入转换为区间(-1,1)。 所有的非残差卷积层都带有一个空间性的批非标准化(batch-normalization)。 实验结果表明:图像风格转换的测试结果较好,且风格转换速度大大提高。