基于实例的虚拟试衣方法与流程

文档序号:12471822阅读:890来源:国知局
基于实例的虚拟试衣方法与流程

本发明属于虚拟现实技术领域和计算机图形学领域,具体涉及一种基于实例的虚拟试衣方法。



背景技术:

随着电子商务的不断发展,网购服装也越来越受人们的青睐,但由于服装对于不同人的穿戴效果差异很大,图文信息展示的服装细节也十分有限,导致客户很难准确估计自己试穿的效果,这在影响网购服装数量的同时,也使得网购服装的退换货率居高不下。为解决这个问题,虚拟试衣相关技术应运而生,并受到越来越多的关注。目前,虚拟试衣相关技术的研究已经取得了一定成果,但是仍然存在一些问题需要进一步研究。

现有的虚拟试衣方法研究通常分为虚拟试衣镜技术和3D虚拟试衣技术。虚拟试衣镜是指,当购物者站在虚拟试衣镜前时,装置自动显示试穿新衣以后的三维图像,如德国Total Immersion公司的“Trylive”,日本Digital Fashion公司的“Active Lab”等。现存服装的虚拟试衣镜,大多仍是将具有3D效果的二维图片映射到人体前面,不能很好的模拟逼真的布料质感和褶皱,服装也不能根据人的体型进行自动调整,达不到满意的试衣效果。

3D虚拟试衣技术是真正意义上的三维试衣技术,其根据用户真实的人体体型系数构造三维人体模型,随后通过服装变形算法变形服装,从而获得逼真的人体服装姿态。3D虚拟试衣技术的关键在于服装变形算法,其研究可以分为基于物理的变形方法和基于几何的变形方法。基于物理的变形方法可以得到效果很好的服装,但速度较慢,而且对于体型差异过大的情况,还需要配合手工的拖拽,这在实际的虚拟试衣中是不可接受的。基于几何的变形方法大多根据人体的体型差异来变形服装,从而获得效果较好的合身于目标人体的服装,但这样的变形为了达到合身的要求,很难保存服装原有的款式,这是不符合实际情况的。

在服装变形中,如何在兼顾速度的效果情况下,遵从人体变形,得到合身服装,并且保留服装的款式信息,这个问题还没有得到很好的解决。



技术实现要素:

本发明致力于解决3D虚拟试衣的服装变形中存在的上述问题。通常情况下,虚拟试衣平台存储的服装模型数据和用户的人体模型数据是庞大的,很难为每个人体模型都准备好合身的所有款式的服装模型,所以当用户选择试穿一件服装模型时,需要把该服装模型变形至合身于这个用户的体型,从而把该款式的服装呈现在用户自己体型的人体模型上。为此,本发明所公开的基于实例的虚拟试衣方法包含以下步骤,

1)获取服装变形矩阵数据,从不同人体体型的服装上获取服装的变形矩阵数据;服装的变形矩阵是指把同一款服装穿到两个不同体型的人体上,由这两件服装对应的三角面上计算他们的仿射变形矩阵;

上述步骤1)是数据准备工作,具体包含以下步骤:

(1)准备人体模型库和服装模型库,并把服装都穿到人体模型上;

(2)选取一个人体模型作为标准体型,获取该体型和其他体型上的服装的变形矩阵;

(3)把人体模型和服装模型的三角面进行匹配,并把服装的三角面都分配给人体三角面;

(4)把获取的服装三角面的变形矩阵转为列向量,并按人体三角面的顺序进行排序。

2)获取服装粗变形,所述粗变形是指过滤了服装款式信息的服装变形,根据获取的服装变形矩阵,得到两个人体模型的服装粗变形;

具体包含以下步骤:

(1)把之前获取的人体模型和标准人模的多件服装的变形矩阵降维后,得到特征矩阵;

(2)把多件贴身的标准服装的变形矩阵用特征矩阵进行降维和重构,使其保留共性的人体变形,去除服装款式的变形;

(3)根据求得的服装和人体三角面的对应关系,把粗变形矩阵按照服装三角面的顺序重新排列。

3)虚拟试衣过程,所述虚拟试衣过程是应用之前求得的每个人体的每件服装的变形矩阵对服装进行变形,并处理变形后的服装,使其能更好地贴合指定人体,具体包含以下步骤:

(1)根据指定人体和选取的服装的变形矩阵变形服装;

(2)对变形后的服装作平滑和消除穿透处理;

(3)把合身的服装和指定的人体用计算机图像显示出来。

附图说明

图1为本发明训练集矩阵图。

图2为本发明测试集矩阵图。

图3为本发明虚拟试衣过程示意图。

具体实施方式

下面结合附图,对本发明进一步详细说明。

一种基于实例的虚拟试衣方法,包含以下步骤,

1)获取服装变形矩阵数据

(1)首先准备人体模型库和服装模型库,人体模型库的获取可以从网上直接下载人体模型资源,也可以从一个人体模型出发,把它变形得到多个人体。为了快速构建人体模型库,从网上下载了人体模型资源后,通过人体建模软件,把它们变形为不同体型的人模。服装模型同样也可以从网上下载资源,或者通过服装建模软件制作。最后用服装建模软件把服装穿到所有人体模型上,在这个过程中应当保证服装的三角面数量不变。

(2)选取一个体型适中的人体模型作为标准人体,分别计算其他人体的服装和这个人体对应服装的变形矩阵。其中,一个变形矩阵Q由两件服装中对应的两个三角面x(x1,x2,x3),y(y1.y2.y3)的6个顶点和它们法线上的两个点x4,y4确定。其公式如下:

Q[Δx2,Δx3,Δx4]=[Δy2,Δy3,Δy4]

其中,Δxi=Δxi-Δx1,i=2,3,Δx4=Δx2×Δx3,Δy同理。

(3)一件含T个三角面的服装有T个变形矩阵,把服装的三角面匹配到人体三角面上,就可以把不同三角面数量的服装模型的变形矩阵统一表示,即,把标准人体的k款服装的变形矩阵D1,,k排列为[D1,...Dj...,Dk],Dj=[q1,q2,...,qc]是第j件服装的变形矩阵拉直排列的列向量,q是变形矩阵拉直后的列向量。

(4)由于实际变形时,每个服装三角面都要进行变形,即,它们都要对应一个变形矩阵。当排列变形矩阵时,每个人体三角面也都要对应一个变形矩阵。所以,人体三角面和服装三角面的匹配规则如下,先从人体三角面出发找到和其质心距离最近的服装三角面作为它的对应三角面,若质心距离大于阈值则标记为未找到,对于没有对应三角面的服装三角面,则从它们出发寻找和其质心距离最近的人体三角面作为对应三角面,即,服装三角面和人体三角面是多对多的关系。

总之,当准备好两个人体模型和相应服装后,从对应的两件服装上计算变形矩阵并把它们按照人体模型三角面的序号进行排列,对于未找到对应服装三角面的人体三角面,用单位矩阵作为其变形矩阵。最后,把所有款式的服装的变形矩阵依次排列,把它们的一部分作为训练集矩阵,一部分作为测试集矩阵。

2)获取服装粗变形

(1)在得到两个人体模型的多款服装变形后,保留这些变形矩阵中共性的信息,去除其独有的信息,即关于服装款式变化的信息。

(2)对训练集矩阵进行降维,得到尽可能保留了原有信息的特征空间,这个降维过程中只保留了变形矩阵间共性的主要的变化,类似于有损压缩的过程。如果把训练集矩阵再通过这个特征空间进行降维和重构,会得到信息损失的服装变形矩阵集,但信息损失较少。所以用测试集矩阵来进行降维和重构,就可以得到信息损失较多的服装变形矩阵集。

具体实施过程如下:

设训练集有k款服装,首先计算训练集矩阵[D1,…Dj…,Dk](如图1所示)的均值:

<mrow> <mi>&Psi;</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>k</mi> </mfrac> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>k</mi> </msubsup> <msub> <mi>D</mi> <mi>i</mi> </msub> </mrow>

计算训练集矩阵与其均值的差值:

Li=Di-Ψ,i=1,2,…,k

构建协方差矩阵:

<mrow> <mi>C</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>k</mi> </mfrac> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>k</mi> </msubsup> <msub> <mi>L</mi> <mi>i</mi> </msub> <msubsup> <mi>L</mi> <mi>i</mi> <mi>T</mi> </msubsup> <mo>=</mo> <mfrac> <mn>1</mn> <mi>k</mi> </mfrac> <msup> <mi>AA</mi> <mi>T</mi> </msup> </mrow>

求得协方差矩阵C的前p个特征向量并排列,得特征空间w=(u1,u2,…,up),用测试集矩阵Γ[G1,...Gj...,Gm](如图2所示)降维得:

ΩG=wT(Γ-ΨG)

ΩG取前n列得和w即是把服装款式信息过滤后的变形矩阵集,把这些变形矩阵应用到标准服装上,从中选择效果最好的一款服装的变形矩阵作为这两个人体模型的服装粗变形矩阵Gf,变形矩阵的应用方式在下节虚拟试衣过程中叙述。

(3)根据之前计算好的人体三角面和服装三角面的对应关系,把服装粗变形矩阵中的变形矩阵按照服装三角面的序号重新排序,以方便之后的调用。某些服装三角面和人体三角面不是相互对应的,即,若服装三角面Ti对应的人体三角面Tj,其对应的服装三角面并不是Ti,则最后Ti将被应用Tj对应的服装三角面的变形矩阵,这种情况多数是由于服装褶皱上的三角面在第一次分配对应三角面时,没有被分配造成的,这其实有利于在变形矩阵中消除褶皱等服装款式信息,凸显人体体型的变化。

3)虚拟试衣过程

在之前的步骤中,准备好标准人体对应于其他人体的服装粗变形矩阵,对于任意一款标准人体的服装,只需要应用粗变形矩阵,并适当调整,就可以得到相应体型下的该款式的服装(如图3所示),具体实施过程如下:

(1)变形矩阵的应用方式。给定一款标准人体上的服装,以及标准人体对应于目标人体的变形矩阵,把这个变形矩阵应用至服装上的过程如下,由于每一个服装三角面都对应一个粗变形矩阵,则目标三角面y(y1.y2.y3),服装三角面x(x1,x2,x3)和变形矩阵Q就可以建立3个三元方程组,每个三角面单独求解会导致原本共点的服装三角面不共点,使得变形的模型很多毛刺。把所有方程组放到一起统一求解,可以解决共点问题。

(2)应用服装粗变形矩阵后,服装和人体可能还会有穿透,检查每个服装顶点,如果该顶点和距离其最近的人体顶点构成的向量与人体顶点法线的乘积为负,则可以判定发生了穿透。若服装顶点出现穿透,则按距离其最近的人体顶点的法线方向修正服装顶点位置,直到不发生穿透。

(3)把指定的人体和其合身的服装用计算机图像显示出来。

目前已有的3D引擎功能日益强大,其自带的实时全局光照和基于物理的着色方法可以帮助使用者快速创建栩栩如生的三维场景,借助3D引擎可以把人体服装模型的网格和纹理细节很好地展示出来。

实施例

1)首次使用者实施例

对于首次使用者,先计算该使用者和标准人体的服装粗变形矩阵。用户输入其人体模型,借助服装建模软件给这个人体模型穿上训练集和测试集中的服装,然后获取标准人体和用户人体的服装粗变形矩阵,得到变形矩阵集后,抽取这些变形矩阵中共性的信息,得到服装粗变形矩阵。最后把服装粗变形矩阵应用到用户指定的某款服装上。

2)非首次使用者实施例

对于非首次使用者,由于之前计算过该使用者与标准人体的服装粗变形矩阵,所以当用户选择或输入一件标准人体上的新款式的服装时,直接把服装变形矩阵应用至该服装,并做相关调整后,就可以得到和用户身材契合的新服装了。

3)群体使用者实施例

若使用者想观察大规模人群同时穿某款服装时,该款服装的展示效果,可以把之前计算好的不同体型的人体模型的服装粗变形矩阵应用到这款服装上,从而迅速得到该款服装的群体展示效果。

如上所述,对本发明进行了详细地说明,显然,只要实质上没有脱离本发明的发明点及效果、对本领域的技术人员来说是显而易见的变形,也均包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1