前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习虚拟试衣的挑战和机遇

深度学习虚拟试衣的挑战和机遇

作者头像
McGL
发布2021-01-12 14:48:27
2.5K0
发布2021-01-12 14:48:27
举报
文章被收录于专栏:PyVision

I’m back. 恢复更新啦。

由于工作重心的变化,业余时间少很多,不过以后尽量保持每周1-2篇吧。

好处是这样文章会比以前日更含金量更高。

怎样,这个理由是不是好有说服力?觉得没有说服力的话请点赞,赞多的话我下次再想一个更清新脱俗的偷懒借口……

不要以为找个好借口很容易。就像线上选衣服,衣服那么多,效果还要靠脑补,要挑到满意的可难了。

如果能够真人虚拟试穿,那就直观多了,这正是正文要介绍的模型实验。


另外2020年美股盈利超预期。

虽然玩美股5年每年盈利都超过主动管理型 ETF 中位数,但2020年个人花在投资调研的时间精力比往年更少,这样比中位数多好多倍的超越显然也不是突然得到什么秘笈打通任督二脉功力大涨,主要是运气好市场刚好 match 我擅长的风格和领域,俗称一不小心撞到风口上。

本来想给大家送书显得更有文化,眼都挑花了,所以俗一点算了,发21个6.66元红包吧。点击下面的小程序就可以抽奖,明天1月8号22点开奖,中奖的可以直接转入微信钱包。

希望2021年你们每个人都有好运和快乐相伴。

以下为正文:

深度学习虚拟试衣的挑战和机遇

为了让试衣更轻松,能不能引入 AR 和 AI 技术实现在线虚拟试衣呢?

MobiDev 公司工程师 Maksym Tatariants 分享了将 2D 服装迁移到人身上的研究实验,详细介绍了正在开发的深度学习算法和体系结构以及目前的研究成果。

将 2D 服装迁移到人的图像的探索

在开发虚拟试衣间应用程序时,我们进行了一系列虚拟试衣的实验,发现在人身上正确渲染 3D 服装模型仍然是一大挑战。为了获得令人满意的 AR 体验,深度学习模型不仅要检测出与人体关节相对应的基本关键点集。它还应该识别 3D 上身体的实际形状,以便衣服可以贴合身体。

这种模型类型,举个例子,我们可以看看 Facebook research 的 DensePose (图1)。但是这种方法不够准确,对于移动设备来说速度慢,而且很耗资源。

图1: 使用 DensePose 进行身体网格检测。

因此,需要寻找更简单的虚拟试衣技术。

一种流行的做法是,不去贴合 3D 衣服,而是使用 2D 衣服和 2D 人体轮廓。这正是 Zeekit 公司在做的,它提供了几种衣服类型(裙子、裤子、衬衫等),用户可以把它们应用到他们上传的个人照片上。

图2:2D 服装试穿,Zeekit

由于 Zeekit 公司使用的衣服迁移技术并没有公开,只提到了包含深度学习模型,让我们参考一下这方面的科学文章。在查看了最近的一些论文后,发现解决这个问题的主要方法是使用生成对抗性网络(GANs),并结合姿态估计和人类解析模型。最后两个模型的使用有助于识别图像中与特定身体部位对应的区域,并确定身体部位的姿态。生成模型的使用有助于生成一个迁移衣服的扭曲(warped)图像,并将其应用到人的图像上,以最大限度的减少产生的 artifact 数量。

选定的模型及研究计划

在本研究中,我们选取了论文《Towards Photo-Realistic Virtual Try-On by Adaptively Generating↔Preserving Image Content》中描述的 ACGPN 模型。为了解释 ACGPN 是如何工作的,让我们看一下它的结构。

图3: ACGPN 模型的结构(来源: Yang 等人,2020)。

该模型包括三个主要模块: 语义生成、衣服扭曲和内容融合。

语义生成模块输入为目标服装及其掩码的图像、关于人的姿势的数据、包含所有身体部位(手特别重要)的分割图以及识别的衣服。

语义生成模块中的第一个生成模型(G1)修改了人的分割图,以便它清楚地识别出人身上应该覆盖目标衣服的区域。接收到这些信息后,第二个生成模型(G2)将服装掩码扭曲,以匹配它应该占据的区域。

然后将扭曲的衣服掩码传递给衣服扭曲模块,在这里空间变换网络(STN)根据掩码对衣服图像进行扭曲。最后,将已经扭曲的衣服图像、语义生成模块的修改后的分割图和人物图像输入第三生成模块(G3)生成最终结果。

为了测试所选模型的性能,我们按难度递增的顺序进行了以下步骤:

  1. 在原始数据和我们的预处理模型上复现作者的研究成果(简单)
  2. 应用自定义服装到默认的人的图像(中等难度)
  3. 应用默认服装到自定义的人的图像(困难)
  4. 应用自定义的服装到自定义的人的图像(非常困难)

在原始数据和我们的预处理模型上复现作者的研究成果(简单)

原论文的作者没有提到他们用来创建人体分割标签和检测人体关键点的模型。因此,我们只好自己选择模型,并保证 ACGPN 模型输出的质量和论文中报告的类似。

关键点检测器我们选了 OpenPose 模型,因为它提供了合适的关键点顺序(COCO 关键点数据集),并且被用于其他与衣服虚拟试穿相关的研究中。

图4: 使用 OpenPose 检测 COCO 关键点的例子。

我们选择了论文《Self Correction for Human Parsing》中提出的 SCHP 模型进行人体部位分割。该模型利用了通用的人体解析结构 CE2P,并对损失函数进行了一些修改。

SCHP 分割模型使用经过训练的主干(编码器)从输入图像中提取特征。然后利用恢复的特征对边缘分支中的人进行轮廓预测,对解析分支中的人进行分割。这两个分支的输出与编码器中的特征图一起作为融合分支的输入,以提高分割图的质量。

图5: SCHP 模型的结构(基于 CE2P)

SCHP 模型中的另一个新元素是自校正特性,用于迭代地改进模型对噪声 ground truth 标签的预测。这些标签通常用于人体解析任务,因为分割标签很难人工标注。在这个过程中,首先模型在不准确的人工标注上训练,然后用训练过的模型获得的伪 ground truth 掩码来训练新模型。

这个过程重复了几次,直到模型和伪 ground truth 掩码达到更好的准确性。对于人体解析任务,我们使用了在 Look Into Person (LIP)数据集上训练的模型,因为它最适合此任务。

图6: 使用 SCHP 模型进行人体解析的示例(人-左,分割-右)。

最后,当关键点和人体解析模型准备好后,我们使用和论文作者同样的数据训练的 ACGPN 模型得到输出。在下面的图片中,你可以看到我们从 VITON 数据集获得的结果。

语义生成模块对原始分割进行修改,使其适配新的服装类型。例如,原始图像上的套衫是长袖的,而目标衣服(T恤)是短袖的。因此,应该修改分割掩码,以便更好地显示手臂。然后,内容融合模块使用这种转换后的分割来绘制修改后的身体部分(例如,绘制露出的手臂) ,这是系统要完成的最具挑战性的任务之一(图7)。

图7: ACGPN 模型的输入和输出。

在下面的图像(图8)中,你可以看到使用 ACGPN 模型成功和不成功更换衣服的结果。我们遇到的最常见的问题是修复很差(B1) ,新的衣服与身体部分重叠(B2) 和边缘缺陷(B3)。

图8: 成功(A1-A3)及失败(B1-B3)衣服替换。红色的方框标出了 Artefact

应用自定义服装到默认的人的图像

在这个实验中,我们选择了几件衣服(图9) ,并将它们应用到来自 VITON 数据集的人物图像中。请注意,有些图片并不是真正的衣服照片,而是 3D 渲染或 2D 绘图。

图9: 用于虚拟试穿的服装图像(A - 衣服图,B,C - 3D 渲染,D - 2D 绘图)。

再看看更换衣服的结果(图10) ,我们可以看到它们大致可以分为三组。

图10: 使用自定义服装替换的示例(行 A - 成功,几乎没有 artifact,行 B - 中等数量 artifact,行 C - 非常多 artifact)。

A 行的图像没有缺陷,看起来最自然。这可以归因于照片中的人们有着相似的直立、面对镜头的姿势。正如论文的作者所解释的,这样的姿势使模型更容易定义新的服装应该如何被扭曲和应用到人的图像。

B 行中的图像姿态更有挑战性,模型很难处理。人的躯干略微弯曲,手臂部分遮挡了应该穿着衣服的身体部位。如图8所示,躯干弯曲导致边缘缺陷。不过比较难的长袖衣服(图9 C)的处理是正确的。因为袖子要经过复杂的变形,才能与人的手臂保持适当的对齐。如果手臂弯曲或他们的剪影遮住了原图像的衣服会变得非常复杂。

C 行中的图像展示了模型几乎完全失败的例子。这在预期中,因为输入图像中的人有一个很大幅度的躯干扭曲和手臂弯曲,近一半的胃和胸部区域是遮挡的。

应用默认服装到自定义的人的图像

让我们看一下模型应用在自然环境中的人的无约束图像的实验。用于模型训练的 VITON 数据集的光照条件非常固定,并且没有多少摄像头角度和姿势的变化。

当使用真实的图像来测试模型时,我们意识到训练数据和无约束数据之间的差异显著降低了模型输出的质量。你可以在图11中看到这个问题的例子。

图11: 更换服装——背景与训练数据不同的影响。A 行 - 原始背景,B 行 - 背景替换为类似于 VITON 数据集的背景。

我们发现有的人的图像有类似训练数据集的姿势和相机角度,可以看到处理后有相当多的 artifact (行 A)。然而,在去除不常见的背景纹理并填充与训练数据集相同的背景颜色之后,得到的输出质量有了改善(尽管仍然存在一些 artifact)。

当使用更多的图像测试模型时,我们发现模型对与训练分布相似的图像表现不错,而在输入差异足够大的情况下完全失败。你可以在图12看到更多应用该模型的成功案例和典型问题。

图12: 无约束环境图像的服装替换输出(行 A - 很少 artifact,行 B - 中等 artifact,行 C - 很多 artifact)。

A 行的图像显示的主要问题是边缘缺陷。

B 行中的图像显示了更多掩码错误的关键问题。例如,在不应出现的地方布料模糊、洞和皮肤/衣服补丁。

C 行中的图像显示了严重的修复错误,如绘制不良的手臂和身体的未遮挡部分的掩码错误。

应用自定义的服装到自定义的人的图像

在这里,我们测试了模型在处理自定义服装和自定义人物照片方面的表现,并再次将结果分为三组。

图13: 无约束环境和自定义服装图像的服装替换。

A 行的图像展示了我们可以从模型中得到的最佳结果。结合自定义服装和自定义人的图像被证明是很难处理的,中等程度的 artifact 已经很难得。

B 行中的图像显示的结果,artifact 多了很多。

C 行的图像由于转换错误而出现非常严重的失真结果。

未来计划

ACGPN 模型有其局限性,例如训练数据必须包含目标服装和穿着这个特定服装的人的一对图像。

考虑到上面描述的所有内容,可能会给人这样一种印象: 虚拟试穿衣服是不可实现的,但事实并非如此。作为一个具有挑战性的任务,它为未来基于 AI 的创新提供了一个机会之窗。现在已经有新的方法来解决这些问题。另一个重要的事情是在选择正确的应用场景时需要考虑技术能力。

「参考:」

  • https://www.kdnuggets.com/2018/03/data-science-fashion.html
  • https://www.kdnuggets.com/2019/04/graduating-gans-understanding-generative-adversarial-networks.html
  • https://www.kdnuggets.com/2020/08/3d-human-pose-estimation-experiments-analysis.html

原文: https://www.kdnuggets.com/2020/10/deep-learning-virtual-try-clothes.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PyVision 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 深度学习虚拟试衣的挑战和机遇
  • 将 2D 服装迁移到人的图像的探索
  • 选定的模型及研究计划
  • 在原始数据和我们的预处理模型上复现作者的研究成果(简单)
  • 应用自定义服装到默认的人的图像
  • 应用默认服装到自定义的人的图像
  • 应用自定义的服装到自定义的人的图像
  • 未来计划
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档