在短视频兴起的时代,各种风格滤镜效果备受人们喜爱,图像风格迁移技术已经广泛地被人们熟知。然而,许多图像风格迁移方法一个模型都只能针对一种风格,在应用上效率低下。
Gatys等人[1]在2015年首次提出一种基于卷积神经网络的统计分布参数化纹理建模方法,他们发现VGG (Visual Geometry Group)网络的高层能够很好地表达图像的语义风格信息,网络的低层能够很好地表示图像的内容纹理特征信息,通过计算Gram矩阵来表示一种风格纹理,再利用图像重建的方法,不断优化迭代来更新白噪声图像的像素值,使其Gram矩阵与风格图Gram 矩阵相似,最后重建出既具有风格图的风格又具有内容图像的内容,这一研究引起了后来学者的广泛研究,并成功使用深度学习技术来进行风格迁移。
文献[2]从理论上验证了Gram矩阵为什么能够代表风格特征,认为神经风格迁移的本质是匹配风格图像与生成图像之间的特征分布,并提出一种新的在不同层使用批归一化统计量对风格建模方法,通过在VGG网络不同层的特征表达的每一个通道的均值和方差来表示风格,为后续研究提供了风格建模的参考。这些方法都是在CNN(Convolutional Neural Networks)网络的高层特征空间提取特征,高层特征空间是对图像的一种抽象表达,容易丢失一些低层次的信息,比如边缘信息的丢失会造成结构上形变。文献[3]提出在风格迁移的同时应该考虑到像素空间和特征空间,在Gatys提出的损失函数基础上,将在像素空间的内容图进行拉普拉斯算
一种单模型多风格快速风格迁移方法
朱佳宝,张建勋,陈虹伶
重庆理工大学计算机科学与工程学院,重庆400054
摘要:多数图像风格迁移任务都是一个模型只能对应一种风格,这在实际应用场景中效率低下,提出一种单模型多风格的快速风格迁移方法,只使用一个模型就可以适应任意风格样式。使用一组线性变化分别对内容特征和风格特征进行转换,使用组合的风格损失函数来重建图像。分析比较了Avatar-net方法、AdaIN方法、Johnson的快速风格迁移方法和基于线性变换的风格迁移方法,并使用PSNR和SSIM作为评价指标,得出提出的风格迁移方法更优,其中PSNR达到了11.591dB,SSIM达到了0.499,并且将该方法应用于视频风格迁移也有不错的表现。
关键词:图像风格迁移;线性变换;视频风格迁移
文献标志码:A中图分类号:TP391.43doi:10.3778/j.issn.1002-8331.2003-0467
Fast Style Transfer Method of Single Model and Multi-style
ZHU Jiabao,ZHANG Jianxun,CHEN Hongling
College of Computer Science and Engineering,Chongqing University of Technology,Chongqing400054,China
Abstract:Most image style transfer tasks are that one model can only correspond to one style,which is inefficient in practi-cal application scenarios.This paper proposes a fast style transfer method of single model and multi-style,which can adapt to any style with only one model.A group of linear changes are used to transform content features and style features
respectively,and a combined style loss function is used to reconstruct the image.The Avatar-net method,AdaIN method, Johnson’s fast style transfer method and the linear transformation based style transfer method are analyzed and compared. Using PSNR and SSIM as evaluation indexes,it is concluded that the style transfer method in this paper is better.PSNR reaches11.591dB and SSIM reaches0.499,and the application of this method and video style transfer also have good performance.
Key words:image style transfer;linear transformation;video style transfer
基金项目:重庆市教育委员会科学技术研究项目(KJZD-K201801901)。
作者简介:朱佳宝(1995—),男,硕士研究生,研究方向为数字图像处理、风格迁移,E-mail:;张建勋(1971—),男,博士,教授,硕士生导师,CCF会员,主要研究方向为数字图像处理与分析、实时计算机图形学;陈虹伶(1993—),女,硕士研究生,研究方向为数字图像处理。
收稿日期:2020-03-31修回日期:2020-06-22文章编号:1002-8331(2021)12-0201-06
子滤波,得到的结果与生成图之间的差异作为一个新的
损失添加进去,弥补了在抽象特征空间丢失低层次图像信息的缺点。文献[4]分别将内容图像与风格图像进行语义分割,来增强图像的边缘真实性。
文献[5]提出了一个取代Gram 损失的MRF 损失,将风格图与生成图分成若干块,对每个生成图中的块去寻与其最接近的风格块,这种基于块匹配的风格建模方法比以往的统计分布方法有的主要优势在于,当风格图不是一幅艺术画作,而是同样的摄影作品,可以很好地保留图像中的局部结构等信息,提高了模型的泛化能力。文献[6-7]在Gatys 的方法基础上,提出一种快速风格迁移方法,通过一个前向网络去学习一个风格,前向网络基于残差网络设计,损失函数依然采用Gatys 的算法。文献[8]对基于块匹配的风格迁移算法做了改进,引入生成对抗网络,使用鉴别器来替代块匹配这一过程,加速了风格迁移的效率。
这些方法在静态图像的风格迁移任务中,对于每一个风格都需要单独训练一个模型,不利于工业的落地使用。对于有很多种风格的应用来说,每一个模型都会占用大量的存储空间,鉴于此,很多学者就开始研究利用一个模型去学习多种风格。文献[9]提出通过发掘出不同风格网络之间共享的部分,然后对于新的风格只去改变有差别的部分,共享的部分保持不变,他们发现在训练好的风格网络基础上,只通过在Instance Norlization 层做一个彷射变换,每个新风格只需要去训练很少的参数,就可以得到一个具有完全不同网络风格的结果。文献[10]提出一种自适应实例正则化层(AdaIN ),通过权衡内容特征与风格特征之间的均值和方差,实现了一种多风格迁移模型,但是这种方法会对迁移纹理呈现块状干扰。文献[11]提出将任意风格图像的语义信息对齐风格特征来重建内容特征,不仅在整体上匹配其特征分布,又较好地保留了细节的风格信息。但是这种方法会在一定程度上造成模糊的情况。文献[12]把风格化网络中间层称为StyleBank 层,将其与每个风格绑定,对于新风格只去训练StyleBank 层,其余层保持不变。文献[13]通过预测实例正则化的参数来适应不同的内容与风格样式,虽然实现了任意内容与风格的转换,却降低了风格化的效果。
假设应用需要有n 种风格化迁移场景,就需要有n
种模型堆砌在应用中,势必会造成应用占用大量资源,
并且用户体验也会下降。针对这种问题,本文提出一种可学习的线性变换网络,可以接受任意的一对内容图像和风格图像,使用两组CNNs 网络来作为转换网络模块,以此来拟合被风格迁移广泛使用的Gram 矩阵,一组用来拟合内容特征,另一组用来拟合风格特征。通过实验得出,本文的风格迁移方法具有更高的灵活性,风格化效果也大有提示,并能够很好地应用在视频风格化领域。
1单模型单风格迁移方法
单模型是指训练一个模型,单风格是指这个模型只能迁移一种风格。文献[7]在Gatys 等人的方法基础上,提出去训练一个特定的前馈网络,来改善Gatys 等人提出的风格迁移方法耗时的问题。主要是针对一张风格图去训练模型,在测试阶段只需要输入一张内容图像,就可以得到一个固定风格样式的图像。其网络结果如图1所示。
这种模型结构由两个网络组成,一个图像转换网络和一个损失网络。其中图像转换模型由一个下采样层、中间残差块层、后一个上采样层构成。训练阶段风格图像是固定的,只有一张,而内容图像则是使用COCO 数据集,试图用一张风格图像来拟合多种内容图像,来达到一个快速迁移的效果。
其中x 是输入图像,经过图像转换模块得到了风格化图y ,y s 表示风格图像,y c 表示的是输入的内容图像,其实y c =x 。而后通过一个损失函数网络,分别计算y 与y c 在不同网络层之间的内容损失,y 与y s 之间的风格损失。网络中内容损失选择的是relu3_3层,风格损失是多层的组合,越低层风格化的效果越
清晰,与内容纹理相近;越高层风格化的效果就越抽象,内容纹理越扭曲。
虽然基于训练前馈网络的方法能够提高风格迁移的速度,但是一个模型只能处理特定的风格,在实际应用上严重不足。因此,研究一种单模型多风格迁移方法有实际的应用意义。本文在该方法的基础上,提出一种改进方法,使得一个模型可以迁移多种风格。
2改进的单模型多风格快速风格迁移方法
在风格迁移任务中,通常都是在一个网络中分别对
Image Transform Net
Content Target
Style Target
Loss Network (VGG-16)
Input
Image
y s
y c
y f W
l ϕ,relu1_2
style
l ϕ,relu2_2
style l ϕ,relu3_3
style l ϕ,relu4_3
style
l ϕ,relu3_3
feat
ϕ
x
图1单模型单风格迁移模型示意图
内容图像和风格图像进行处理,通过一个预训练好的VGG 分类网络,从网络提取出的高层特征,两张图像的欧式距离越小,说明两张图在内容上是相似的;从网络提取的低层特征,用Gram 矩阵统计的共同特性越多,则表示两张图像的风格是越接近的。
但是,风格图像往往有其共同的相似性,比如印象派的风格拥有相似的笔触,它们只是彩上有差异,梵高的画作与莫奈的画作也有很多相似之处。本文希望通过学习到不同风格之间的共同特性,使用线性变化来将任意风格迁移到内容图像上。
2.1改进的网络结构
本文网络结构由三部分组成,一个是预训练好的编
码器解码器模块,用来提取图像特征和重建图像,风格转换模块用来学习任意风格之间的线性变换,损失函数网络模块用来约束重建网络,生成出高质量的图像。本文网络的结构图如图2所示。
其中的Encoder 、Decoder 和loss model 都是采用VGG 网络结构,网络的输入是一对256×256大小的图片,通过Encode 分别提取出内容特征F c 和风格特征F s 。文献[6]中直接将F c 与F s 直接通过转换网络来重建图像,这些重建的图像细腻度较低,越低层的特征重建出的效果会越好,所以本文通过跳跃连接的方式,将F c 与转换网络输出结果进行连接,以此重建出更加细腻,更加符合内容图像特征的风格化结果。
2.2多风格转换模块
大多数风格迁移研究人员都直接将F s 作为风格的
提取特征来和F c 进行对比计算,这种方式会随着风格图像的增多,风格化的质量逐渐下降。本文使用了一个
中间虚拟函数ϕs 来表示风格特征,
ϕs 可以对F s 做非线性映射,即ϕs =ϕ(F s )。本文的优化目标是获得最小的F d ,使得编码器输出的特征图与所迁移的风格特征图
尽可能的匹配,其优化公式如下:F *
d
=argmin F d 1NC
---F d
×---F d T --ϕs ×-ϕs T 2F (1)
其中,N 是像素个数,
C 是通道数,-F 表示将特征向量F 进行零均值化,F *
d 表示F d 与ϕs 之间的最小中心协方差。并且---F d =T ----F C ,由公式(1)可知,当且仅当F 向
量模的平方最小时,F *d
才有最小值,即:
T ----F C ×----F C T T T =-ϕs ×-ϕs
T
(2)
由奇异值分解可得:
T =(V S D 1/2s V T s )U (V c D 1/2
c V T c )(3)其中,U 是一组正交基,可知转换迁移特征向量T 都是由内容特征向量与风格特征向量之间的协方差矩阵决定的。为了避免大量的协方差之间的矩阵运算,本文设计的转换网络模块能够直接地输出结果矩阵,并将内容特征与风格特征项分开,网络转换模块设计如图3所示。
对编码器输出的内容特征F c 与风格特征F s 设置
单独的通道,包含3个卷积层,卷积核大小都是3×3,卷
积核数量依次减半,将卷积操作得出的F 'c 与其转置矩阵进行相乘得到其对应的协方差矩阵,在将得出的协方差矩阵通过一个全连接层,再与风格特征通道进行内积,得出转换矩阵T 。
2.3损失模块
本文采用组合的多级风格损失函数,风格特征损失主要将VGG 网络的relu1_2、relu2_2、relu3_3三层进行合并,通过组合的多层次风格损失,用来增强转换网络的泛化能力。内容特征损失主要来自VGG 网络的第relu3_3和relu4_3层。
内容损失的计算方式是由encoder 的生成图像F '
d
与原输入网络的内容图像F c 在VGG 网络第i 层上的特征激活值之间的距离差平方,计算公式如下:
Loss content = F '
d -F c 2
i
(4)
风格损失计算方法与内容损失计算一致,都是采用
二者特征激活值做距离差平方计算,是风格损失在三层网络中的平均值,其公式如下:
Loss style =1I ∑i =1
I
F '
d -F s 2
i
(5)
因此,本文的总损失函数为:
Encoder
Transformation Decoder
style loss
content loss
F c
F s
F c
F s
F d
T
Loss
model
图2改进的网络结构图
F '
c
F 's
cov(F '
s )
cov(F '
c )
F c
F s
T
FC
FC
C o n v
C o n v
C o n v
C o n v
C o n v
C o n v
Transformation
图3转换网络设计图
Loss =αLoss content +βLoss style
(6)
本文的损失模块设计图如图4所示。
高层的内容特征信息能够够重建出原图的内容,低层的风格特征信息能够更好地表示风格,所以本文没
有取第5层的特征信息。本文的风格重建损失是VGG 网络前三层损失之和,内容重建损失分别使用的是relu3_3层和relu4_3层,为了验证本文的转换模块是否能够灵活地适应不同层的风格损失,本文将使用不同的内容重建损失的生成效果进行展示,如图5所示。
根据图5实验结果,使用的组合风格损失能够很好地表现出风格图像的风格;使用relu4_3层的内容损失重建出来的图像,在纹理上更清晰,彩上更加平滑。
3动态视频风格迁移
动态视频风格化迁移通常是将视频拆分成一帧一
帧的图像,将每一帧图像送入训练好的模型,得到风格化效果的帧图像,然后再将风格化帧图像重新组合成视频。但是这种方式特别依赖模型的规模,若是模型特别繁重,风格化过程会特别耗时,且容易造成抖动和闪烁的问题。
视频中的抖动和闪烁问题,多数领域都是添加光流[14]来加强时间一致性约束。Ruder 等人[15]采用基于迭代优化的方式,通过添加光流一致性约束,来重点计算运动物体的边界,以此来保持风格化后视频的连续性,虽然这种方法能够解决视频闪烁的问题,引入光流的计算会带来更大的计算开销,会降低风格化速度。
第2章所介绍的模型,证明了本文的线性变换能够快速地适用于风格变换,并且网络是轻量的,它只有两
组CNNS 结构,共6个卷积层,2个全连接层,轻量的网
络能够快速地完成风格迁移过程,能够产生稳定传输的视频。这是因为内容视频与风格化后的视频应该存在某种相似性,这种相似性应该是二者在像素和特征信息之间具备某种一定的相似性。在风格化过程中,这种信息相似关系会被保留下来。
事实上,静态图像风格迁移与视频迁移中的相似性保留是一致的,只是属于不同形式的矩阵表示关系,
它们都可以用特征信息之间的线性变换表示。令Sim (F )表示特征之间的相似性保留,其相似性关系表示为:
Sim ()F =-F T ×cov ()F -1×-F (7)在本文的设计中,网络每层中输出的特征图大小决
定了这种相似性所保留的尺度,为了使得这种相似性能最大化地保留,本文选择了更浅层的网络,在自编码器结构中,使用VGG 网络relu3_1层作为输出,仅对风格样式进行一次特征提取,然后将其应用在所有帧上,这样可以减少大量的计算,且能够有效保持帧间的内容关联性,这是因为视频迁移中,帧间的内容关联性主要依赖于内容特征。其应用结果在本文的4.4节展示。可以发现,使用线性变换来映射风格迁移能够有效地应用在动态视频迁移,并且对于运动物体也能有效地解决闪烁和抖动的问题。
4实验结果与分析
下面介绍本文实验的相关软硬件环境及训练细节:
(1)硬件环境:处理器为Intel ®Core TM i7-8750H CPU @ 2.20GHz ,8GB DDR4内存,显卡为NVIDIA GeForce GTX1050Ti 4GB 独立显卡。
(2)软件环境:Linux Mint19.2操作系统,Python3.6,CUDA9.2,troch0.4.1-cu92,opencv3.6等相关工具包。
4.1数据集
本文实验内容数据集使用MS-COCO ,使用Kaggle
比赛上的Painter by numbers WikiArt 数据集作为本文的风格数据集。其中内容数据集有80000多张图片,图像内容多种多样,包括人物照、风景照、建筑照等;风格数据集有8000张图片。
4.2训练细节
由于数据集里面图片大小不一,所有图片送入网络前都需进行预处理,保持图像之间的比例关系,将大小重新调整为300×300,然后从中随机裁剪出256×256大小区域作为训练样本输入,因此网络可以处理任意大小的输入。
本文将网络分为两步训练,首先训练对称的编码器、解码器结构来重建任意输入图像,使用在ImageNet 上预训练好的VGG 网络作为初始化参数,当训练损失稳定时结束训练,然后将其参数固定,最后训练转换网络。本文BatchSize 设置为1,其中内容损失权重为
α=1,
风格损失权重β=0.02,这是为了使得重建出的风格图像能够保留更多的内容信息,学习率为0.0001。
Loss relu3_3
content
Loss relu4_3
content
Loss relu1_2
style
Loss relu2_2
正则化是每一层都加还是只加一些层style
Loss relu3_3
style
Content image
transfer image
Style image
Loss model (VGG16)
图4
损失模块设计图
Content_loss relu4_3
Content_loss
relu3_3
内容图像
风格图像
图5不同层内容损失与组合风格损失效果
4.3实验对比结果
为了验证本文方法的有效性,本文分别与Johnson[6]、AdaIN[10]、Avatar-net[11]和Ghiasi[15]的方法进行比较,风格化实验效果如图6所示。分别测试了三种风格类型的迁移效果,第一行是对梵高的油画作品进行风格迁移,从图中可以看到,Johnson和AdaIN方法的风格化纹理迁移过重,导致生成图片天空处显得杂乱,Avatar-net方法能够较好地匹配内容与风格特征,只是生成效果显得暗淡,Ghiasi的方法在天空区域风格纹理过重,本文的方法能够更好地匹配内容与风格特征,且生成效果更具观赏性。第二行是对素描风格类型进行迁移,输入的是一张年轻女性头像,其中Johnson的方法在眼睛处风格效果不佳,AdaIN方法在纹理上显得粗糙,Avatar-net方法风格化后在嘴角鼻子出显得扭曲,Ghiasi的方法在头发脸颊等处迁移效果不够细腻,而本文方法能够在脸部细节与头发纹理上都有着最好的表现。第三行是对密集风格块类型进行迁移,其中Johnson的方法纹理迁移过重,AdaIN方法纹理已变得模糊,Avatar-net方法在建筑边界区已信息丢失,Ghiasi的方法对风格样式的模块化迁移纹理太重,导致风格化效果有很多杂乱的小方块,而本文的方法重建出的图像纹理信息保存完整,风格化效果也比较完整,没有出现大的扭曲现象。
本文的生成效果能够更好,得益于转换网络采用了双通道结构,将内容特征与风格特征分开处理,减少了噪声的引入,所以生成的图像内容与风格之间才能有较少的干扰。
4.4视频风格化效果
本文选用了一段健身爱好者跑步的视频作为实验数据,时长共33s,首先使用ffmpeg将视频拆分成一帧一帧的图像,总计拆分为338帧图像。本文将该动态视频转换为具有梵高画作的风格视频,并对关键帧的结果进行展示,如图7所示。
该实验数据包含镜头的变换,镜头从前往后在拉近,从结果可以看出,本文的风格迁移算法在运动物体上具有很好的稳定性,不需要添加光流等方法,就可以迁移出具有稳定的帧图像,也没有出现迁移过度的问题,帧图像上的影子等场景也没有被风格化侵蚀,整体上来说,本文方法的迁移效果质量完成度高,内容图像特征保留完整,风格化效果适中,风格化速度快。
为验证本文方法在视频风格迁移中更具有效性,分别与Avatar-net和AdaIN方法进行对比,抽取上述视频中第10帧、第224帧与第329帧图像进行展示,其结果如图8
所示。
内容图像风格图像Johnson AdaIN Avatar-net Ghiasi本文方法
图6三种风格类型的迁移效果实验结果对比图
frames_08.jpg frames_01.jpg
内容帧图像
frames_09.jpg frames_10.jpg
风格图像
frames_222.jpg frames_223.jpg frames_224.jpg frames_327.jpg frames_328.jpg frames_329.jpg frames_08.jpg
frames_01.jpg
风格化后帧图像
frames_09.jpg frames_10.jpg frames_222.jpg frames_223.jpg frames_224.jpg frames_327.jpg frames_328.jpg frames_329.jpg
图7关键帧风格迁移效果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论