• wFlow(CVPR2022)-虚拟试衣论文解读



    论文: 《Dressing in the Wild by Watching Dance Videos》
    github:暂未开源

    解决问题

    问题:
    虚拟试衣已经取得较大进步,但是现有方法忽略了自然场景,在自然场景表现出衣服人体未对齐,精细纹理细节退化;
    解决方法:
    wFlow关注自然场景,并且在真实性及自然性上改进明显,尤其对于宽松衣服:skirt和dress,有挑战性pose:胳膊交叉、腿弯曲,凌乱背景;
    2D pixel flow适用于紧身或宽松衣服,然而对于pose变化比较大时失效;3D vertex flow虽然在各种姿势上表现较好,但是牺牲变形自由度,对于宽松衣服表现不好;wFlow将两者结合,作者基于Dance50k视频数据(利用跨帧一致性自监督训练)进行虚拟试衣,不需要成对图像训练,降低工作量;
    本文贡献如下:
    1、第一次探究自然场景下衣服迁移问题。
    2、可将任意服装迁移至任何自然场景下复杂姿势,wFlow结合2D与3D信息;
    3、构建大规模视频数据集,Dance50k,包括50k个跳舞视频序列;

    算法

    在这里插入图片描述

    如图1,常规训练需要成对数据, ( I s 、 I q , O q ) (I^s、I^q,O^q) (IsIqOq),给出 I s 、 I q I^s、I^q IsIq,生成 O q O^q Oq,然而 O q O^q Oq难以获得,本文使用 ( I s , I t , O t ) (I^s,I^t,O^t) (IsItOt)进行训练,其中 I s I^s Is I t I^t It为同一人不同姿势,可通过视频不同帧获取。
    在这里插入图片描述

    图2为wFlow整体流程,包括以下三个阶段:
    有条件人体分割:生成人体layout ( M t , S t ) (M^t,S^t) (MtSt)
    像素流估计:利用预测 M t 、 S t M^t、S^t MtSt预测pixel flow F p F^p Fp
    wFlow引导衣服迁移

    stage1: 有条件人体分割

    直接使用姿态迁移进行衣服迁移,容易出现过拟合,因为训练过程使用同一人不同姿态,但在测试时为不同人体。
    因此有条件分割网络(Conditional Person Segmentation, CSN)用于预测人体分割,其既能保证目标形状,又能保留源图衣服信息,如图2a所示,
    CSN包括两个编码器,首先提取来自两个图像集合特征:
    (1)20通道的人体分割 S s S^s Ss及人体特征 R s R^s Rs(包括3通道RGB图、1通道人体mask(由 S s S^s Ss二值化获得)、3通道densepose D s D^s Ds(SMPL映射到UV空间)、18通道人体关键点 J s J^s Js
    (2)目标图densepose D t D^t Dt及人体关键点 J t J^t Jt。使用 D t D^t Dt可用于补充学习 J t J^t Jt可能难以感知粗糙目标形状。
    将上述两者提取到特征,送入残差网络,输出目标人体mask及分割 ( M t , S t ) (M^t,S^t) (MtSt),如式1,对于 M t M^t Mt使用L1损失, S t S^t St使用交叉熵损失;
    在这里插入图片描述

    stage2: pixel flow估计

    2D pixel flow用于保留图像之间结构及纹理信息,与目标无关,这保证对任意衣服款式的泛化性;因此作者使用PFN估计pixel flow F p F^p Fp
    如图2b,其输入与CSN类似,源分支与CSN输入一致目标分支增加CSN所预测 M t M^t Mt S t S^t St
    真实场景下源图与目标图难免发生较大变形,此时仅使用PFN容易产生伪影,对此引入特征关联层提高网络泛化性
    此外,编码器与解码器同层特征进行级联,加速学习进程
    解码器输入为两个同级别编码器特征及其相关性向量;由于源图与目标图为同一人不同姿势,因此可通过自监督训练pixel flow估计,通过依据pixel flow映射到目标帧的纹理与真值纹理差异性进行监督
    该过程如式2所示, F p F^p Fp可以映射源图到目标图纹理特征;
    本文PFN与ClothFlow区别为以下三点:
    1、使用densepose D t D^t Dt作为输入;
    2、使用相关层提供明确特征匹配引导;
    3、ClothFlow利用估计的光流扭曲每个编码特征解决特征不对齐问题,而本文没有这样做,因为如果预测光流不准确将产生累计误差;

    stage3: 使用wFlow进行衣服迁移

    wFlow

    使用阶段2产生的2D pixel flow及3D SMPL vertex flow,提升模型容纳能力,使得当面对自然场景时,模型拥有更大姿态迁移潜力;具体来说:
    1、生成拟合 I s 、 I t I^s、I^t IsIt的SMPL body mesh,将其映射为二维UV空间的densepose表征 ( D s 、 D t ) (D^s、D^t) (DsDt)
    2、因为SMPL拓扑结构固定,因此可进行计算 D s D^s Ds D t D^t Dt之间二维vertex flow F v F^v Fv
    3、根据式3获取wFlow F w F^w Fw
    在这里插入图片描述
    其中 M v M^v Mv为由vertex flow F v F^v Fv导出的二进制mask;该式有两个好处:
    vertex flow可保证刚性人体部件具有正确纹理映射;
    pixel flow可保证精确非刚性衣服变形;
    4、 F w F^w Fw依据目标姿态扭曲 I s I^s Is I w s I^s_w Iws,将其与 S t S^t St、未变化的目标人体部件 P t P^t Pt结合

    GTN

    如图2c,GTN有三个UNet生成器 G B 、 G S 、 G T G^B、G^S、G^T GBGSGT
    G B G^B GB修复原图与目标图背景,输入源图及目标图背景 ( B m s , B m t ) (B^s_m,B^t_m) (BmsBmt),输出修复后的背景 ( B o s , B o t ) (B^s_o,B^t_o) (BosBot)
    G S G^S GS重构原图, B o s B^s_o Bos联合densepose masked源RGB图 I d s I^s_d Ids及源mask M s M^s Ms,通过 G S G^S GS重构 O s O^s Os,尽量与 I s I^s Is一致;
    由于 D s D^s Ds来自SMPL mesh,因此, I d s I^s_d Ids中宽松衣服的一些区域会被mask,这需要 G s G^s Gs学习补充 M s M^s Ms以外区域, G s G^s Gs生成过程如式4;
    在这里插入图片描述
    G T G^T GT生成训练过程中姿态迁移结果, B o t B^t_o Bot联合扭曲表征 ( I w s , P t , S t ) (I^s_w,P^t,S^t) (IwsPtSt),通过 G T G^T GT生成姿态迁移结果 O t O^t Ot

    损失函数

    GTN训练损失函数针对三部分进行:融合mask M f s M^s_f Mfs、重构 O s O^s Os、重构 O t O^t Ot
    使用BCE损失监督 M f s M^s_f Mfs M f t M^t_f Mft,如下式,
    在这里插入图片描述
    其中TV为正则项
    在这里插入图片描述
    对于重构 O s O^s Os和生成的 O t O^t Ot,使用L1及感知损失;
    对抗损失进一步缩小生成图与真值差异;
    GTN损失总结如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在线循环优化

    在这里插入图片描述
    当衣服图像分辨率不高或前背景模糊时,将充满挑战,对此作者引入在线循环优化,如图3所示,通过k次(20)Cycle Block实现,
    第一次,首先通过GTN完成 I s I^s Is I q I^q Iq迁移,生成重构结果 O ^ s \hat O^s O^s及试衣结果 O ^ q \hat O^q O^q,接着使用同样GTN将 O ^ q \hat O^q O^q迁移到 I s I^s Is,生成重构 O s O^s Os,对 O ^ s \hat O^s O^s O s O^s Os I s I^s Is之间进行L1及MSE约束;
    第二次,Is与Iq交换,其余同第一次;
    以此循环往复,从而生成拥有边缘清晰,纹理丰富高质量图像;

    实验

    数据集

    Dance50k数据集包含5W个单人跳舞序列(15s左右),其不仅可用于虚拟试衣,还可用于以人为中心的图像、视频方向;

    评估方案

    作者从两个角度进行评估:姿态迁移结果准确性及生成衣服迁移结果真实性;
    使用SSIM评估姿态迁移;使用FID、LPIPS评估衣服迁移;使用IoU评估衣服形状,仅限于宽松衣服,由于紧身衣服通过SMPL建模IoU指标较高; 除此之外还有人工评测;

    定性比较

    在这里插入图片描述

    如图4,作者在Dance5k及DeepFashion数据集,与ADGAN、DiOR、LWG进行比较;
    ADGAN不能融合背景,且不能恰当的保留衣服特性;
    DiOR在自然场景表现不佳,纹理失真;
    LWG当面对复杂姿态时,生成模糊边缘,不能建模宽松衣服;

    定量比较

    在这里插入图片描述
    如表1,SSIM用于评估结构和亮度相似性,wFlow引入pixel flow导致亮度发生轻微改变,进而SSIM在紧身衣上性能偏低;

    消融实验

    如表2为消融实验结果,
    在这里插入图片描述
    图6展示wFlow消融实验生成结果,仅使用Fp或不使用CO导致生成模糊衣服纹理,仅使用Fv不能保证衣服纹理一致性及衣服形状准确性,图6下展示随着CO(在线循环优化)进行,衣服纹理精确度越来越高;
    在这里插入图片描述

    结论

    本文提出wFlow结合2D与3D身体信息映射衣服纹理,同事引入循环优化适用于非常规衣服,取得不错效果,同时提出Dance50k数据集;

  • 相关阅读:
    Vue3 计算属性和侦听器实战(computed、watch)——简易点餐页面
    2023CRM排行:深度对比16款CRM
    ElasticSearch学习
    python使用matplotlib可视化subplots子图、subplots绘制子图并为可视化的多个子图设置共享的X轴
    研发必会-异步编程利器之CompletableFuture(含源码 中)
    最详解消息队列以及RabbbitMQ之HelloWorld
    华为机试真题 C++ 实现【IPv4地址转换成整数】
    arcgis添加天地图山东wtms服务
    设计模式之命令模式
    三十、【进阶】B树的演变过程
  • 原文地址:https://blog.csdn.net/qq_41994006/article/details/126542014