基于深度学习的2D虚拟试衣系统研究
2023-05-10朱国迎陈天昂李嘉晖刘纯平
朱国迎 陈天昂 李嘉晖 刘纯平
关键词:虚拟试衣;深度学习;图像合成
1引言
虚拟试衣系统可以帮助人们在网络上试穿衣物,以判断该衣物是否合身。除了电子商务领域,虚拟试衣在时尚图片编辑、服装检索等领域仍有着广泛的应用。目前的虚拟试衣系统分为两类:3D试衣和2D试衣。3D试衣需要把服装渲染到三维模型上,效果稳定。但是,获取3D数据的过程在硬件的部署和计算效率上成本高昂,不利于推广使用。2D试衣只需要一张用户照片,一张服装图片,就可以生成一张穿着指定服装的用户照片。可见,2D试衣使用便利,具有较大应用前景和研究价值。人工修图可以给图片中的人物做简易的换装。但这种方式不仅手工劳动较多且效果十分局限。为了让换衣后图片质量更高,可以采用深度学习方法制作2D虚拟换衣系统。本文对基于深度学习的2D虚拟试衣系统进行了解读和探讨。
2效果要求
2D虚拟试衣系统的本质是图像合成,即使用一张人物图像和一张目标服装图像来合成穿着指定服装的人物图像。合成后的图像一般需要达到以下要求才能基本符合实际需求[1]:(1)图片中人物的身体部位和姿势需要与输入的用户照片相同;(2)生成图片中的服装需要根据人的姿势和轮廓变形,试衣系统需要让这件衣服看上去是“穿”在用户身上;(3)生成图片中的服装不仅包括颜色和纹理这些简单的特征,还包含一些原有的相对复杂的图案。
3模型方法
现有深度学习模型的图像数据来源于网络上的人物图像和店内服装图像。这些图像数据往往不是成对的。我们通常只能获得穿着目标服装的人物图像和服装图像,难以获得目标人物以相同的姿势穿其他衣服的图像。因此,现有的2D虚拟试衣的深度学习模型通常采用自监督学习方式,主要分为以下两种:单向重构的图像修复方法和循环一致性生成法。单向重构的图像修复方法通过遮盖人物图像的服装区域,然后使用服装图像重建已遮盖的区域。循环一致性生成法源于CycleGANE2],該方法用来解决在GAN模型下图像数据不配对的问题。下文会具体解释循环一致性。
3.1单向重构的图像修复方法
(1)VITON是第一个专注于2D虚拟试衣的深度学习模型。它采用一种“由粗到细”的策略,将目标服装无缝传输到用户被衣物覆盖的部分。VITON包含三个部分:用户表示模块、U-net结构的生成器和细化网络。为了满足上述虚拟换衣的效果要求,VITON首先得到一个无关服装信息的人物表示。该表示包含三部分:姿势热图、用户的身体表示、脸和头发的分割。有了人物表示,就可以在输出图像里保持原照片人物轮廓。基于该无关服装信息的用户表示和目标服装,生成器生成一个粗略的合成图像和掩码。根据该掩码计算出TPS参数,再根据TPS参数将目标服装形变成“合身”的形状。VITON通过细化网络将形变好的服装与生成的粗糙的合成图像进行匹配,并与其中的衣物区域进行无缝连接。
(2)CP_VTON[3]模型紧随VITON被提出。VITON中服装图像在根据掩码形变时会导致细节特征缺失。因为掩码只能表示出形状信息,生成的TPS参数并不能有效指导衣物上的具体花纹一起形变。而CP-VTON提出了一种新的可学习的薄板样条变换以替代VITON中的形变过程。该变换通过卷积神经网络实现,输人人物表示信息和目标服装,跳过掩码,直接生成TPS参数。该TPS参数可以更好地形变衣物,使它与人物对齐。实验证明,CP-VTON生成图片的纹理图案特征比Viton清晰得多。
(3) Viton_HDE4]模型为消除伪影影响、提高生成图片的分辨率而生。该模型提出了ALIAS归一化和ALIAS生成器,解决了形变后的衣物与人物轮廓不对齐问题,有效地维护了衣服的细节。ALIAS归一化操作在形变后衣物的错位区域上执行标准化,删除了图像中的衣物的背景信息。ALIAS生成器由一系列ALIAS残差块和上采样层组成。而每个ALIAS残差块由ALIAS归一化操作和卷积、激活函数组成。实验证明.ALIAS生成器比U-net网络生成的衣服纹理更加细化。
上述模型都基于以下两个过程:形变服装图像以适应人物轮廓:将形变后的服装图像与遮罩后的人物图像融合。这类方法的缺点在于,当目标服装与输入图像中的服装有明显差异时,形变难度太大,效果不佳。如果输入图像中人物穿着短袖,但是目标服装是长袖时,单向重构的图像修复方法会把这件长袖重构成短袖。因为其缺乏端到端训练,从而限制了这类方法的泛化潜力。
3.2循环一致性生成法
(1) CAGAN[s]把虚拟试衣问题建模成图像类比问题:找出数据集中目标服装图像和穿着该服装的人物的联系。这种联系包括但不限于遮挡、照明、3D旋转和变形。通过深度学习模型获取这种联系后,我们就可以给任意人物图像换上目标服装照片。这样的建模思路很符合深度学习的一贯做法,可以端到端的训练模型。
CAGAN基于条件生成对抗网络的框架来实现,它包括两个部分:用来生成换装后人物图像的学习生成器G和鉴别器D。鉴别器D要做出两个判断:G生成的图像是否逼真:G生成的人物图像是否和目标服装的联系在数据集中观察到的一致。在训练的过程中,G和D相互受益:D的梯度引导G生成更高质量的图像,而新生成的图像构成D的负样本。当找到一个平衡点时,该过程终止。最终G生成的图像足够逼真,且D无法分辨G生成的人物图像是否和目标服装有无联系。另外,CAGAN引入了循环一致性的概念。当G生成的人物图像中服装被换回,该图像应该与原图像达成的效果一致。CAGAN解决2D虚拟试衣问题的思路是典型的深度学习方法。它对虚拟试衣问题的上下文做出尽可能少的假设,且强制执行循环一致性约束,但把信息提取全部交给模型的做法很有可能忽略了虚拟换衣场景下信息的特殊性。
(2)DCTONE6]模型充分考虑了2D虚拟试衣场景的特殊性,将模型分为三个部分:服装形变模块,保存了服装设计;皮肤合成模块,包括人体部分的生成:图像合成模块,用于生成输出图像。服装形变模块包含两个顺序连接的编码器一解码器网络(MPN:掩码预测网络,STN:空间转换网络)和一个编码器网络。与以前VITON类模型不同的是,DCTON模型采用了Densepose描述符来表示人物特征,因为它不仅提供了关键点位置,还提供了语义解析结果(如身体和手臂形状),而普通的2D姿态估计器只能提供关键点位置。语义解析的结果使模型在服装合身和特征生成方面变得更加细节化。然后DCTON将Densepose描述的人物特征和用户人物照片发送到MPN中,它将生成输入图像的服装区域和皮肤区域的掩模,并分别作为进一步形变服装和合成人物图像的先验指导。在得到服装区域的掩模后,将它与目标服装一起送进STN。STN会根据服装区域掩模的指导来形变目标服装。
DCTON模型也使用了循环一致性法约束图像生成。首先给定一个皮肤区域图像、目标服装、Densepose描述符,原人物图像,然后生成试穿结果图像。反过来,使用生成的试穿结果图像、结果图像的皮肤区域,原服装和Densepose对结果图像的描述符进行输入,生成逆预测的输入图像。
DCTON模型根据2D虚拟试衣的特殊需求,设计整体的网络架构,如专门设计了皮肤合成模块和STN模块,其明显比CAGAN更加适合虚拟试衣任务,并在图像中表现更突出。
4创新方向
4.1优化网络整体架构
网络整体架构应依据2D虚拟试衣的任务目标而定,让深度学习方法更加适用于虚拟试衣任务场景。正如VITON类框架的设计完全与人们换装的过程相关:遮盖服装区域是“脱衣”的过程,而形变服装照片则是“穿衣”的过程。因此,充分考虑深度模型的应用场景是优化网络整体架构的关键。在DCTON模型里,皮肤合成模块给了我们同样的启示,该模块旨在恢复试穿时被遮盖的人体皮肤区域,针对性地改善其他模型生成的图像中皮肤部分残缺的问题。在之后的工作中,我们也可以针对人脸细节缺失的问题,设计人脸生成模块。在大多数情况下,要保留人脸的细节将人脸部分cut-paste即可。但仍有一些特殊情况,如原照片人物佩戴头饰,我们需要在更换一件新衣服的同时更换新的头饰。更特殊的情况,原来的头饰遮挡住了人脸,我们需要恢复被遮挡的区域。模型在投入到实践之前,是否需要根据应用场景设计新的模块值得深思。
4.2优化特征提取
优化特征提取是优化深度模型常见的思路,选择更加细致的特征和使用更丰富的特征在多数情况下能提高模型的效果。在VITON类中,CP-VITON用卷积神经网絡实现,直接生成TPS参数,选择跳过掩码,就是为了能够收集更多的特征信息。ClothFlow模型引入了外观流的概念以替代TPS参数,从而更加准确地形变目标服装,这也是在保留更多的特征细节。DCTON模型使用Densepose描述符去获取人物信息,也是为了得到更细致的特征——语义解析结果。在之后的工作中,我们可以尝试更加高级的特征提取方式去获取特征,以及尝试一些新的卷积方式去代替一般的卷积核。值得一提的是,GAN在自监督图像生成领域早有大的作为,因此,CAGAN如果采取更加细致和丰富的特征或许会有令人惊喜的效果。
5结束语
本文探讨了基于深度学习的2D虚拟试衣模型,详细对比和阐述了单向重构法与循环一致性生成法下模型各自的特点,总结并归纳了基于深度学习的2D虚拟试衣模型的创新思路。在实际应用场景下,我们需要根据具体场景构建恰当的深度学习模型结构,并尽量使用更优的特征提取方法。