陈志鹏,郑文秀,黄琼丹
(西安邮电大学通信与信息工程学院,西安 710121)
图像风格转换是指将一张艺术图像[1]的风格转换到内容图像上。基于特征匹配[2-4]的方法在处理传统图像风格转换问题时,耗时长且效果不佳。卷积神经网络能够较好地理解图像语义信息并提取图像特征。文献[5-6]将深度学习应用在图像风格转换[7-8]中,使用卷积神经网络提取内容图像和风格图像的特征,并利用Gram 矩阵计算风格特征之间的相似性以实现图像风格的迁移。由于Gram 矩阵计算整幅图相似性的效果不佳,因此研究人员对该算法进行改进以得到更高质量的结果图像。文献[9]使用局部均方差减少图像的噪声。文献[10]提出加入直方图损失控制生成图像的稳定性。文献[11]使用马尔科夫条件随机场将特征分成许多小块,对小块进行特征匹配保留更优的局部信息。文献[12]利用新的纹理生成方法Grammian,保留纹理的空间排列信息,生成更高质量的结果图像。生成对抗网络(GenerativeAdversarial Network,GAN)[13-14]使用生成器模型进行图像风格转换,实现多对多的快速风格转换。文献[15]在损失中加入均值和方差[16]以约束图像的生成,但是生成图像存在块状效果。文献[17]利用自动显著性指导风格转化方法对内容图像中视觉突出的物体进行风格转换。文献[18]通过编解码的网格结构进行图像风格转换,并加入HED 网络结构提取内容图像的边缘信息以减少图像扭曲。
本文提出一种基于Sobel 滤波器的图像风格转换算法,通过Sobel 滤波器提取内容图像特征图的边缘信息,并与生成图像特征图的边缘信息进行匹配计算两者差值作为新的损失,使得生成图像保留更多内容图像的细节信息,避免出现图像扭曲。
深度学习通过卷积神经网络提取图像特征,将低层特征组合成更抽象的高层信息。深度学习的图像风格转换[19]有3 个输入,包括内容图像、风格图像、结果图像(一张白噪声图像)。文献[8]使用VGG 19[20]提取图像的高层语义信息,将内容图像信息和风格图像信息进行分离并重组到结果图像上,实现图像风格转换。
文献[8]使用VGG19 提取特征,其是由16 个卷积层和3 个全连接层组成。在图像风格转换中删除最后的全连接层,使用前面训练好的16 个卷积层提取特征,并使用平均池化代替最大池化以提高图像质量。研究人员利用反向传播算法将结果图像中的内容信息和风格信息与输入的内容图像和风格图像信息相匹配。
卷积神经网络中每个卷积层都有一组卷积核提取图像特征以生成特征图。随着网络深度的增加,卷积核的个数也在增加。分别为内容图像和生成的结果图像,Pl和Fl分别为在第l卷积层上的特征图,Fij表示第i组卷积核上第j个卷积核提取的特征图。本文采用均方误差作为损失函数,Lcontent表示白噪声图像与内容图像在同一个卷积层滤波器提取到特征图像的差距。因此,内容图像的损失函数如式(1)所示:
文献[8]使用Gram 矩阵提取图像的纹理信息。Gram 矩阵的值表示两个特征映射的内积,值的大小反映两个特征相关性的大小。因此,Gram 矩阵的值可以表示两张图像的风格是否相似。表 示 第l层第i个特征与第j个特征映射的内积。特征相关性计算如式(2)所示:
均方误差计算风格图像与白噪声图像Gram 矩阵的差异如式(3)所示:
其中:Gl和Al分别表示风格图像和白噪声图像在l层的Gram 矩阵;wl为每层风格损失权重。损失函数如式(4)所示:
风格损失函数使用梯度进行优化,如式(5)所示:
文献[8]使用卷积神经网络进行图像风格转换,结果图像由内容图像和风格图像共同作用。与原内容图像相比,结果图像存在线条扭曲现象。内容图像的特征只选了conv4_2 层,而风格图像的特征选取conv1_1、conv2_1、conv3_1、conv4_1、conv5_1 层。在卷积神经网络中高层特征是理解图像整体信息,低层特征是理解图像的边缘细节信息,因此,生成图像的边缘细节信息主要由风格特征提供。文献[8]在进行图像风格转换时,将内容和风格特征共同作用在结果图像上,因此,没有关注到内容图像的边缘结构信息,使得生成图像发生扭曲现象。为了减少扭曲,提高图像的生成质量,本文使用Sobel 滤波器提取内容图像的边缘信息,进而约束生成图像的边缘以提高生成图像的质量。
Sobel[21-22]是一阶的边缘检测算法,使用卷积核Gx和Gy分别在图像x和y方向上进行卷积,将x和y方向计算出的结果进行代数加权得到整个图像的边缘结果,如式(6)所示:
在使用Sobel 滤波器提取特征时,如果直接计算输入内容图像p→与生成图像x→的边缘检测信息的均方误差损失,则在反向传播时梯度为0。因此,本文重新定义Sobel 滤波器的使用位置,不在内容图像和生成图像上进行计算,而是选取内容图像和对应结果图像在相同的卷积层上进行Sobel 滤波器的特征提取,即在特征图上进行Sobel 滤波器的边缘检测。如果在特征图中每个通道上都进行Sobel 滤波器的边缘检测将会消耗大量时间。由于VGG 特征图中的通道数分别是64、128、256、512、512,Sobel 选取的层是conv1_1、conv2_1、conv3_1、conv4_1 层,因此如果选取循环计算就是960 次,这样会消耗大量的时间。为了加速计算,本文利用深度卷积方法在对应的卷积层上一次性计算出所有通道Sobel 滤波器提取到的边缘信息。
本文使用均方误差作为边缘损失函数。LSobel表示白噪声图像与内容图像在同一个卷积层滤波器提取的边缘信息差距。Slij表示第l层第i组卷积核第j个Sobel 滤波器提取的边缘信息。边缘损失函数如式(7)所示:
新的损失函数如式(8)所示:
输入图像为内容图像、风格图像,输出图像是白噪声图像。内容图像的特征选取conv4_2 层,风格图像的特征选取conv1_1、conv2_1、conv3_1、conv4_1、conv5_1 层,Sobel特征选取conv1_1、conv2_1、conv3_1、conv4_1 层。每层之间的权重均为1。根据实验调参,本文选取的参数如下:内容图像权重α为1;风格图像权重β为500;Sobel 权重γ为0.1;迭代次数为400 次。
本文利用梯度下降法对一张白噪声图像进行不断迭代优化,并用拟牛顿法(L-BFGS)[23]进行优化。拟牛顿法是二阶优化算法能够快速得到收敛结果。
基于Sobel 滤波器的图像风格转换对输入各种内容和风格图像进行实验。在风格转换时,本文算法在加入内容图像和输出图像的边缘损失后提高了图像的质量,减少线条的扭曲,图像视觉效果更佳。本文算法流程如图1 所示。
图1 本文算法流程Fig.1 Procedure of the proposed algorithm
实验使用Tensorflow 框架搭建网络模型,实验硬件平台使用阿里云天池实验室,Intel Xeon E5-2682 v4 CPU 主频2.5 GHz,NVIDIA Tesla P100 16 GB 的GPU。
不同算法的实验结果对比如图2~图4 所示。从图2(c)和图2(d)可以看出,本文算法能够更好地保留窗体的线条,并区分出每个窗口,房屋轮廓也更加清晰,而文献[8]算法的实验结果中不能区分每个窗口,房屋结构也扭曲在一起。因此,本文算法不仅能够保留内容图像的结构,而且输出图像的质量更高。从图3(c)和图3(d)可以看出,与文献[8]算法相比,本文算法的结果图像眼睛与内容图像中的眼睛一样,在右眼下没有很深的线条。因此,本文算法提取的结果图像更符合真实的人像。
图2 不同算法的实验结果对比1Fig.2 Experimental results comparison 1 among different algorithms
图3 不同算法的实验结果对比2Fig.3 Experimental results comparison 2 among different algorithms
从图4 可以看出,与文献[8]算法相比,本文算法保留了图像的结构信息,在结果图像上没有线条的扭曲,生成的图像质量更高。
图4 不同算法的实验结果对比3Fig.4 Experimental results comparison 3 among different algorithms
本文提出一种基于边缘检测的图像风格转换算法,利用Sobel 滤波器提取内容图像和生成图像的边缘特征,并计算两者差值作为新的损失。实验结果表明,该算法能够减少图像线条扭曲并提高图像生成质量。由于生成对抗网络可以快速生成高质量图像,因此后续将优化生成对抗网络的损失函数,进一步加快高质量风格转换图像的速度。