杜 斐,陈明非,张云港
(云南师范大学信息学院,云南昆明 650500)
最近,在计算机视觉及图像处理等领域,生成对抗网络(GAN)显示出优异的性能[1]。在图像翻译任务中,目前较常见的方法是学习未配对图像从一个源域到一个目标域的映射,将原图像作为输入,修改后的图像作为输出。随着深度学习的发展[2-3],神经风格迁移成为人工智能领域一个非常活跃的研究课题,其通过将风格图像和内容图像共同输入到神经网络模型中合成一幅新图像[4]。新生成的图像具有内容图像的结构和内容特征,同时拥有风格图像的风格和纹理特征。神经风格转移已被应用于许多研究领域,如字体风格转移[5]、头部风格转移[6]、视频风格化[7]等。
另外,计算机视觉领域里的时尚分析也引起了很多研究者的兴趣,产生了许多应用人工智能解决艺术与时尚行业实际需求的研究内容,如时尚风格分类[8]、服装解析[9]、服装检索[10]等。本文研究目标为时装的风格迁移,主要目标为合成的服装形象在保持服装原有结构和形状的同时,融合给定的参考图像风格。设计师可快速看到服装在给定风格中的样子,以方便进行设计处理。如文献[11]在人的身上合成一个正面特写的服装图像;文献[12]在输入基本服装图像和风格图像的情况下,自动生成混合了基本设计风格与新风格的服装图片;文献[13]利用VITION 模型输入空白背景下的服饰和人物图像,将所需的服装项目无缝转移到人物相应区域。该框架首先生成一个粗合成的图像,目标服装项目覆盖同一人的同一姿势,再通过服装区域的细化网络进一步提升图像的合成效果。对于同样的任务,文献[14]通过SieveNet 模型引入一个感知几何匹配损失训练的多级粗到细的翘曲网络,尝试将服饰图像与目标模型的形状对齐,接下来引入目标区域分割掩码实现精确的纹理传输。文献[15]利用TailorGAN 模型给定一个参考服装图像和另一个具有目标属性(领/袖)的图像,生成一个结合参考服装图像纹理风格和参考目标属性(领/袖)的真实图像。通过对服饰局部区域的款式进行对应转换,在这一任务下开发的方法可应用于服装检索或协助设计师工作。文献[16]引入一个新的试穿设置,使服装项目与人的姿势都可以改变。首先提出一种增强服装变形的方案,以精确地对给定的新服装项目进行变形,其中引入了目标人体形状掩模预测模块,为服装变形提供中间指导,然后提出一个专注的双向生成对抗网络生成最终的试穿人形象。文献[17]提出一种新的GAN 体系结构Poly-GAN,能够将参考服饰自动放置在任意姿态的人体模型图像上。Poly-GAN 允许对多个输入进行调整,并适合于许多任务,包括图像对齐、图像拼接和修补等。在类似任务中,风格和内容图片通常都有干净的背景和正面的姿势。本文目标是以虚拟试穿为驱动,研究背景与非试穿部分不变的时装片段转换,从而使用户能够在其身体图像上看到新衣服,而不需要实际试穿。
文献[18]进行了类似研究,其指定所需服装样式的图像和个人图像作为输入,然后从人物图像中提取一个服装片段。通过给定的提取片段和样式图像,合成一个显示了样式图像颜色和图案的新服装片段。输出段同时保留了输入段的形状和位置,使其自然叠加在人的图像上。通过该过程,转换后的图像看起来就像一个人穿着新设计的衣服,其他时尚项目则保持不变。该方法包含一个基于先验人类知识预定义规则的不可训练的预处理模块,该模块通过提取给定服装片段的几何和样式因子生成输入目标训练对。整个模型分为多个部分,流程多且结构复杂。本文方法选择在框架中直接结合目标对象的分割掩码进行图像转换。分割掩码能很好地表示实例的形状信息,因其只包含对象边界,不会受到颜色等其他细节干扰。实验结果如图1 所示,其中图(a)、(b)为输入图像,自身作为内容图像,互相作为风格图像;图(c)、(d)为输出图像,内容图像中人物形象的裤子转换为风格图像对应的风格,目标区域外的其他部分则保持不变。
Fig.1 The clothing style transfer of fashion image图1 关于时尚形象的服饰风格迁移
本文主要贡献为:提出适合时尚图片服饰风格转换的网络结构,在形状不变的情况下转换图像内容,实现了在复杂背景下针对特定服饰区域的风格转换,可在图像背景不变的情况下进行虚拟试穿。
生成对抗网络(GAN)是一种强大的生成模型,其应用于很多计算机视觉任务都取得了很好的效果,如图像生成[19]、图像修补[20]、风格迁移[21]及通用的图像转换[22]等。GAN 的成功在于对抗性损失的提出,其目标是使生成的图像与真实照片无法区分,而生成式模型的训练目的则是最小化这种损失。对抗损失对于图像的生成任务很有意义,因为这正是大多数图像生成任务的最终目标。
早期图像到图像的转换最具代表性的一个任务就是图像类比[23],该模型使用CNN 学习颜色和纹理转换以及画家风格转换等翻译功能。如Isola 等[22]的“pix2pix”在图像生成模型中使用了条件生成对抗网络[1],用来学习输入图像与输出图像之间的映射。然而,对于绝大多数任务而言,配对的数据通常成本很高且难以获得。为克服这一局限性,一种非配对图像到图像的转换任务被提出且得到了广泛应用。具体来说,一种GAN 的分支模型CycleGAN 以两个生成对抗网络组成一个循环结构,学习两个图像集合之间的映射,而不是两个特定图像之间的映射[24]。
神经风格迁移是图像到图像转换的一种更为复杂的方法[25],开辟了一个全新的深度学习应用领域。其通过同时最小化的特征重建损失[26]和风格重建损失,将一幅图像内容与另一幅图像风格结合在一起,生成一幅全新图像,与之前的纹理合成[27]任务类似。图像风格迁移主要指将参考图像风格转换到另一个输入图像中,通过选择一种参考风格的图像,可将在不同时段、季节、光照条件下拍摄的照片艺术化地转换成不同风格,但保留原有结构和内容。
目前,已有的服饰风格迁移可分为两种类型。一类是选择训练一个额外的模型检测对象掩码[28],然后用其引导生成目标区域掩码。这需要显著增加网络容量,从而大大提高了时间和空间的训练复杂度。Yang 等[29]建议增加注意模块以预测出一个可引导图像转换过程的注意图。新的注意导向生成对抗网络(AttentionGAN)[30]被提出用于不成对图像到图像的翻译任务,AttentionGAN 中的注意力引导发生器可以产生对应的注意力掩码,然后将输出与注意力掩码相融合。注意掩码使得生成器能够聚焦于目标区域,同时有效保留目标区域之外的背景,从而获得高质量的目标图像。同时模型中还设计了一种新的注意力引导判别器,只考虑转换的目标区域。GANimorph 引入一个具有扩展卷积的鉴别器,其可以使用整张图像的鉴别信息反向训练一个更具上下文感知的生成器[31]。同时结合多尺度感知损失,这种感知损失能够很好地表示出目标底层形状中的错误。但是本文研究目标为对人身上的服装进行风格转换,其具有复杂的背景与多变的形状,因此这些研究方法不完全适用于本文研究。
另一类是使用额外的数据提供注意力以促进图像转化。如Sun 等[32]使用FCN 生成一个掩膜进行面部属性操作;Liang 等[33]提出Mask contrast-GAN,该模型使用数据所对应的对象掩码注释作为额外的输入指导生成过程。首先基于掩码裁剪掉图像中不需要的部分,然后在翻译后粘贴它们。模型倾向在较小的形状、几何或纹理变化之后,将对象的语义成功地转换为期望的语义。Mo 等[34]提出In⁃staGAN,输入包含图片与对应的实例信息,模型更重视形状变换,对图像及相应的实例属性集进行转换。例如,在时尚形象中把牛仔裤翻译成裙子。类似的任务如M2ETry On Net[35],该框架以自我监督的方式进行训练,从而逐渐将模型衣服的姿势和纹理转移到所需外观上。先利用姿态对准网络将模型图像与目标人的图像对齐,之后提出一种可增强对齐模型图像特征的纹理细化网络。将服装图像采用细化网络进行处理,再用拟合网络将服饰匹配到目标人,这也是一个十分有价值的研究方向,但与本文的目标方向不一致。
图像到图像的转换任务本质是学习X和Y两个图像域之间的映射:GXY:X→Y和GYX:Y→X。无监督翻译的目标是使用原始数据中的未配对样本恢复这种映射。本文方法将实例信息结合起来,在原始图像X 基础上附加一组实例属性信息A,以改善图像到图像的翻译效果。因此,本文方法可理解为学习X×A与Y×B之间的联合映射,方法详细介绍如下:选择CycleGAN[24]为基础结构,使用周期一致性损失鼓励GYX(GXY(x))≈x和GXY(GYX(y))≈y,具体如图2 所示。模型包含两个映射函数G1:X→Y和G2:Y→X,以及相关的对抗性鉴别器D1和D2。该结构为循环结构,即从一个域转换到另一个域,然后返回。其中生成器G1、G2和鉴别器D1、D2遵循图3 中的结构。每个网络都被设计成同时编码图像和对应的实例掩码。整体结构包括两个生成器GXY和GYX,以及对应的对抗性鉴别器DY和DX。具体以生成器GXY和鉴别器DY为例进行描述,GYX和DX与其类似。
Fig.2 CycleGAN model图2 CycleGAN 模型
Fig.3 Generator and discriminator model图3 生成器与鉴别器模型
训练生成器GXY:X×A→Y×B,其同时编码并转换原始数据(x,a)到目标域数据(y′,b′)。生成器首先输入原始照片与对应的分割掩码,然后使用图像特征提取器从照片和掩码中提取特征,将相应图像与掩码特征连接起来,并将其反馈给图像生成器,最后输出转化后的图像。对于对抗性鉴别器DY:Y×B{′Y′,′not Y′},其中DY同时编码y和b(或y′和b′),之后分辨数据是否在目标域Y×B,将结果反馈给需要提升的生成器或鉴别器。通过使用生成器和鉴别器不断进行博弈与学习,生成器最终可生成一个转换了目标区域风格的图像,同时保持背景及对应结构位置与原图像完全一致。本文要求相应掩码转换前后完全一致,即a=b′。
图像到图像转换模型的任务目标是在保持背景、结构等原始上下文信息的情况下,将一个图像域转换到另一个域。为此,考虑了使生成的输出遵循目标域样式的域损失,以及使输出保持原始内容的内容损失。为方便表达,将损失函数表示为单个训练样本(x,a)∈X×A和(y,b)∈Y×B的函数。根据之前的相关研究结果,域损失使用GAN 损失进行处理,同时内容损失使用周期一致性损失[36]和标识映射损失[37]进行处理。对于GAN 损失选择使用最小二乘损失函数的LSGAN[38],其会惩罚那些远离决策边界的样本,这些样本梯度是梯度下降的决定方向。该方案在多数实验中被证明有稳定、良好的性能表现,如式(1)所示。
周期一致性损失同时使用生成器GXY:X→Y和GYX:Y→X,GXY与GYX应是首尾相连、相互对应的。对于每个来自X域的图像x,图像翻译周期应能将x带回原始图像,即x→GXY(x)→GYX(GXY()x)≈x。该结构能够解决将所有输入图像映射到相同输出图像导致优化模式崩溃的问题[39]。
标识映射损失直接将(x,a)输入第二段生成器GYX,仅进行一次转换,希望得到(x,a),即GYX(x)≈x。该损失有助于保持输入图像的颜色与整体色调:
上下文保存损失[34]强制只翻译实例,同时保持背景。其是一个像素加权l1损失,设置背景权重为1,实例权重为0。考虑原始图像与翻译图像中背景像素的非零权值,也即是说,对于原始样本(x,a)、(y,b)和转换后的样本(y′,b′)、(x′,a′),设置权重ω(a,b′)、ω(b,a′)为1 减去二进制表示的实例掩码元素最小值,并提出以下损失函数:
其中,⊙是元素层面上的乘积。实验结果显示,上下文保持损失能够使模型更好地保持背景。最后,总损失可由式(5)得到:
其中,λcyc、λidt、λctx是平衡损失的超参数。
参考CycleGAN 的网络体系结构[24]作为本文的基础模型,将ResNet9[21]、PatchGAN[22]分别作为生成器和鉴别器。ResNet 生成器由下行采样块、残差块和上采样块组成,使用下采样块和剩余块作为编码器,用来减少特征映射的空间范围,然后使用上采样块作为生成器,输出最终目的图像。鉴别器中使用70×70 的PatchGANS,具体做法为对70×70 的重叠图像补丁进行真或假的分类。这种补丁级的鉴别器相比全图像的鉴别器具有更少的参数,同时能够以完全卷积的方式[22]处理任意大小的图像。其由5 个卷积层组成,包括归一化层和非线性层。本文使用斜率为0.2 的leaky ReLUs,将前3 个卷积层用于特征提取,最后2 个卷积层用于分类。对于附加的实例分割信息,本文将其预处理为相应的二进制掩码,因此可简单地将其作为单通道二值图像。参考已有工作,将实例归一化(IN)[40]应用于生成器和鉴别器中。另外,实验结果证明,将光谱归一化[41]应用于鉴别器也能明显提升生成效果。
本文从多人分析(MHP)[42]数据集中收集了两个类的样本,并将其用作图像翻译任务的两个域。调整MHP 数据集大小为240×160(高度×宽度)的图像。MHP V1.0 数据集包含4 980 张图像,每张图像至少包含2 个人(平均为3个)。对于每幅图像,包括“背景”“大衣”“裙子”“裤子”等类别。每当相应类别出现在当前图像中时,每个实例都有相应注释。
实验中,设置超参数λcyc=10,λidt=1,λctx=1,并选择Adam[43]优化器。其中,G的学习率为0.000 2,D的学习率为0.000 1。同时设置优化器的动量参数β1=0.5,β2=0.999。对于批处理规范化方法,使用将批处理大小设置为1 的“实例规范化”,该方法已被证明在图像生成任务[40]中十分有效。对于常见的模型振荡问题[39],本文遵循Shriv⁃astava 等[44]的策略并使用缓冲区中一定数量的生成图像历史更新鉴别器,而不是最新生成器生成的图像。根据实验数据集大小,实验中保持了前100 次epoch 的学习率,之后50 次epoch 保持线性衰减直到零。训练任务在ubuntu16.04系统NVIDIA GeForce RTX 2080Ti 的条件下,训练过程中平均每代训练时间为78s,测试阶段每张图像处理时间在1s以内。实验结果显示,在保证原有背景和结构不变的情况下能够较好地实现服装转换,与本文目标完全一致,如图4所示,输入为个人图像和对应掩码(x,a)与(y,b),(y′,a)与(x′,b)为其对应输出。实验结果还表明,本文方法对时装片段不同角度的光线和阴影都有较好的保持效果。
Fig.4 Experimental results of style conversion of clothing fragments图4 服装片段风格转换实验结果
为评估本文方法的有效性,采用3 个相关的神经风格迁移模型作为对比,具体如下:
CycleGAN[24]:最基础的CycleGAN 网络,包含循环一致损失和身份映射损失。
InstaGAN[34]:CycleGAN 的演变模型之一,同时编码与解码图片以及对应的目标掩码,更关注转换前后的目标区域形状变换。
AttentionGAN[30]:CycleGAN 的另一演变模型,添加注意机制以引导模型只转换目标区域,同时保持背景不变。
本文采用MHP 服装数据集中80%的图像训练网络。以上对比方法均以作者发布的代码及参数设置作为实验设置,几种方法对比结果如图5 所示。从实验结果可以看出,CycleGAN 无法将转换只控制在目标区域,背景上也存在不该出现的颜色转换,在没有附加信息的条件下,很难将迁移工作只锁定在目标区域;InstaGAN 由于其结构特征造成了一定程度的目标区域形状变化,这与本文研究目标不一致;AttentionGAN 出现了背景上的色彩转移,且目标区域与背景分界处模糊不清,估计是由于注意机制无法在这种复杂背景和多变的形状条件下很好地工作,只有本文方法得到了与目标一致的实验结果。
为验证本文损失函数的有效性,实验比较了损失函数得到的转换结果,如图6 所示。只使用GAN 损失几乎不会产生可视化结果(Gan alone),若消除循环一致性损失也是如此(No cyc)。因此,循环一致损失对本文结果至关重要。没有身份映射损失的结果在颜色显示上会出现输入与生成出现偏差的情况(No idt)。而缺少上下文一致损失则会造成背景区域的不正确转换,无法达到转换前后背景不变的实验目标(No ctx)。实验结果表明,所采用的损失函数若去除其中任意一个损失都会对结果产生较大影响,意味着所有这些因素都对本文转换模型至关重要。
Fig.5 Experimental results of fashion style transfer with different methods图5 不同方法时装风格迁移实验结果
Fig.6 Experimental results of loss functions图6 损失函数实验结果
本文提出一种用于未配对图像转换的新方法,以实现对不同风格服装之间的风格迁移,达到背景不变的虚拟试穿目的。本文方法通过附加风格掩码的方式转换服装项目的颜色和图案,同时保持其原有背景和结构不变。本文研究结果可将服装产品直观展示给设计者和使用者,具有较高的实用价值。实验结果显示,该方法通过基于GAN 的深度神经网络模型达到了本文预期目标,十分适合基于图像转化的虚拟试穿实验。未来计划收集更丰富的训练数据以及更精确的服装分割信息,基于多种不同服饰风格构建更有针对性的数据集,同时减少因分割信息不准确对图像生成造成的不正确引导,以产生更自然的转换结果。