基于多尺度纹理合成的刺绣风格迁移模型

2023-10-31 08:18姚琳涵郑晓萍魏文达刘成霞
纺织学报 2023年9期
关键词:直方图刺绣纹理

姚琳涵, 张 颖, 姚 岚, 郑晓萍, 魏文达, 刘成霞,4,5

(1. 浙江理工大学 服装学院, 浙江 杭州 310018; 2. 中国纺织工程学会, 北京 100025; 3. 中国纺织建设规划院,北京 100125; 4. 丝绸文化传承与产品设计数字化技术文化和旅游部重点实验室, 浙江 杭州 310018;5. 服装数字化技术浙江省工程实验室, 浙江 杭州 310018)

刺绣是第一批被列入国家非物质文化遗产,也是我国源远流长的传统手工艺术,不但有很强的装饰性,还具有较高的艺术价值,但刺绣工序复杂且对创作者有较高要求,制作一件做工精良的刺绣作品,需要花费较多的时间和人力,一定程度上影响绣品的生产效率。近年来神经风格迁移技术[1]的快速发展为解决这一问题提供了可能,利用该技术可直接生成具有真实感的刺绣风格图案,提高生产效率的同时,无需要求创作者有技能和经验。目前国内外许多学者已用其模拟了油画[2]、动漫[3]、素描[3]、水墨画[4]等艺术品,创作出不少优秀的作品,未来该技术很可能会颠覆传统的艺术生成方式。

迄今也有学者针对刺绣艺术作品风格转换算法展开研究,如郑锐等[6]提出了基于VGG19网络模型的刺绣风格迁移模型。Qian等[7]提出了使用条件随机场(CRF)的刺绣风格迁移方法。Beg等[8]对经典模型CycleGAN[9]做出改进,提出了Embroidery GAN模型。Guan等[10]引入了刺绣纹理自动合成框架,可接受多种输入图像,并以交互方式在数字服装上预览合成的刺绣图案。

但是现有的刺绣图像生成算法还存在不少问题,如生成图像的风格单一、特征粗糙、伪影较多等。针对这一现状,本文拟通过改进现有风格迁移算法,创建出具有更高感知质量的刺绣风格图像模型,研究结果可提高刺绣产品的外观纹饰设计水平,促进刺绣技艺的发展及创新。

1 多尺度纹理合成刺绣风格迁移模型

1.1 风格迁移的刺绣模型

本文提出的基于多尺度纹理合成的刺绣风格迁移模型(MTE-NST)如图1所示,该模型主要由生成网络和损失网络组成,其中生成网络包含内容匹配模块(CMM)、结构增强模块(SEM)和纹理细化模块(TRM)。每个模块都遵循固定的双线性上采样/下采样层,其中不同的子网使用不同风格的图像进行训练,以学习不同层次的纹理特征。这种设计能使测试图像在增加分辨率的情况下用不同级别的风格进行转换。此外,由于所有模块都被合并到一个网络中进行分层训练,后一个模块也能增强和细化前一个模块的结果,从而使网络训练的效率和鲁棒性得到提高。

1.2 多程式化损失函数

在训练过程中使用多程式化损失函数进行迭代,即在内容损失和风格损失的基础上,引入拉普拉斯损失获取图像边缘信息,使用直方图损失来增强图像纹理细节。

1.2.1 内容损失和风格损失

给定内容图像xc和风格图像xs,其l层处的卷积图像特征分别为Flxc和Flxs,滤波器个数为Ml,其中Ml(x)=Hl(x)×Wl(x),Hl(x)和Wl(x)分别是每个特征图像的高度和宽度。滤波器输出的特征图尺寸为Nl,Fl(x)∈RMl×Nl,是Ml行Nl列的矩阵,l是卷积层的层数,x表示特征变量。

(1)

式中,i、j是第i层和第j层特征图之间的相关性,即第i层和第j层滤波器在小图像块上同时激活的频率。

(2)

Gram矩阵可以看做特征之间的偏心协方差矩阵,在特征映射中,每个数字都来自于一个特定滤波器在特定位置的卷积,代表特征强度,而Gram矩阵计算的是特征两两之间的相关性。

LGram=αLcontent+βLstyle

(3)

式中:α、β分别是生成风格化图像的过程中目标内容图像和风格图像损失的权重。

1.2.2 拉普拉斯损失

由于传统的神经风格迁移算法在获得内容图像的纹理、结构等高层特征时,会损失一些如针脚细节、图像边缘等低层特征,从而导致结果图像出现不规则的扭曲、形变及伪影。为使风格化图像减少匹配错误,更好地保留内容图像的细节信息,本文引入拉普拉斯[11]损失项。

拉普拉斯算子Δf是所有非混合函数二阶偏导数的和,如式(4)所示。

(4)

计算二维图像像素的拉普拉斯算子Δf,可以得出每个非混合函数二阶偏导数的常数系数,将其写出离散近似值的矩阵,如D所示。

图像x的拉普拉斯矩阵通过输入图像与矩阵D卷积得到,用D(x)表示。在相邻像素值发生剧烈变化的区域,无论变化方向如何,卷积都将产生高幅度的响应,在变化平缓的区域,响应为零。

(5)

Ls=αLcontent+βLstyle+γLlap

(6)

式中:γ是拉普拉斯损失的权重,提高γ可以改善图像风格化中输出图像的失真现象。

1.2.3 直方图损失

图2 具有不同均值和方差的图像Fig. 2 Images with completely different mean and variance. (a) Uniformly distributed gray image; (b) Nonuniformly distributed image

图3示出3组不同统计数据的纹理合成效果[12]。可看出,显示直方图损失的效果优于平均激活,其图像强度更稳定,但会破坏一些小结构。而利用Gram矩阵生成的风格图片由于无法保留纹理的均值或方差,会导致训练不稳定,因此本文选择合成图像效果最佳的直方图+Gram的联合损失。

图3 不同统计数据的纹理合成效果Fig. 3 Texture synthesis effect of different statistical data. (a) Input picture; (b) Average activation; (c) Histogram loss; (d) Gram loss; (e) Joint loss

即在式(6)中的结构损失函数Ls基础上引入直方图损失来增加纹理特征,并对合成图像的分层特征进行变换,使其直方图与输入图像的纹理相匹配。对于反向传播过程中的每个直方图损失,都执行1次匹配,每个特征映射1个直方图损失,直方图损失函数如式(7)所示。

(7)

式中:Oi是风格图像的激活层;R(Oi)是增加直方图损失后的激活层;γl是权重系数。

则总损失函数如(8)所示:

Ltotal=αLcontent+βLstyle+γLlap+Lhistogram

(8)

2 实验过程

2.1 实验环境

核处理器为Intel i711700F 3.6GHz8,显卡为NVIDA RTX3070 (16GB),开发环境为Windows10系统,开发工具为Pycharm,深度学习框架采用GPU版本的PyTorch1.8.1,使用CUDA 10.1进行加速,测试图像统一设置为256像素×256像素。

当各项损失权重及参数如表1所示时,网络的生成结果达到最佳,因此将其确定为训练参数。

表1 训练参数定义Tab. 1 Definition of training parameters

优化器在训练时可以自动调节参数,在梯度下降时引领各参数趋于合适的值,使目标损失函数达到最小。目前主流的优化器有AdaGrad、RMSProp、SGDNesterov、AdaDelta、Adam等,Adam优化器实现简单,计算高效,对内存需求少,因此本文选用其进行迭代自动调节参数。

2.2 实验数据集与数据处理

训练图像集包含输入图像(内容图像)和刺绣图像(风格图像),测试图像集仅包含输入图像。输入图像来自Flickr 网站下载的6 000张图片,其中5 000张用于训练,1 000张用于测试。刺绣图像集中的1 000张来自Fabric 3D扫描仪(凌迪科技),5 000张来自网络。数据集中的图像形状和大小不同,输入到训练网络前将图像标准化,并将图像的任意部分随机裁剪成256像素×256像素,以增加训练数据的多样性,避免过度拟合。

2.3 具体实现步骤

1)内容匹配。为更好地保存小而复杂的纹理,对内容图像和风格图像的亮度和颜色联合训练,将亮度通道从RGB彩色图像中分离出来,并分别使用2个独立的分支(RGB空间和Lab空间)进行学习。然后将从2个分支计算出的特征映射沿深度连接在一起,由随后的Conv块做进一步处理,并确定最小化损失函数,如式(3)。

RGB空间包括3个跨步卷积层(9×9,3×3,3×3,第1个用于上采样,后2个用于下采样)和3个剩余块,Lab空间包括3个剩余块,其中2个调整大小的卷积层用于上采样,1个3×3卷积层用于RGB图像(实验使用电子屏幕,需要使用RGB)输出。

2)结构增强。对内容匹配的输出图像执行纹理映射,保留结构内容,增加拉普拉斯损失项,训练具有较大纹理权重的结构增强模块,以进一步提高风格化程度,如式(6)所示。结构增强模块采用与内容匹配模块类似的结构。唯一的区别是增强模块有一个用于下采样的卷积层和一个用于上采样的调整卷积层,可扩大感受野的大小,使结构增强模块比内容匹配模块的输入增加2倍。

3)纹理精细。把结构增强后的内容图像和初始化的风格图像输入到纹理精细模块,并增加直方图损失项,如式(7)所示。纹理精细模块由3个卷积层、3个剩余块、2个调整卷积层和1个卷积层组成,比内容匹配模块和结构增强模块浅得多,因为前一个模块可促进后一个模块的学习,缩短网络层可显著降低内存和计算复杂性。

4)总损失函数构造。如式(8),在CNN中利用梯度下降法进行迭代,输出风格化结果。在风格迁移过程中,各损失项的计算同时进行。

2.4 结果与分析

2.4.1 边缘检测

将内容图像传到损失网络,使内容层和风格层提取的边缘特征图损失与直方图损失和拉普拉斯损失混合,每层输出的图像均为256像素×256像素,并对合成的通道图进行卷积计算,得到256像素×256像素的边缘检测图像,流程如图4所示。

图4 图像边缘生成流程Fig. 4 Generation process of image edge

用多程式化损失函数提取内容图像和风格图像的边缘信息和细部结构,将其与仅用内容损失和风格损失生成的迁移图像效果进行对比,结果如图5所示。

图5 2组样本风格迁移图像和边缘检测图像的对比Fig. 5 Comparison of two groups of transfer result images and edge detection images. (a) Sample 1; (b) Sample 2

由图5标出的方框可看出,多程式损失函数能提取更多刺绣图像的细小边缘纹理。样本1显示,引入多程式损失函数后,在图像色彩区域较为复杂的地方提取到了更多特征,使迁移结果更真实生动,而内容损失和风格损失只能检测到粗糙的轮廓。样本2同样显示,内容损失和风格损失不能识别叶子、花蕊等细小的边缘特征,迁移效果模糊。实验结果表明,引入多程式损失函数可以更好地检测图像边缘,生成纹理清晰的刺绣迁移图像。

2.4.2 模拟效果

为验证模型的有效性,对本文提出的MTE-NST模型和文献[13]、文献[14]、文献[15]3种基准模型进行对比实验,结果如图6所示。

图6 不同模型实验结果对比Fig. 6 Comparison of experimental results of different models

从图6可看出,Gatys的模型在图像线条密集处转换过程中出现较多伪影和变形,Johnson的模型[14]比Gatys[13]拟合效果好,但在羽毛的细节部位转换中仍出现伪影和转换错误。Li和Wand的模型[15]几乎没出现伪影,但缺乏针脚、纹理变化等刺绣细节。而本文提出的MTE-NST很好地迁移了风格图细部结构,更接近真实刺绣作品,无论风格还是细节均优于前3种模型。

此外,为定量评价不同模型生成的刺绣图片质量、迁移效果和学习速率差异,选用MSE(均方误差)、LPIPS(图像感知相似度),以及测试时间和占用内存作为评价指标,结果如表2所示。

表2 用于256像素×256像素图像的比较结果Tab. 2 Comparison results of each model applied to 256 pixel×256 pixel image

LPIPS值越高表示2张对比图片的差异越大,反之2张对比图片更相似。LPIPS用d(x,y) 来表示:

(9)

MSE是均方误差,即估计值(预测值)和实际值(基本事实)之间的平均方差)可以捕捉图片中的噪声、亮度、对比度、色调和饱和度的变化,MSE用S(i,j) 表示:

(10)

由表2可知,MTE-NST的MSE最小(即风格损失最小),LPIPS最小(即图像感知相似度最高),即图像质量和迁移效果都较好。且MTE-NST测试时间和占用内存仅次于Johnson,分别为0.58、3 900 MB,进一步验证了MTE-NST能以较少的占用内存和更短的时间生成更真实的刺绣风格图像。

3 结 论

本文提出了一种多尺度纹理合成的刺绣风格迁移模型(MTE-NST),分层学习多尺度的刺绣艺术风格,不但能较好地还原风格图像颜色,还可保留图像边缘的纹理结构和精细的针脚,解决了纹理转换不匹配的问题,且可生成视觉效果更好的刺绣风格迁移图片。

本文算法与传统相关算法的定性和定量研究表明,MTE-NST无论在视觉迁移效果上,还是在生成图片的质量和学习速率等方面,均优于传统算法,且能生成针迹感更强、纹理更真实的刺绣图像,在风格损失、图像感知相似度、学习速率等综合表现上都较好。

本文算法能更真实地模拟刺绣图片,但在运行时间上较其它方法仍有提升空间,进一步优化算法,提高效率是今后努力的方向。

猜你喜欢
直方图刺绣纹理
符合差分隐私的流数据统计直方图发布
贵州剑河 多彩刺绣添技增收
基于BM3D的复杂纹理区域图像去噪
清新唯美的刺绣
用直方图控制画面影调
使用纹理叠加添加艺术画特效
李雅华:精美的石头能“刺绣”
TEXTURE ON TEXTURE质地上的纹理
基于空间变换和直方图均衡的彩色图像增强方法
消除凹凸纹理有妙招!