基于语义分割的图像风格迁移技术研究
2020-12-26李美丽杨传颖
李美丽,杨传颖,石 宝
内蒙古工业大学 信息工程学院,呼和浩特010100
1 引言
计算机图形学是计算机科学领域的一个重要分支,随着计算机图形学方面的硬件与软件的不断发展和改进,将图形渲染技术分为真实感渲染技术与非真实感渲染技术,真实感渲染技术忠实地反映客观事物的外观和细节,更适合表达刚性曲线,而非真实感绘制会根据图像内容自适应区分前景和背景,更加适合描述自然现象,它们的研究方法和对象既相互补充又相互交叉。
深度学习以其能快速提取高级抽象特征的优势被应用于提取图像的风格化特征和内容特征,成为图像风格迁移领域的主流技术。实际上,图像风格迁移是一种特殊的迁移学习,是一种借助计算机技术处理图像的纹理、颜色、风格、线条等信息来改变图像效果的技术。它是将一张艺术作品图片的风格转移到另一张图片上,最后生成一张带有某种风格的内容图片。为了模拟艺术家的这种表现力,引入图像分割方法,将风格转化进行约束,由于蒙古族服饰颜色多为红黄蓝三原色,所以将其约束到彩色空间变换,对特定区域进行风格迁移,提升了风格迁移后输出图的效果。
神经风格迁移的三个主要应用领域是媒体社交、辅助用户创作和游戏场景渲染领域,风格迁移技术来源于历史悠久的风格化绘制技术。风格迁移技术在艺术创作中,可以将大师的精美艺术作品风格迁移到其他图片上,使得结果图带有了大师的风范。这一智能创作应用在游戏制作中,对游戏动画人物塑造和背景渲染都有极大的帮助。如果将带有浓烈民族文化特征的图片进行迁移,也是对物质文化遗产和非物质文化遗产的继承和弘扬。
在神经风格迁移算法之前的风格迁移方法有基于笔划的渲染、基于图像类比的方法、图像滤波方法和纹理合成方法等,这些传统的风格迁移方法有一个共同的思想就是借助局部特征的统计模型来描述风格,这极大地限制了在实际中的应用。
2015年Gatys等人[1]开创性地提出了一种神经艺术风格迁移算法,以简洁明了的方式阐明了神经网络的风格化思想,无需繁琐的手工建模,就能生成新颖风格化图像。2016年相继发表了另一篇论文[2],该论文进一步阐述风格迁移的方法,引入了白噪声图片,通过借助VGG19 网络提取的输入图像的特征进行重建图像,使得图像的风格和内容的分离和合成成为可能。Johnson等人[3]受到Gatys 等人的研究成果的影响,提出了一种实时的快速神经风格迁移方法,该方法用感知损失函数来替代逐像素差距的损失函数来训练前馈网络,基于有优化的方式对比,得到三个数量级的提速。Dumoulin 等人[4]在Johnson的基础上提出了更灵活的风格迁移模型,采用多个风格共用一个模型的方式,缓解了模型存储耗费空间大的问题。Li等人[5]将生成的马尔科夫随机场作用在深度卷积神经网络上进行图像合成任务,该任务增强了Gatys等人的框架,通过用维持图像风格的MRF正则项来替代Gram 矩阵匹配。Ulyanov 等人[6]提出了另一种反馈卷积神经网络,应用多层次的网络结构,产生大量任意大小的相同纹理,将给定照片的艺术风格迁移到任意图像上,引入生成网络减少迭代次数,提高了训练速度,缩短了图片生成时间,对局部细节的处理优于之前的方法,然而由于风格图片是真实照片,存在内容不匹配、扭曲等问题,使得迁移效果不佳。2017年Luan等人[7]提出了一种深度照片风格迁移方法,提出局部仿射变换正则项,用此方法防止生成的真实照片扭曲失真,解决了生成图像扭曲不匹配问题。Liao等人[8]提出了一种新的视觉属性迁移方法。该方法针对的是两张具有不同内容却有相似语义的图像,利用高层抽象特征建立起两张图片的语义对应关系,与之前的算法不同的是,提出深度图像类比的方法,该方法适用于输入图像是真实照片,输出也是真实照片的任务,即达到像素级别的迁移,进而使用一种由粗到细的策略建立最近邻域并生成风格化结果。Zhu 等人[9]针对非成对的数据集,提出了一种通用型的图像到图像的训练模式,并且提出了结合循环一致损失和对抗网络损失进行模型的训练,此种方法解决了没有成对数据集的问题,适用性更广。2018年Chelaramani 等人[10]提出一种可以在句子与图像之间进行跨模态的新颖风格迁移方法。建立在图像到图像迁移上的创新机制上,将整体心理图像整理成一个句子,并以有意义的方式自动传递给特定的图像。2019 年Nguyen等人[11]重新定义了多模态,并引入了一种简单的多模态和任意风格迁移方法,通过向单峰方法注入噪声来实现多模态和任意风格传递的方法。这种新颖的方法不需要任何可训练的参数,并且可以容易地应用到具有单独的风格编码子网的任何单峰式传输方法的文献中。
目前存在的方法都是只针对特定数据采取特定方法的迁移技术,不具一般性,与现有的方法相比,本文提出的方法在对任意样式进行泛化和可视化处理的同时,能够有效地进行前反馈方式的风格迁移,不需要学习每一个单独的风格,通过训练一种用于图形重建的自动编码器来进行图像生成过程,将前馈通道中的增白和着色变换结合起来,以匹配内容和风格特征之间的统计分布和相关性。
2 数据预处理
数据增广是一种解决图像数据不足的常用方法。通过对训练图像做一系列随机改变,产生相似但又不同的训练样本,从而扩大训练数据集的规模,由于采集的数据图片大概为582 张。通过数据增广方法增加到1 080张,大大降低模型对某些属性的依赖,提高了模型的泛化能力。主要用到的数据增广方法有缩放变换、裁剪、变换颜色、旋转、平移等变换,其中部分结果如图1所示。
图1 预处理后的图
3 蒙古族服饰风格迁移方法
3.1 风格迁移方法
神经网络以其能快速提取高级抽象特征的优势,被广泛应用于提取图像特征,成为图像风格迁移领域的基本技术。风格迁移的基本思想很简单,在保留目标图像内容的基础上,将另一张图片风格应用在目标图像上,生成的风格化图像具有原来内容图片的内容的同时带有风格图片的风格,本文是在图像风格迁移的基础上,进一步地要求输入图像均为高清的、具有图像真实细节的图像,尤其是风格图像,而不是一些具有明显艺术家风格的风格图像,所合成的图像结合了内容图像的真实细节和风格图像的风格。
图像风格迁移研究步骤大体分为两部分,第一部分提取图像的内容和风格特征,第二部分将两种特征融合生成目标图像。然而在已有的风格迁移研究结果中,结果图存在不同程度的扭曲和失真,基于这个棘手问题,为了保证图像的保真性,提出了一种优化过程中目标函数的图像写实正则化参数项,将这个约束表示成一个完全可微的参数项,以此约束重构图像用输入图像的局部仿射色彩变换防止扭曲,保证在输入图像映射到输出图像的过程中,点、线、面都不发生改变,尽可能减少内容信息失真,成功抑制生成图像扭曲,在各种各样的场景中生成了视觉效果相对较佳的真实风格化图像。
假设给定一张内容图片C和一张风格图片S,采用目前应用广泛的编码-解码器结构,使用VGG19 网络作为编码器提取图片的内容和风格特征,借助已经训练好的VGG19 网络模型进行特征提取,编码器权重使用由之前ImageNet 网络训练出的权重,此处借助迁移学习中的权重迁移方法,大大减少了工作量。同时训练一个与之对应的解码器,对图片的内容和风格进行重建。
对于多层次的风格迁移,分别为VGG19的Relu_X_1层训练五个重构解码器,每个解码器的架构对称于VGG19 网络架构,该技术的原理图如图2所示。
VGG19 网络作为一个特征提取编码器,由卷积层、池化层、全连接层组成。分别选用conv4_2作为内容表示,conv1_1、conv2_1、conv3_1、conv4_1、conv5_1 作为风格表示。同时训练一个与编码器对称的解码器,目的是将VGG19 网络提取的特征转化为原图像,其本质是一个图像重建任务,经过大量实验不断地调整编码器和解码器以达到最优。为了对不同层次提取的特征进行评估,选用VGG19 网络的五个层的特征映射和相对应的五个解码器。采用像素重构损失和特征损失对输入图像进行重构,如下式所示:
Iin表示输入的图像,Iout表示重构的输出图像,Φ表示使用预训练模型VGG19 编码器提取到的图特征表示,λ是两个损失函数的平衡参数。
为了更好地进行图像风格迁移,将增白和着色变换WCT 应用到内容特征层,使内容特征的协方差矩阵与风格特征的协方差矩阵进行匹配,最后将转换后的特征向前反馈,输入到下面的解码器层,从而获得风格化后的图像。
通过最小化L2范数的像素重构损失和特征感知损失之和来训练解码器,采用多层次风格化策略,在WCT[12]中将PhotoWCT 应用于不同层次的VGG19 特征,如图3所示。
图2 风格迁移架构图
图3 优化模型对比图
PhotoWCT 和WCT 共享相同的编码器架构和映射步骤。在PhotoWCT 中,用上池化层替换上采样层。上池化层是与池化掩码一起使用,该掩码记录在对应的池化层[13]中的每个最大池化区域上携带最大值的位置。通过比较WCT 和PhotoWCT 的风格化结果。PhotoWCT 风格化图像具有更少的结构伪影。同时在实验部分进行了一项用户研究,以定量验证PhotoWCT通常比WCT 有更好的风格化效果。
模型优化中,编码层的构建结构不进行修改,只是在保存信息方面,上池化处理比上采样处理能更好保存详细信息,所以用上池化代替上采样,减少了特征映射的空间信息的丢失,解码器中的上采样特征映射无法恢复输入图像的详细结构,也就是说,需要将丢失的空间信息传递给解码器,以便能够重构图像的详细细节,图像增白和着色变换功能表示为如下公式:
其中,是一个包含上采样的解码器,通过训练解码器来完成图像重建,通过WCT 得到的结果图直线边界呈现锯齿状的模糊,使用图像的增白跟着色变换WCT 避免此问题的发生。
对风格化后存在的伪影问题进行平滑调整,首先将所有像素表示为图中的节点,并定义了一个关联矩阵:
其中,N表示相似像素点的个数,定义平滑项和滤波项,建立模型优化这两个目标项,将问题转化为一个优化问题:
其中,yi表示PhotoWCT 风格化结果Y的颜色像素,ri期望的平滑输出结果R的颜色像素,变量dii=是W 的度矩阵D 中的对角线元素,即D=diag{d11,d22,…,dNN}。在公式(4)中,λ控制着这两个术语的平衡。
上述公式是基于图的排序算法[14-15]得到的。在排序算法中,Y是一个二进制输入,其中每个元素指示某个特定项是否为查询,具体yi=1 表示yi是一个查询,否则yi=0。最优解R是所有项目的排序值。此方法中,将Y设为PhotoWCT 样式化的结果。基于对像素的相似性,R是Y的最优解。与最先进的方法[14]对比,本文算法利用可用的语义标签映射获得更好的风格化结果。当进行PhotoWCT 风格化时,对于每个语义标签,分别利用内容和风格图片中具有相同标签的图像区域的特征,计算一对投影矩阵Pc和Ps。用来对这些图像区域进行风格化。使用语义标签映射,可以更准确地执行内容和风格匹配。该算法不需要精确的语义标记。获得良好的风格化效果图。
3.2 图像语义分割
图像语义分割是一门交叉学科,涉及模式识别、计算机视觉、图像分类等领域,在视频检测、工业自动化、虚拟现实VR等不同领域有广泛的应用,语义分割是为图像像素标记一个预先定义好的语义标签,在此基础上,在图像的目标对象上加入语义信息,能够根据图像本身的纹理、场景和其他高层语义特征来得到图像本身需要表达的信息,具有实用价值。本文采用的深度照片风格迁移算法通过对内容图像进行语义分割的结果来指导风格迁移的过程,当算法精确地识别出像素的前背景时,就可以更精准地进行分割。
语义分割方法大体分为两类,基于区域分类的分割方法和基于像素分类的分割方法。基于区域的分割方法根据区域生成算法和图像块划分标准的不同,将其分为基于候选区域方法和基于分割掩膜方法;基于像素分类的图像语义分割方法按照其学习方式的不同,可以分为全监督学习图像语义分割方法、弱监督学习图像语义分割方法、无监督学习图像语义分割方法。
借助图像的语义信息将图像进行更加准确地分割。图像分割是图像处理到图像分析的关键步骤,图像分割是指根据灰度、颜色、纹理和形状等特征把图像划分成若干个互不交叠的区域,并使这些特征在统一区域内呈现出相似性,而在不同区域间呈现出明显的差异性。图像分割领域研究人员提出了很多的研究方法[15],较为普遍的方法有边缘分割方法、阈值分割方法、区域生长方法、区域的分裂合并方法、直方图分割方法以及结合特定理论工具的分割方法。但是并不存在一种广泛适用的分割方法。
本文针对蒙汉服饰文化元素的迁移,采用特定空间聚类方法进行图像分割,将图像空间中的像素用对应的特征空间点表示,根据它们在特征空间的聚集对特征空间进行分割,然后将它们映射到原图像空间,得到分割结果。采用K均值聚类算法与自然图像抠图相结合的技术,先设定K个初始类均值,然后将每一个像素划分到离它最近的类,并且计算新的类均值,迭代执行前面的步骤直到新旧类之差小于某一阈值。
3.2.1 K 均值算法
K均值算法是一种常用的无监督的聚类算法,已在图像模式识别中得到了广泛的应用,K均值算法[16]的基本思想是通过找到K个聚类的中心,同时根据数据点与各中心的距离的大小,对每个质心计算质心与数据点之间的距离将数据点分配到距其最近的簇,对每一个簇,计算簇中所有点的均值并将均值作为质心,重复迭代直到质心不变或者变化很小时结束,最后将数据点全部进行了归类。基本要求是在数据点构成的一个聚类中,聚类内部点之间的距离应该小于数据点与聚类外部的点之间的距离。也就是对目标函数的优化,直到将数据点全部进行了归类。目标函数表示如下:
为每个数据点都分配一个权重ω(p),设k为聚类的数目,πk表示第k个聚类,φ表示将数据点映射到高维空间,通过迭代的方式最小化目标函数,以此聚集数据点。用K均值算法实现图像分割,K均值算法分割后的图像如图4所示。
图4 K-means算法分割后的图像
3.2.2 封闭式的抠图算法
蒙古族服饰又称蒙古袍,包括长袍、腰带、靴子等,由于地域的不同,蒙古袍多以红蓝黄三原色构成,蒙古袍上的花纹呈现一定的对称性,特别是腰带、纽扣,都呈现出一定的平行性,基于该特点,本文采用交互式数字抠图算法将图像进行分割。取任一张蒙古族服饰图片部分,各像素点符合一定的线性关系,如图5 所示。其中,三维坐标系分别表示红黄蓝三原色,从图中可以看出任意像素点可表示成一个线性关系。
图5 像素分布三维图
交互式数字抠图是基于有限的用户输入从图像中提取前景对象的过程,因为它在每个像素处都存在大量不适定,必须从一个单一的颜色测量中估计前景和背景颜色,以及前景不透明度。本文采用一种自然图像抠图的封闭形式解法[17]。对前景和背景颜色的局部平滑性进行假设,分析消去前景和背景颜色后,可以得到一个二次代价函数。通过解一个稀疏线性方程组来找到全局最优的透明度。此外,从封闭形式公式中分析稀疏矩阵的特征向量来预测解的性质,这与谱图像分割算法中使用的矩阵密切相关。
给定任意一张图片,可看成是由前景图与背景图组成,图中的任意像素点可表示成一个线性关系式:
其中,ai前景不透明度,Fi表示第i个像素点的前景图,Bi表示第i个像素点的背景图。
对于三通道彩色图片,将有三个方程七个未知数。方程组表示如公式(7)所示:
以上方程组有无穷多解。显然,这是一个严重的欠约束问题,用户交互需要提取一个良好的哑光。最新的方法期望用户提供一个trimap 作为起点,trimap 是一个粗略的手绘分割方法,将图像分为三个区域:前景(白色)、背景(黑色)和未知(灰色)。这样一个严重的欠拟合问题就容易解决,该方法提供F、B和α的初始值。然后通过迭代非线性优化方法交替前景F、背景B以及α的估计。在实际中,为了取得好的实验结果,trimap中的未知区域必须尽可能小。当α取值为0 或1,抠图技术将是一种简单的图像分割。
在这种具有挑战性的情况下,需要大量的经验和用户交互来构建一个能够生成良好哑光效果的trimap。然而,trimap界面的另一个问题是用户不能直接影响图像最重要部分的哑光,混合像素。本文提出了一种从自然图像中提取哑光的新方法。需要从前景F和背景颜色B的局部平滑度假设中推导出一个代价函数,并将其表示为:
其中,ωj表示包含j个像素点的小窗口,上面的代价函数包含一个关于α的正则化项。为了保持数值的稳定性而设定。假设图像在第j个窗口中是常量,在没有对其进行先验检验之前,aj和bj就不能唯一地确定。当aj=0 意味着a是恒定在j窗口中的。此外,通过研究稀疏矩阵的特征向量相关矩阵用于光谱图像分割算法。同时提供有用的提示信息,能够更好地把握涂鸦的位置放置。
采用两种抠图算法相结合的方法得到的图如图6所示。
图6 结果图
4 实验结果与分析
本实验使用Google开源深度学习框架TensorFlow,同时使用由JetBrains 打造的编译器pycharm,提高了python 语言开发的效率,使用NVIDIA 英伟达GTX 1080TI显卡加快程序运行速度。
实验中对λ 进行敏感度分析,平滑和拟合平衡系数,实验表明λ 越大通过增白和着色处理后的结果更加准确可靠,λ 越小生成的图片将会被过度平滑,为了找到一个合适的λ,采用网格搜索法,将估计函数的参数通过交叉验证的方法进行优化来得到最优的学习算法。
在风格化之后对象边界应该保持不变,所以以风格化和风格化后的边界图与原始内容图的10个相似度作为标准进行衡量,用全局边缘检测HED 方法进行检测边界,应用全局最佳ODS和单图最佳OIS两个标准的边界检测指标。该指标越高表明保存了原始图像更多的内容信息,如图7所示。
图7 λ 与检测指标的折线图
但是ODS 用于图像分割,具有从消光问题公式推导出的新的亲和函数。可以通过求解稀疏S 来有效地找到成本的全局最小值S 线性方程组,对真实图像和合成图像的实验表明,该算法明显优于其他使用二次代价函数的算法。
实验中通过设置内容与风格的权衡参数,平衡两者之间的比重,保证生成的图像在内容不失真的情况下,达到最佳的风格化效果。λ 的取值效果演示如图8所示。
图8 不同λ 值对风格化影响结果对比图
实验中设置不同的λ 值,得到不同效果的结果图,从图8中可以看出当λ 取小于10-6的值时,实验结果图无明显变化,实验结果图效果差异很小,所以,根据实验结果,在接下来的训练中λ 取10-6,达到最佳实验效果。
根据输入图像分辨率的不同,如表1所示不同尺寸图像在不同阶段运行时间对比表。
表1 运行时间对比表 s
本实验计算了不同分辨率下该算法的平均运行时间,从表1 中可以看出,随着图像分辨的增加训练时间总体呈上升趋势。而且详细统计了增白着色变换阶段和平滑阶段不同分辨率图像所用时间。本实验提出的算法与目前最新的算法对比,虽然本实验有一个封闭形式的解,而Luan 等人的实验是依赖于非凸优化问题的解,为了风格化图片,Luan等人解决了两个非凸优化问题,其中第一个优化问题是第二个优化问题的初始解,该方法优于Luan等人的方法。
为了进一步提高速度,可以使用引导图像滤波的近似平滑步骤,它可以平滑基于内容照片的PhotoWCT输出图。与原始算法相比,虽然采用图像滤波近似平滑步长越长会导致性能略有下降,但速度增益较大,如表1所示。要风格化1 024×512 分辨率图像,约仅需1.64 s,比Luan 等人实现的650.4 s 快1 000 倍。为了量化由于近似导致的性能下降,进行了额外的用户研究来比较所提出的算法。
为了对图像风格进行更精确的迁移,使用无监督学习K 均值聚类方法与自然抠图算法相结合对目标对象的特定区域进行分割,并将给定的纹理样式只传递给分割后的区域。实现了特定对象区域的局部风格迁移,这使得可以随意改变给定图像中对象的材质。同时,在模型优化中,用PhotoWCT 代替WCT 变换,减少了结果图的伪影,实验表明PhotoWCT 比WCT有更好的风格化效果,图9是本文方法与其他方法的对比图。
图9 实验对比图
实验对比结果表明此风格迁移算法有更强的鲁棒性,而且研究的内容新颖,运行速度有显著的提高,得到的结果图更加地逼真,是本文的一个特点,而不像其他现有方法有明显的的绘画痕迹。
5 总结与展望
本文在现有的图像处理技术的基础上,将蒙汉服饰图像应用到风格迁移中,采用图像语义分割与神经风格迁移相结合的方法,研究图像风格迁移在蒙汉服饰设计中的应用,采用一种快速的风格迁移算法,该算法使用损失函数的归一化,在每次优化迭代过程中,调整损失值,使之等于1,这样可以独立设置所选风格层以及内容层的损失权重,在优化过程中,不断调整权重。最后,确定风格与内容之间的相对最佳权重。此外,本实验将蒙汉服饰应用到风格迁移中,是非物质文化遗产的发扬和传承,有非常重要的研究意义。
本文在研究过程中存在很多的不足之处,值得进一步研究,例如在分割实现过程中,存在训练集差异较大的图片,分割能力会大幅减弱的问题,可以考虑对图像预处理方法进行改进,使得图像在输入模型之前能够自适应,根据与训练集的差异进行调整;本文采用不同的方法对语义分割进行了研究,并将其应用到具体的场景中,初步挖掘语义分割的应用价值,还有待进一步挖掘它的应用潜力。此外,用到VGG19网络提取图像特征,该方法参数较多,占用内存空间较大,可以改用其他的提取特征的方法,减少参数和占用空间。风格迁移的应用场景很多,例如AI换脸、漫画迁移、字体风格迁移、AI艺术创作、电影特效等等,这些场景都有待进一步深入研究。