介绍算法之前,我们先来回顾一下基于图像的虚拟换装的历史。传统的虚拟换装基于 3D 匹配,比如一些换装墨镜,都是生成一个跟踪人物的虚拟贴图。而基于图像的虚拟换装,可以直接生成换好装的人物图片。VITON 提供了一个被广泛使用的 pipeline,现在的方法大多遵循类似的框架。
1. 利用网络泛化能力的重构学习
由于同一个模特在同一姿势下穿着不同衣服的数据集较难获得,常见做法是,将人物图片的监督信息减弱,再将与人物身上同样的 inshop-clothes(平铺的衣服正面大图)穿在这个处理过后的表达上。将图片的监督信息减弱防止过强的参考使得网络无法泛化到不同的衣服上。也就是提取关键点,模糊形状等来作为一个人物的表达,再重构原来的图像。经典的衣服无关人物表达(clothing-agnostic person representation) 如下图所示。
VITON:如图所示,VITON 通过先生成衣服 mask 和原始 inshop-clothes 的 mask 来计算 TPS 变换的参数,将这套参数使用到 inshop-clothes 上,生成一个变形衣服图。之后会和之前生成的一个 coarse 人物结果,一起 refine 出最终结果。整个流程是 2-stage 模式。VITON 在进行图像对齐的时候,利用 Shape Context 描述子提取图像特征完成对齐,后来的 CP-VTON 则把这个部分用卷积神经网络代替。
动机
这两个方法都无法处理人物肢体与衣服有交叉的情况。一旦手挡在了衣服前,或者姿势较为复杂,往往图片会丢失肢体细节,手指糊成一团。这给面向真实场景应用的虚拟换装系统的实现,带来极大的隐患与阻力,毕竟用户在使用的时候,姿势是各种各样的。为了解决这一问题,我们使用语义分割来代替原有的衣服无关人物表达。
该文章提出了一种自适应内容生成保留网络即 ACGPN。此方法利用一种 layout aware 的方法,自适应的判断哪部分图像是应该保留的,解决了现有方法中,无法对人物肢体与衣服有遮挡的情况的建模,极大程度地降低了生成结果中的伪影以及模糊细节;并通过引入仿射变换的共线性等性质,对变形 inshop-clothes 中的 TPS 变换起到约束,使得 Logo 和花纹不易扭曲变形。
第一个是语义生成模块(Semantic Generation Module (SGM)),它使用身体部位和衣服的语义分割来逐步生成暴露的身体部位的蒙版(即,合成的身体部位蒙版)和变形衣服区域的蒙版。与现有技术相反,提出的 SGM 以两阶段的方式生成语义蒙版,以首先生成身体部位并逐步合成服装蒙版,这使得参考图像中的原始服装形状对于网络完全不可知。
第二部分是衣服变形模块(Clothes Warping Module (CWM)),该模块用于根据生成的语义布局对衣服进行变形操作。除了基于薄板样条的方法以外,还对变形优化目标引入了二阶差分约束,以使变形过程更加稳定,尤其是对于质地复杂的衣服。
从图中我们可以看出没有该文章的约束,衣服虽然在整体形状上没有差异,但是内部花样会产生较大扭曲。约束的公式为:
数据集:VITON Dataset
实验结果
传送门
ACGPN 代码目前已经开源,欢迎各位同学使用和交流。
论文地址:https://arxiv.org/abs/2003.05863
源码地址:https://github.com/switchablenorms/DeepFashion_Try_On
References
[1] Bochao Wang, Huabin Zheng, Xiaodan Liang, Yimin Chen, Liang Lin, and Meng Yang. Toward characteristic preserving image-based virtual try-on network. In ECCV(13), volume 11217 of Lecture Notes in Computer Science, pages 607–623. Springer, 2018.
[2] Xintong Han, Zuxuan Wu, Zhe Wu, Ruichi Yu, and Larry S. Davis. VITON: an image-based virtual try-on network. In CVPR, pages 7543–7552. IEEE Computer Society, 2018.
[3] Ruiyun Yu, Xiaoqi Wang, and Xiaohui Xie. Vtnfp: An image-based virtual try-on network with body and clothing feature preservation. In The IEEE International Conferenceon Computer Vision (ICCV), October 2019.