赞
踩
DiOr支持2D姿态迁移、虚拟试衣、服装编辑任务;
DiOr重点是使用新颖的循环生成网路,将衣服按顺序穿到一个人身上,顺序不同,结果不同;
DiOr整体流程如图2,
流程如下:
1、目标域姿态P经过Epose得到Zpose;
2、Zpose与T’body通过G循环生成状态Zk;
3、Zk经过Gdec生成图片Igen;
对于源域穿着衣物
g
k
g_k
gk的人体
I
g
k
I_{gk}
Igk,使用Self Correction for Human Parsing提取衣物分割
s
g
k
s_{gk}
sgk,使用openpose获取人体关键点估计
P
g
k
P_{gk}
Pgk,源域姿态Pgk与目标姿态
P
P
P存在差异,使用流场
f
g
k
f_{gk}
fgk将
s
g
k
s_{gk}
sgk与目标姿态
P
P
P对齐,如图3a;
对衣服分割
s
g
k
s_{gk}
sgk通过编码器
E
s
e
g
E_{seg}
Eseg进行编码,生成空间对齐的纹理特征T及粗略的mask M;
E
s
e
g
E_{seg}
Eseg模块如图3b,输入首先经过
E
t
e
x
E_{tex}
Etex对输入提取纹理信息,使用双线性插值将
E
t
e
x
E_{tex}
Etex的输出通过流场
f
g
k
f_{gk}
fgk进行扭曲得到纹理特征
T
g
k
T_{gk}
Tgk,
T
g
k
T_{gk}
Tgk经过风格器S得到形状mask
M
g
k
M_{gk}
Mgk;使用
E
m
a
p
E_{map}
Emap映射
T
g
k
T_{gk}
Tgk到合适维度,引入
T
g
k
T_{gk}
Tgk的均值向量(
T
‾
g
k
\overline T_{gk}
Tgk)有助于对衣物缺失区域进行补全;如下式,
如图3c,对于源域人体的身体编码过程;
对于源域人体Is经过风格得到背景mask
s
b
g
s_{bg}
sbg及皮肤mask
s
s
k
i
n
s_{skin}
sskin,分别经过分割编码器器
E
s
e
g
E_{seg}
Eseg编码得到
(
T
b
g
,
M
b
g
)
(T_{bg},M_{bg})
(Tbg,Mbg)和
(
T
s
k
i
n
,
M
s
k
i
n
)
(T_{skin},M_{skin})
(Tskin,Mskin);
为确保身体特征图贯穿整个身体区域,计算
T
s
k
i
n
T_{skin}
Tskin均值向量b,将b broadcast到前景区域
M
f
g
M_{fg}
Mfg,得到特征图经过
E
m
a
p
E_{map}
Emap映射到合适区域;背景
T
b
g
T_{bg}
Tbg、
M
b
g
M_{bg}
Mbg经过映射为
T
b
g
′
T'_{bg}
Tbg′,流程如式1;
姿态编码器 E p o s e E_{pose} Epose:由3个卷积层构成,每个卷积层跟随IN及leaky ReLU层;
损失函数如式3,
L
c
o
n
t
e
n
t
L_{content}
Lcontent表示生成图像与真值之间一致性,包括L1 Loss、感知损失、风格损失;
L
g
e
o
L_{geo}
Lgeo表示预测流场的正确性和正则性损失;
L
G
A
N
L_{GAN}
LGAN使用两个判别器:一个基于pose、另一个基于分割;
L
s
e
g
L_{seg}
Lseg表示Mg与真值mask之间差异;
作者发现单独训练一个姿态迁移模型得到一个不准确不一致试衣结果,如图6,因此作者训练时加入重构,即
P
t
=
P
s
P_t=P_s
Pt=Ps,可以改进衣服重叠,但不能填充缺失区域;通过对输入进行部分mask解决;
DiOr一种灵活的人物生成方法,经过姿态迁移和修复训练,便能够在没有直接监督的情况下执行多种服装分层和编辑任务。
但是对于复杂或很少见的姿势并不总是正确渲染,不寻常的服装形状没有保留,存在一些重影伪影,服装上的洞并不总是正确填充;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。