文章目录
论文: 《Towards Scalable Unpaired Virtual Try-On via Patch-Routed Spatially-Adaptive GAN》
代码: https://github.com/xiezhy6/PASTA-GAN
创新点
PASTA-GAN支持非成对数据进行虚拟换装
try-on目前存在问题:
- 传统成对try-on方法使用数据成对出现,即人A穿衣服C1及C2的图片,以此训练变换网络,但实际中人体不一定成对出现,缺少成对真值标定,此方案将失效;
- 现有非成对试衣方案通过使用不同姿态人体图像将服装与姿态进行解耦,但是这需要同一个人的不同姿态数据;
PASTA-GAN可以精准生成衣服形状和风格:
1、引入patch-rounted解耦模块,将服装风格及空间特征解耦;
2、空间自适应残差模块,减轻特征不对齐问题;
PASTA-GAN创新点有三个:
1、将衣服分割为归一化patch,patch-routed解耦模块鼓励风格编码器学习空间无关的衣服特征,这些特征使得无论衣服空间信息如何,生成网路都将生成准确衣服风格的图片;
2、给出目标人体姿态后,不需要扭曲网络或者3D人体模型,归一化patch可以轻松重构符合目标形态的衣服;
3、空间自适应残差模块提取扭曲的服装特征,自使用对齐目标衣服形状;
算法
PASTA-GAN推理过程如图2所示,
PASTA-GAN推理过程如下:
1、给出源域及目标域人体(
I
s
,
I
t
I_s,I_t
Is,It),提取源域服装
G
s
G_s
Gs,源域姿态
J
s
J_s
Js,目标域姿态
J
t
J_t
Jt,三者通过patch-routed解耦模块生成归一化衣服patch
P
n
P_n
Pn以及扭曲的衣服
G
t
G_t
Gt;
2、conditional stylegan2将从
P
n
P_n
Pn提取的风格
ω
\omega
ω,从目标头及姿态提取的人体特征
f
i
d
f_{id}
fid,生成粗糙试衣结果
I
~
t
′
\widetilde I_t'
I
t′及对应目标服装mask
M
g
M_g
Mg;
3、在纹理生成分支充分利用
f
g
f_g
fg生成最终试衣结果
I
t
′
I_t'
It′.
PASTA-GAN注意包括三部分:patch-routed distanglement模块、attribute-decoupled conditional StyleGAN2、Spatially-adaptive Residual模块。
Patch-routed Disentanglement Module
图2为推理过程,由于缺少成对样本,因此解耦pose与衣服关联至关重要;
为移除衣服包含空间信息,作者直接将衣服分割为归一化patch;
patch-routed生成归一化Patch
P
n
P_n
Pn以及扭曲的衣服
G
t
G_t
Gt;
原理如下,过程如图3:
1、提取源域人体关键点
J
s
J_s
Js,源域衣服
G
s
G_s
Gs;
2、根据关键点位置,将衣物分为8个patch
P
s
P_s
Ps;
3、通过视角变换对所有patch进行归一化,除去空间信息。
视角变换过程如下:
a.通过
P
s
P_s
Ps与
P
n
P_n
Pn一一对应patch的角点(关键点)坐标计算
H
s
−
>
n
H_{s->n}
Hs−>n,完成patch归一化,如式1,Pn每个patch大小固定(
64
∗
64
64*64
64∗64);
b.通过使用目标关键点进一步将
P
n
P_n
Pn迁移至
P
t
P_t
Pt;
中间归一化patch有利用解耦衣服风格与空间特征;
Attribute-decoupled Conditional StyleGAN2
单独的conditional StyleGAN2不足以生成逼真的衣服细节,尤其是复杂纹理与logo;原因有二:
1、风格编码映射为归一化patch为一维向量,导致缺少高频信息;
2、由于服装纹理多样性,对基础生成网络来说,学习服装的细节分布充满挑战。
为了生存更真实衣服,作者在生成网络128*128生成block后增加两个分支:风格生成分支(SSB)与纹理生成分支(TSB)。
SSB用于生成中间试衣结果
I
~
t
′
\widetilde I_t'
I
t′及对应目标服装mask
M
g
M_g
Mg;
TSB利用
M
g
M_g
Mg及扭曲的衣服
G
t
G_t
Gt(存在丰富纹理信息引导生成)生成高质量试衣结果;
Spatially-adaptive Residual Module
扭曲的衣服
G
t
G_t
Gt与
M
g
M_g
Mg存在不对齐,由于
G
t
G_t
Gt直接通过拼接patch得到,如图4;
为了解决这个问题,如图2,在TSN的最后两个生成block之间添加spatially-adaptive residual module,该模块由一个服装编码器和三个具有特征嵌入机制的空间自适应残差块组成。
其过程如下:
1、移除
M
g
M_g
Mg以外区域的
G
t
G_t
Gt,图4中绿色区域;
2、修补
M
g
M_g
Mg中未对齐的特征区域,图4中橙色区域;
归一化和调制过程如式6,
损失函数
图2为推理过程结构,训练过程
I
s
、
I
t
I_s、I_t
Is、It使用同一张图;
即使原始pose与目标pose相同,粗糙的扭曲衣服
G
t
G_t
Gt与原始衣服
G
s
G_s
Gs存在差异;同时为了缩小训练测试差异,训练过程增加随机擦除;如图5
损失函数主要包括:
1、重构损失Lrec:
重构损失Lrec:
由于训练数据非成对,因此使用图像重构损失;
生成图像(粗糙试衣结果及最终试衣结果)与真实图像之间L1损失;
2、感知损失Lperc:
使用5层VGG-19特征,计算特征L1距离;
Lrec与Lperc,如式7,
3、mask 损失Lmask:
预测的衣物mask
M
g
M_g
Mg与真值mask
M
g
t
M_{gt}
Mgt(即Gs的Mask)之间loss,如式8;
4、对抗损失LGAN:
总损失如式9,
实验
非成对数据集
作者使用FID以及真人评估图片真实性,结果如表1,
在UPT数据集非成对设置下,各个方法可视化结果如图6,
成对数据集
在MPV数据集,比较成对的数据可视化结果,如图7,
消融实验
结论
patch-routed模块解耦衣服与空间信息,使得非成对服装迁移成为可能;
PASTA-GAN中关键点信息来自OpenPose,人体部件分割信息来自Graphonomy。