logo好方法网

一种基于样例的虚拟试衣方法


技术摘要:
本发明公开了一种基于样例的虚拟试衣方法,所述方法包括以下步骤:输入人体姿势和体型参数,生成相应的三维人体模型;根据姿势参数,调用衣服姿势模型,生成标准体型、输入姿势下的三维衣服数据;根据姿势参数,搜索若干邻近的衣服体型模型;对每个邻近的衣服体型模型  全部
背景技术:
生活中,为了挑选一件合身的衣服,顾客不仅需要亲自到服装店(或者网购到家), 还需要试穿不同尺寸的衣服以找到最适合自己的,整个过程耗时耗力。幸运的是,虚拟试衣 技术正在改变这一现状。通过虚拟试衣,顾客可以轻松快速的得到不同尺寸的衣服在自己 做不同动作时的试穿效果,大大简化了挑选衣服的过程。此外,虚拟试衣技术还广泛应用于 电子游戏、虚拟城市等领域。为此,研究者们提出了一些可以快速、真实的生成布料动画的 方法,包括物理仿真方法和数据驱动方法 物理仿真方法可以生成布料的非线性特征并获得较为真实的仿真结果。然而,当 布料的网格很稠密时,仿真将很耗时,难以生成实时的布料动画。而且,对于不同的人体模 型(不同的顾客),仿真过程需要重头开始,这又进一步增加了时间消耗,这使得物理仿真方 法难以直接应用于实时虚拟试衣。 数据驱动的方法利用预生成的布料数据合成所需的布料形状,为了达到实时性, 这些方法通常假设衣服的形变与人体姿势之间的关系是线性的和局部的,这种简化会给布 料的精确度带来一定影响。Xu等人提出了一种基于样例的实时布料合成方法(参见 WeiweiXu ,Nobuyuki  Umentani ,Qianwen  Chao ,Jie  Mao ,Xiaogang  Jin ,and  Xin  Tong .2014.Sensitivity-optimized  rigging  for  example-basedreal-time  clothing  synthesis.ACM  Trans.Graph.33,4(2014) ,107.),该方法使用基于敏感度分析的蒙皮方法 (sensitivity-optimized  rigging),可以生成较为真实的布料形态。然而该方法只能生成 不同姿势下的布料形态,无法处理不同体型的人体。 为了同时处理人体的姿势和体型变化,Peng等人提出了一个布料模型,称为DRAPE (DRessing  Any  Person),(参见Peng  Guan ,Loretta  Reiss ,David  A  Hirshberg , Alexander  Weiss ,andMichael  J  Black .2012 .DRAPE:DRessing  Any  PErson .ACM  Trans.Graph.31,4(2012) ,35–1.)。该方法将布料的形变分解成由人体姿势变化带来的和 由人体体型变化带来的,两个独立的部分。DRAPE可以为不同姿势不同体型的人体生成定制 化的衣服,并根据人体体型改变衣服的纸样。然而,DRAPE无法生成同一件衣服穿在不同姿 势不同体型的人体下的效果。 Santesteban等人提出了一个衣服形变的学习模型(Igor  Santesteban,Miguel  A  Otaduy ,and  Dan  Casas .2019.Learning-Based  Animation  of  Clothing  for  Virtual  Try-On.arXiv  preprintarXiv:1903.07190(2019) .)。该方法将姿势和体型变化带来的纠 正量添加到模板衣服上,然后使用蒙皮函数对模板衣服进行变形,获得最终的结果。纠正量 和人体姿势、体型的函数关系使用神经网络学习得到。该方法可以高效的预测同一件衣服 在不同姿势不同体型的人体下的试穿效果,然而,该方法的训练数据生成以及训练十分耗 时。 4 CN 111598656 A 说 明 书 2/9 页 在未来的虚拟服装商店将有成千上万套服装模型,顾客输入自己的三维人体模 型、选择一套服装,系统将即时输出人体做不同姿势时的试穿效果。因此,提出一种可以线 下快速实现,线上高效运行的布料合成算法,是虚拟试衣领域的重要且具有很大价值的问 题。
技术实现要素:
为了解决如何快速生成不同体型不同姿势人体服装动画的问题,本发明提供了一 种基于样例的虚拟试衣方法,对于给定的各种种类的服装模型,该方法能够较快的生成样 例数据,并实时生成不同体型不同姿势人体服装动画。 为了解决上述技术问题,本发明提供如下技术方案: 一种基于样例的虚拟试衣方法,所述方法包括以下步骤: (1)输入人体姿势和体型参数,生成相应的三维人体模型; (2)根据人体姿势参数,调用衣服姿势模型,生成标准体型、输入姿势下的三维衣 服数据; (3)根据人体体型参数,搜索若干邻近的衣服体型模型; (4)对步骤(3)得到的每个衣服体型模型,根据人体体型参数生成相应的三维衣服 数据,并使用线性混合蒙皮(Linear  Blend  Skinning)让衣服朝输入姿势进行变形; (5)利用步骤(2)和(4)得到的数据,合成输入人体姿势和体型参数下的三维衣服 数据; (6)解决步骤(5)所得三维衣服数据和人体内数据的贯穿问题。 其中,步骤(1)中使用SMPL模型来生成不同姿势不同体型的人体(参见Matthew  Loper ,NaureenMahmood ,Javier  Romero ,Gerard  Pons-Moll ,and  Michael  J  Black .2015 .SMPL:A  skinned  multi-person  linearmodel .ACM  Trans .Graph .)34 ,6 (2015) ,248.),姿势参数是关节的欧拉角,体型参数是12维的数据。 步骤(2)所述的衣服姿势模型是指可以根据输入的人体姿势参数,生成该姿势下 三维衣服数据的模型,例如SOR(参见WeiweiXu ,Nobuyuki  Umentani ,Qianwen  Chao ,Jie  Mao,Xiaogang  Jin,and  Xin  Tong.2014.Sensitivity-optimized  rigging  for  example- basedreal-time  clothing  synthesis.ACM  Trans.Graph.33,4(2014) ,107.)。标准体型是 指衣服姿势模型所使用的人体体型,衣服姿势模型只处理不同的人体姿势,人体体型保持 不变。 步骤(3)所述的衣服体型模型是指可以根据输入的人体体型参数,生成该体型下 三维衣服数据的模型,此时,人体的姿势保持不变。 具体构建过程如下: (3-1)使用SMPL人体生成模型,在某一姿势下,生成若干个不同体型的人体,并分 别在这些人体上仿真衣服; (3-2)将第k个人体的衣服坐标数据转化成列向量,记为 则所有衣服的坐标数 据记为一个矩阵 (3-3)对矩阵S做PCA分析,则 可以用公式(1)近似: 5 CN 111598656 A 说 明 书 3/9 页 其中u是衣服坐标的均值,U是前若干个主成分,用于表示衣服的体型形变空间, 是衣服的体型参数; (3-4)经过上述操作,每一件衣服 都对应一个衣服的体型参数 和一个人体体 型参数βk,使用正则项系数为0.2的L2范数最小二乘法学习一个从β到φ的线性映射: 其中 是衣服的体型参数, 是人体体型参数, 是对 的每一项做平方处理,T 是矩阵的转置,W是需要求解的矩阵。 由此,给定人体体型参数,可通过公式(2)求得衣服的体型参数,再由公式(1)算得 最终的衣服坐标数据,此即衣服的体型模型。 为了生成多个衣服体型模型,需要对人体的姿势进行采样,并在每个姿势下构建 一个衣服体型模型。首先从已有的姿势库中选取足够数量的姿势,例如CMU  motion  capture  library(参见CMU.2003.CMU  graphics  lab  motion  capture  database.http:// mocap.cs.cmu.edu.(2003) .)。然后,使用带权重的K-means对姿势进行聚类,每个关节的权 重用其敏感度(sensitivity)来度量,即, 其中,sL表示第L个关节的敏感度,Y表示衣服数据,m是关节的自由度; 其中 表示在标准姿势(身体直立,双脚自然张开,双臂平举)下,第k个人体体 型的第m个关节自由度发生微小扰动时,给衣服顶点y带来的坐标变化;共有Nk个不同的体 型的人体。 步骤(3)中,为了减少数据库中所需的衣服体型模型数目,可将衣服划分成若干区 域。首先在标准姿势下为每个衣服顶点求得距离其最近的人体顶点,则衣服到骨骼的蒙皮 权重 设为和最近人体点的蒙皮权重相同。其次,将骨骼划分成Ng=7个区域:小腿和脚(左 右)、大腿(左右)、前臂和手(左右)以及剩余的部分,由此,可分别处理每个区域的衣服。对 第s个样例的区域g,其与输入姿势、体型的距离 为各关节姿势差异的加权和: 其中wg,y,等于该顶点在该区域的骨骼 权重之和,NL是人体关节数目, 与公 式(3)相同,Θm(θ,θs)计算第m个关节角度之差。 6 CN 111598656 A 说 明 书 4/9 页 代表第m个关节对区域g的影响,每当输入新的人体体型时,都需要重新计算Qg ,m。 由此,对每个区域都可以搜索到若干相邻的衣服体型模型。 步骤(4)中,对每个衣服体型模型,生成新体型和标准体型下的衣服数据,记为f (β,θs),f(β0,θs)(视衣服数据是人体体型和姿势的函数)。然后分别对f(β,θs),f(β0,θs)做 LBS(Linear  Blending  Skinning)变形。下面以第s个样例新体型下的衣服数据f(β,θs)为 例进行说明。首先为f(β,θs)的每个顶点寻找最近的人体模型顶点,则衣服到骨骼的蒙皮权 重 设为和最近人体点的蒙皮权重相同则。然后,按照如下公式将f(β,θs)朝输入姿势θ进 行变形: 其中, 和 是骨骼b从θs到θ的相对旋转和平移, 是衣服顶点ys的蒙皮权 重。 此公式记为 标准体型下的衣服做LBS变形的过程与上述过程类 似,记为 步骤(5)的合成公式为: 其中,f(β,θ)表示输入体型β输入姿势θ下的衣服数据,即目标数据;f(β0,θ)是标 准体型β0,输入姿势θ下的衣服,即衣服姿势模型生成的数据;θs是第s个邻近的衣服体型模 型(亦称第s个样例)的姿势;f(β,θs),f(β0,θs),分别是第s个衣服体型模型预测的输入体 型、标准体型下的衣服;Ns表示邻近的衣服体型模型个数; 是对衣服从姿势θs到姿势θ 进行变形; 和 即为LBS综合体;ws是 第s个样例的权重,计算公式如下(为简单起见,省略掉表示布料顶点的下表): 其中wg是衣服顶点在区域g的权重; 其中,∈是一个很小的正数,用来防止被零除;k用来调节邻近的样例对最终结果 的影响大小。 公式(8)是对多个样例点的合成,同时可以看成对多个泰勒展开点近似结果的合 成。 此外,为了避免输入姿势的突变带来衣服数据的突变,需要给公式(5)所求的距离 添加阻尼效果: 7 CN 111598656 A 说 明 书 5/9 页 其中,η是阻尼系数, 和 分别是当前和下一时刻的距离。 步骤(5)获得的衣服数据和人体之间可能会出现贯穿现象,步骤(6)使用重投影的 方法进行解决:首先,每当改变人体体型时,每个衣服体型模型将生成新体型下的衣服,并 重新计算每个衣服顶点到其最近人体点之间的初始距离,称为初始间隙;然后,在合成阶段 (步骤5),如果某个衣服顶点到其最近的人体点之间的间隙小于初始间隙,则按如下公式对 每个样例进行处理: 其中, 是处理后的顶点坐标,y是由步骤(5)得到的衣服顶点, 是y的最近人体 点的法向,hs是当前间隙; 是第s个样例的初始间隙,∈p用来模仿布 料仿真中穿透深度间隙,一般设为5mm。最后,将所有重投影值整合成最终结果: 其中 表示衣服顶点y的最终位置,Ns是样例个数,ws是第s个样例的权重, 是经 公式(13)得到的结果。 与现有的虚拟试衣方法不同的是,本发明提供了一种基于样例的虚拟试衣方法, 并具有以下技术效果: (1)本发明提供的虚拟试衣方法将衣服的形变视为人体姿势和体型的函数,并将 其分解成由姿势带来的变化和由体型带来的变化,两个独立的部分,大大减少了所需的样 例个数。同时,本发明可以高效的合成不同姿势不同体型下的衣服数据,并保持了服装的原 始大小,具有潜在的实际价值。 (2)本发明提供的衣服体型模型,可以高效、精确的预测不同体型下的衣服数据, 适用于实时虚拟试衣等应用。 (3)本发明提供的姿势聚类方法使用关节对衣服的敏感度作为权重,可以求得对 特定衣服最具代表性的姿势,适用于实时虚拟试衣等应用。 附图说明 图1为本发明提供的基于样例的虚拟试衣方法的流程图。 图2位本发明提供的基于样例的虚拟试衣方法的流程图之LBS整合过程。
分享到:
收藏