禹 立,钟跃崎,2
(1.东华大学 纺织学院, 上海 201620; 2.东华大学 纺织面料技术教育部重点实验室, 上海 201620)
中国拥有一个庞大的服装网购市场[1],虚拟试衣技术通过模拟指定服装穿在用户身上的着装效果,让用户能够直观地看到自身着装的视觉效果。该技术能够给顾客更真实的购物体验,有助于促进顾客做出购买决策[2-3]。
过去很多研究者专注于基于三维建模的虚拟试衣技术[4-6],即通过构建人体和服装的三维模型来实现虚拟试衣。这种方法不仅可以评价合身性,而且通过精准地控制服装的物理变形[7],可达到较为真实的试衣效果。这类方法一般需要昂贵的设备来获取精确的三维信息,并且在构建三维模型的过程中必须人工参与,故效率较低。
而基于二维图像的虚拟试衣技术只需要输入用户和目标服装的二维图像就能合成用户穿着该服装的图像,无需收集三维信息[8]。二维图像的低成本获取使得这种技术在快速更迭的时尚行业中更加具有竞争优势。生成对抗网络常被应用于该类技术,有学者[8]借鉴循环一致思想[9],提出了一种条件类推生成对抗网络,实现了对图像中人物的服装进行更换。为了简化输入,Han等[10]提出一种从粗糙到精细的策略,仅需输入一张用户图像和目标服装产品图即可实现换衣,但该方法在处理目标服装与用户匹配时有时会发生失败。为了能够处理匹配失败的问题,Raj等[11]提出通过人物解析迁移[12]或者姿态迁移[13],利用网络来学习服装与用户的匹配关系,但是这类方法生成的试衣结果会丢失部分服装纹理细节,且未考虑如何保持用户身份信息(如肤色、头发等)。
本文提出了一种基于服装迁移的二维虚拟试衣技术,只需要输入用户图像和模特图像,就能够生成模特服装穿在用户身上的合成图像,并且用户的体型、姿态保持不变,同时服装的属性、细节仍被保留。通过纹理重映射[14]以及人物解析迁移尽可能多且合理地提取目标服装和用户纹理,基于半监督学习来修复纹理缺失区域,得到最终的试衣结果。本文通过将虚拟试衣任务转换为图像修复任务[15],降低模型训练难度,为基于图像的虚拟试衣研究提供了新的思路。
密集姿态[14]作为一种人物图像的描述特征,是基于SMPL[16]参数化三维人体模型定义的。该模型可以根据参数控制人体的体形和姿态。借助密集姿态,可以将二维的人物图像映射到一个统一的三维人体模型上,这个三维模型的体形、姿态都是固定的。如果做一个逆映射,即将三维人体表面的纹理映射回二维图像,则得到的结果与密集姿态的体形、姿态相符合。因此本文通过纹理的映射与逆映射来实现服装与用户的匹配,纹理重映射的效果如图1所示。
图1 纹理重映射的效果
另外,鉴于服装纹理通常存在对称区域(如左袖与右袖),因此在逆映射阶段加入对称部位相应的纹理图,有助于减少纹理缺失区域的面积,以达到充分利用模特图像所提供纹理的目的,对称部位影响纹理重映射效果如图2所示。
图2 对称部位影响纹理重映射效果
在训练阶段,本文采用半监督学习,利用2张同一人物且穿同一服装但姿态不同的图像,记为A和B,构成图像对来进行训练。若将其中一张图像A的身体分割图以及另一张图像B的人物解析作为输入,由于仍然是同一个人,因此迁移结果的真值即为图像A的人物解析。因其类似于图像分割任务[17],故可采用Softmax交叉熵作为损失函数。另外,本文还加入了生成对抗损失函数[18]和总变差正则化[19]来辅助训练,同时对图像B的人物解析进行数据增广来增强模型的泛化能力。
其中∩代表交集操作,即当2个掩模同一位置的像素值均为1时,结果相应位置为1,其他情况均为0。最后将得到的用户纹理掩模Utex-mask与用户图像U进行逐元素相乘,得到所需的用户纹理Utex。
图3 提取用户纹理的流程
在人物解析迁移的基础上,利用交集操作,不仅保证了提取的纹理被限制在相应的用户纹理区域,同时还去除了会影响最终结果的多余纹理。如图3所示,用户掩模会将用户的右臂完整地保留下来,而由于目标服装为短袖,因此右臂上半部分是多余的,通过交集操作得到的用户纹理掩模,丢弃了该区域的用户纹理,故而提取到了最优的用户纹理。
图4 合并服装纹理和用户纹理得到粗糙结果
修补纹理缺失区域实质为一个图像修复任务[15],并且修复区域的形状是不规则的。本文通过训练一个基于生成对抗网络的纹理修复网络来填补这些缺失的纹理,通过卷积神经网络学习输入图像中的语义信息和隐藏特征,使得修复的内容不仅与背景过渡自然,同时不会破坏人物和服装的整体结构与局部细节。
图5 纹理修复网络结构
本文合并了LookBook数据集[22]和MVC数据集[23]来进行模型训练,这些数据集包含了同一个人且穿着相同服装在不同姿态下拍摄的图像组,每组图像至少由2张人物图像构成。由于纹理修复网络的目标是将粗糙结果修复为最终的试衣结果,为了降低数据集构建难度,依然采用半监督学习的方式来训练网络。
有鉴于此,本文提出了三元组训练策略。分别定义非成对样本、成对样本和修复样本,并对这3类样本进行联合训练,实现粗糙结果的纹理修复,三元组训练策略如图6所示。将同一人物在不同姿态下的照片视为一个图像组:①对于不成对样本,首先随机挑选2个不同的图像组,然后从这2个图像组中分别再随机挑选1张;②对于成对样本,则是先随机挑选一个图像组,然后从该图像组随机挑选2张图像;③对于修复样本,则是从任意图像组挑选任意1张图像并随机擦除部分区域。另外,由于非成对样本对应的真值y难以获取,所以只使用生成对抗损失LG作为唯一的损失函数。
图6 三元组训练策略
图7展示了人物解析迁移的生成结果,“本文结果”即为本文提出方法得到的结果,“真值”即为人物解析迁移的期望结果。从图中可以看出,人物解析迁移网络其合成的结果和预期真值较为符合。另外,当使用成对样本的数据进行测试时,类似于训练阶段,即迁移结果会有真值,因此可以借助图像分割任务的评价指标进行定量分析。本文使用平均像素精度和平均交并比[17]作为迁移结果的评价指标。随机挑选了5 000对未参与训练的数据进行测试,计算迁移结果的平均像素精度以及平均交并比,本文方法的平均像素精度为70.34%,平均交并比为61.35%,同样证明了本文方法的有效性。
图7 人物解析迁移结果展示
为了验证本文方法的泛化能力,使用未参与训练的Zalando数据集[9]作为测试集来评估试衣结果,通过随机组合,得到了2 000组图像,每组图像包含1张用户图像和1张模特图像,其中用户和模特不是同一个人,所穿服装、体形、姿态均不相同。
图8展示了本文方法的最终试衣结果,从结果中可以看出,本文方法能够较好地保留服装细节(如服装属性、图案纹理)和用户身份信息(肤色、头发),生成的试衣结果更加合理且真实。这是因为:①在提取服装纹理时,仅关注模特图像中目标服装区域的像素,借助纹理重映射实现服装与用户匹配的同时,尽可能减少了纹理细节的损失;②在提取用户纹理时,借助人物解析迁移的结果,尽可能多且正确地保留用户的纹理;③对粗糙结果的纹理修复,使生成的结果更加真实、自然。
图8 最终试衣结果展示
对于图像生成任务,评价一个模型生成结果的好坏通常是较为主观的判断,如对于基于图像的二维虚拟试衣任务来说,需要根据试衣结果是否正确,以及视觉上是否真实来进行判断。本文采用Inception Score (IS)[24]和Fréchet Inception Distance (FID)[25]作为评价图像质量的指标。这2个评价指标都是借助ImageNet预训练的Inception网络[26]实现自动计算的。一般来说,IS越大,FID值越小,表示其与真实数据越接近,图像质量越好。在本文中,使用Zalando数据集的人物图像作为真实数据,另外还采用检测分数(DS)[27]这一指标。其计算步骤为,首先将生成图像输入到一个目标检测模型,然后得到“人物”对应类别的分数,最后对所有生成图像得到的分数求均值。DS主要用于衡量生成图像中的人物是否真实,其值越高,则生成的人物图像质量越好。
表1总结了本文定量评价的结果, 本文IS为2.708,FID为29.48,DS为99.88,均较为接近真实数据所获得的分数,进一步表明本文方法可以生成较高质量的试衣结果。
表1 本文试衣结果的定量评价
本文从纹理修复的视角,对基于二维图像的虚拟试衣进行研究,提出了一种虚拟试衣技术,通过输入用户图像和模特图像,能够自动生成用户身穿模特服装的试衣图像。在纹理重映射、人物解析迁移以及纹理修复的帮助下,试衣结果能够较好地保留服装的纹理细节和用户的身份信息。该技术在大部分情况下均能生成正确的试衣结果,但还是存在一些不足之处,例如试衣结果对密集姿态估计、人物解析预测的结果较为敏感,当这些结果存在错误时,会影响到最终试衣结果的合成。未来可以探索更具鲁棒性的纹理提取方法,减少对纹理描述特征的依赖。另外,还可以尝试将该技术拓展到更多的试穿物品,如眼镜、帽子、鞋子等。