免人体解析的虚拟试穿算法
一、引言
首先测试算法来自:CVPR 2021 paper 'Parser-Free Virtual Try-on via Distilling Appearance Flows'
作者:Yuying Ge等
,论文地址。
虚拟试穿应用市场要求同步(实时性),保真,硬件要求不要太高等等。总之,物美价廉高大上(设计美,操作易,反应快,效果好,价格优,高科技光环等)。前面有朋友就嫌弃上一个算法(虚拟试穿–测试上衣代码详解,包括输入预处理中的人物解析和关键点等)的输入预处理太复杂,希望指定模特和服装就可以看到试穿效果。今天这个算法就基本满足了这个要求,操作易。不过大家应该都知道一句话,“人前显贵,幕后受罪”,或者励志点,“台上一分钟,台下十年功”。免层层预处理的方式约两种,将预处理封装在模型前头,这样做实时性可能受损;第二就是训练的时候有多个中间环节,将可能情况训练到模型当中。如果把设计训练过程比如幕后,训练后的模型应用属于台上得话。免人体解析的虚拟试穿算法就属于“台上一分钟,台下十年功”的范。因为,训练过程设计非常全面,也是相当复杂。所以,应用模型就非常简单。
二、新虚拟试穿算法测试
1.测试效果
采用try-on的测试集和,随机对应数据做测试,得到的效果展示如下:
免解析虚拟试衣算法测试
2. 模型
-
模型调用
# 初始化 warp_model = AFWM(opt, 3) gen_model = ResUnetGenerator(7, 4, 5, ngf=64, norm_layer=nn.BatchNorm2d) # 加载训练参数 load_checkpoint(warp_model, opt.warp_checkpoint) load_checkpoint(gen_model, opt.gen_checkpoint) # 应用测试 # 模型输入:real_image模特,clothes衣服 flow_out = warp_model(real_image.cuda(), clothes.cuda()) warped_cloth, last_flow, = flow_out warped_edge = F.grid_sample(edge.cuda(), last_flow.permute(0, 2, 3, 1), mode='bilinear', padding_mode='zeros') gen_inputs = torch.cat([real_image.cuda(), warped_cloth, warped_edge], 1) gen_outputs = gen_model(gen_inputs) # torch.Size([1, 4, 256, 192]) # 结果处理 p_rendered, m_composite = torch.split(gen_outputs, [3, 1], 1) # 切成两块 p_rendered = torch.tanh(p_rendered) # 呈现[1, 3, 256, 192] m_composite = torch.sigmoid(m_composite) # 合成的,[1, 1, 256, 192] m_composite = m_composite * warped_edge # [1, 1, 256, 192],[1, 1, 256, 192] 轮廓卷曲 # 虚拟试穿结果 p_tryon = warped_cloth * m_composite + p_rendered * (1 - m_composite) # 最后穿上的模样
-
测试流程
1)按照代码注释,测试流程:
2)训练设计流程那是相当复杂,而且前期训练数据里需要用到人体解析和关键点相关数据:
三、虚拟试穿算法测试分析
1.主要特点
-
算法训练的设计复杂,应用简单。
虽然设计训练模型的过程复杂,但应用方面做了很大的简化,缩短了运行时间,完成一次平均时间0.074s。
也就是说,1个人换装和2个、4个、8个同时换装的时间都很短(只要你的硬件GPU装得下)。是不是可期望的实时性效果就可以得到保证了啦。 -
算法还原人体肤色和形态效率高。
例如:测试集测试结果图的肩部(第三幅为试穿效果)显示,可以很好的还原(虚构)肢体和肤色,几乎毫无违和感。这依赖于前期的训练。
-
算法的模型参数量不大,两个模型约280M,我的GPU:GeForce RTX 2080 Ti 11G显存,测试可运行batch_size小于16。
2.还存在的不足
-
观察测试视频,会发现,算法在测试集上表现不好。不排除是训练的模型不稳定原因。
作者展示的结果秒杀战场,无论是带解析的算法,还是不带解析的算法。
但测试数据集上的测试结果经常出现漏洞的情况:
这个给人的感觉是将衣服脱了,在蒙上去,所以容易缺边少角,顾不全。 -
还发现同try-on相比,或者原图相比,算法没有学到模特服装的纹理特征,或者特征过少,而显得扁平化。扭曲和纹理变化没有学到。
3.总结
免解析算法使虚拟试穿的输入简化,应用效率提高,还原肢体结构和肤色有重要意义。改进算法的劣势还需从训练入手,和优化模型开始。
测试代码:https://gitee.com/rpr/pf-afn_test.git
测试数据:测试用数据集可以参考前面try-on with parsing的blog,文章一开始就介绍了资源.
测试用模型文件:下载
四、 参考文献
分享学习,共同进步。感谢本算法作者们。
If the code is helpful to your work, please cite:
@article{ge2021parser,
title={Parser-Free Virtual Try-on via Distilling Appearance Flows},
author={Ge, Yuying and Song, Yibing and Zhang, Ruimao and Ge, Chongjian and Liu, Wei and Luo, Ping},
journal={arXiv preprint arXiv:2103.04559},
year={2021}
}
@inproceedings{han2019clothflow,
title={Clothflow: A flow-based model for clothed person generation},
author={Han, Xintong and Hu, Xiaojun and Huang, Weilin and Scott, Matthew R},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
pages={10471--10480},
year={2019}
}
今天的文章虚拟试穿app_trace back分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/67552.html