一种虚拟服饰穿戴方法、装置、设备和存储介质与流程

文档序号:13166064阅读:347来源:国知局
一种虚拟服饰穿戴方法、装置、设备和存储介质与流程

本申请涉及计算机领域,尤其涉及一种虚拟服饰穿戴方法、装置、设备和存储介质。



背景技术:

基于三维空间模型的虚拟服饰穿戴技术是指给虚拟对象穿上服装和/或戴上饰品,该技术目前应用非常广泛。例如,比如用户在网购过程中看中某件服饰,希望在购买之前知道其穿戴在自己身上的样子,网购平台可能就会为用户提供虚拟试穿的服务,即通过用户提供的体型信息生成对应的三维虚拟人物模型,然后将用户选择的服饰的三维模型与用户的三维虚拟人物模型进行合成,从而模拟出用户“穿戴”该服饰的效果,以帮助用户进行购买决定。再例如,在虚拟游戏中,用户可以对虚拟人物的性别、身体特征和服饰进行随意选择,根据性别和身体特征可以得到三维人物模型,选择的服饰对应有三维服饰模型。利用虚拟服饰穿戴技术对三维虚拟人物模型与三维服饰模型的合成,就可以呈现出用户希望得到的虚拟人物形象。

虚拟穿戴最重要的是保证服饰和虚拟对象之间贴合且不穿透。现有的虚拟服饰穿戴技术通常采用基于不规则物体的碰撞检测算法来实现上述目的。首先将不规则的、完整的服饰划分为若干个服饰碎片,每个服饰碎片都分别用第一长方体对象将其包围,各个服饰碎片对应的第一长方体对象大小可以相同,也可以不同。同理,也将不规则的、完整的虚拟对象划分为若干个虚拟对象碎片,每个虚拟对象碎片都分别用第二长方体对象将其包围,各个虚拟对象碎片对应的第二长方体对象大小可以相同,也可以不同。

接下来,遍历包围服饰碎片的第一长方体对象,对于遍历的每个第一长方体对象,都执行判断第一长方体对象和所有第二长方体对象是否发生重叠的步骤,如果重叠,则移动第一长方体对象,以使第一长方体对象和所有第二长方体对象都不重叠。同时,为了使服饰贴合虚拟对象,在保证第一长方体对象和第二长方体对象不重叠的基础上,还需要保证第一长方体对象与整体的虚拟对象距离不能太远,如果太远,也需要将第一长方体对象移动到靠近虚拟对象的合适位置。

由于每次移动一个第一长方体对象,都可能会影响其他第一长方体对象位置的移动,所以每当一个第一长方体对象被移动后,都需要重新遍历所有第一长方体对象,直到所有第一长方体对象和所有第二长方体对象都不重叠,并且距离合适。

由此可见,采用基于不规则的碰撞检测算法来进行虚拟服饰穿戴需要较多次的迭代,算法复杂度高,计算时间较长,效率较低。



技术实现要素:

为了解决现有技术基于不规则的碰撞检测算法来进行虚拟服饰穿戴,算法复杂度高,计算时间较长,效率较低的问题,本申请提供一种虚拟服饰穿戴方法、装置、设备和存储介质,缩短了进行虚拟服饰穿戴的计算时间,提高了计算效率,保证了虚拟服饰穿戴的视觉效果。

本申请实施例提供了一种虚拟服饰穿戴方法,所述方法包括:

获取目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,所述第一服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第一服饰时,所述第一服饰各顶点所在的位置;

根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置;

依据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,所述第一服饰的实际变化位置,所述第一服饰的实际变化位置与所述目标虚拟对象的位置匹配。

可选的,所述方法还包括:

利用所述第一服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将所述第一服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰的目标虚拟对象。

可选的,所述预设规则至少包括以下其中一种:

第一规则:

在所述第一服饰的各顶点从所述标准位置变化到所述实际变化位置,所述第一服饰大小发生变化,形状相似;

第二规则:

根据所述第一服饰各顶点的实际变化位置形成的第一服饰是平滑的。

可选的,若在所述第一服饰之外还存在有第二服饰,则所述根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置包括:

根据所述第一服饰各顶点的标准位置、所述变形尺度值以及第一适应参数值,得到所述第一服饰各顶点的理论变化位置,所述第一适应参数值表征所述第一服饰为适应所述第二服饰所需要调整的尺度。

可选的,所述利用所述第一服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将所述第一服饰和所述目标虚拟对象进行合成包括:

获取所述第二服饰各顶点的标准位置,所述第二服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第二服饰时,所述第二服饰各顶点所在的位置;

根据所述第二服饰各顶点的标准位置以及所述变形尺度值,得到所述第二服饰各顶点的理论变化位置;

依据所述第二服饰各顶点的理论变化位置和所述第二服饰各顶点的实际变化位置之间的差异,以及预设规则构建第二目标函数,得到所述第二目标函数满足第二预设条件时,所述第二服饰的实际变化位置,所述第二服饰的实际变化位置与穿戴了所述第一服饰的所述目标虚拟对象的位置匹配;

利用所述第一服饰各顶点的实际变化位置、所述第二服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将所述第一服饰、所述第二服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰和所述第二服饰的目标虚拟对象。

可选的,所述根据所述第二服饰各顶点的标准位置以及所述变形尺度值,得到所述第二服饰各顶点的理论变化位置包括:

根据所述第二服饰各顶点的标准位置、所述变形尺度值以及第二适应参数值,得到所述第二服饰各顶点的理论变化位置,所述第二适应参数值表征所述第二服饰为适应所述第一服饰所需要调整的尺度。

可选的,所述根据所述第一服饰各顶点的标准位置、所述变形尺度值以及第一适应参数值,得到所述第一服饰各顶点的理论变化位置包括:

根据所述第一服饰各顶点的标准位置和所述第二服饰各顶点的标准位置,确定所述第一服饰中与所述第二服饰重叠的顶点,形成第一顶点集合;

根据所述第一顶点集合中各顶点的标准位置、所述变形尺度值以及所述第一适应参数值,得到所述第一顶点集合中各顶点的理论变化位置。

可选的,所述根据所述第二服饰各顶点的标准位置、所述变形尺度值以及第二适应参数值,得到所述第二服饰各顶点的理论变化位置包括:

根据所述第一服饰各顶点的标准位置和所述第二服饰各顶点的标准位置,确定所述第二服饰中与所述第一服饰重叠的顶点,形成第二顶点集合;

根据所述第二顶点集合中各顶点的标准位置、所述变形尺度值以及所述第二适应参数值,得到所述第二顶点集合中各顶点的理论变化位置。

可选的,所述根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置包括:

获取所述标准虚拟对象各顶点的位置;

根据所述第一服饰各顶点的标准位置和所述标准虚拟对象各顶点的位置,确定所述第一服饰每个顶点分别对应的第三顶点集合,所述第三顶点集合为所述标准虚拟对象的、与所述第一服饰的该顶点的距离满足预设条件的顶点;

根据所述第三顶点集合中各顶点的位置,确定所述第一服饰该顶点对应的中心点的位置;

依据所述中心点的位置、所述第一服饰该顶点与所述中心点的距离以及所述变形尺度值,得到所述第一服饰该顶点的理论变化位置。

可选的,所述根据所述第二服饰各顶点的标准位置以及所述变形尺度值,得到所述第二服饰各顶点的理论变化位置包括:

根据所述第二服饰各顶点的标准位置和所述标准虚拟对象各顶点的位置,确定所述第二服饰每个顶点分别对应的第四顶点集合,所述第四顶点集合为所述标准虚拟对象的、与所述第二服饰的该顶点的距离满足预设条件的顶点;

根据所述第四顶点集合中各顶点的位置,确定所述第二服饰该顶点对应的中心点的位置;

依据所述中心点的位置、所述第二服饰该顶点与所述中心点的距离以及所述变形尺度值,得到所述第二服饰该顶点的理论变化位置。

可选的,所述根据所述第一服饰各顶点的标准位置、第二服饰各顶点的标准位置,确定所述第一服饰中与所述第二服饰重叠的顶点,形成第一顶点集合包括:

将第五顶点集合和第六顶点集合中的交集作为所述第七顶点集合;所述第五顶点集合为所有的第三顶点集合合并形成的集合,所述第六顶点集合为所有的第四顶点集合合并形成的集合;

将与所述第七顶点集合中各顶点对应的所述第一服饰的顶点形成的集合作为所述第一顶点集合。

可选的,所述根据所述第一服饰各顶点的标准位置、第二服饰各顶点的标准位置,确定所述第二服饰中与所述第一服饰重叠的顶点,形成第二顶点集合包括:

将与所述第七顶点集合中各顶点对应的所述第二服饰的顶点形成的集合作为所述第二顶点集合。

本申请实施例提供了一种虚拟服饰穿戴装置,所述装置包括:

获取单元,用于获取目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,所述第一服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第一服饰时,所述第一服饰各顶点所在的位置;

第一确定单元,用于根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置;

第二确定单元,用于依据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,所述第一服饰的实际变化位置,所述第一服饰的实际变化位置与所述目标虚拟对象的位置匹配。

可选的,所述装置还包括:

合成单元,用于利用所述第一服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将所述第一服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰的目标虚拟对象。

可选的,所述预设规则至少包括以下其中一种:

第一规则:

在所述第一服饰的各顶点从所述标准位置变化到所述实际变化位置,所述第一服饰大小发生变化,形状相似;

第二规则:

根据所述第一服饰各顶点的实际变化位置形成的第一服饰是平滑的。

可选的,若在所述第一服饰之外还存在有第二服饰,则所述第一确定单元包括:

第一确定子单元,用于根据所述第一服饰各顶点的标准位置、所述变形尺度值以及第一适应参数值,得到所述第一服饰各顶点的理论变化位置,所述第一适应参数值表征所述第一服饰为适应所述第二服饰所需要调整的尺度。

可选的,所述合成单元包括:

第二获取单元,用于获取所述第二服饰各顶点的标准位置,所述第二服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第二服饰时,所述第二服饰各顶点所在的位置;

第三确定单元,用于根据所述第二服饰各顶点的标准位置以及所述变形尺度值,得到所述第二服饰各顶点的理论变化位置;

第四确定单元,用于依据所述第二服饰各顶点的理论变化位置和所述第二服饰各顶点的实际变化位置之间的差异,以及预设规则构建第二目标函数,得到所述第二目标函数满足第二预设条件时,所述第二服饰的实际变化位置,所述第二服饰的实际变化位置与穿戴了所述第一服饰的所述目标虚拟对象的位置匹配;

第一合成子单元,用于利用所述第一服饰各顶点的实际变化位置、所述第二服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将所述第一服饰、所述第二服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰和所述第二服饰的目标虚拟对象。

可选的,所述第三确定单元包括:

第三确定子单元,用于根据所述第二服饰各顶点的标准位置、所述变形尺度值以及第二适应参数值,得到所述第二服饰各顶点的理论变化位置,所述第二适应参数值表征所述第二服饰为适应所述第一服饰所需要调整的尺度。

可选的,所述第一确定子单元包括:

第一形成单元,用于根据所述第一服饰各顶点的标准位置和所述第二服饰各顶点的标准位置,确定所述第一服饰中与所述第二服饰重叠的顶点,形成第一顶点集合;

第一确定模块,用于根据所述第一顶点集合中各顶点的标准位置、所述变形尺度值以及所述第一适应参数值,得到所述第一顶点集合中各顶点的理论变化位置。

可选的,所述第三确定子单元包括:

第二形成单元,用于根据所述第一服饰各顶点的标准位置和所述第二服饰各顶点的标准位置,确定所述第二服饰中与所述第一服饰重叠的顶点,形成第二顶点集合;

第二确定模块,用于根据所述第二顶点集合中各顶点的标准位置、所述变形尺度值以及所述第二适应参数值,得到所述第二顶点集合中各顶点的理论变化位置。

可选的,所述第一确定单元包括:

第三获取单元,用于获取所述标准虚拟对象各顶点的位置;

第四确定子单元,用于根据所述第一服饰各顶点的标准位置和所述标准虚拟对象各顶点的位置,确定所述第一服饰每个顶点分别对应的第三顶点集合,所述第三顶点集合为所述标准虚拟对象的、与所述第一服饰的该顶点的距离满足预设条件的顶点;

第五确定子单元,用于根据所述第三顶点集合中各顶点的位置,确定所述第一服饰该顶点对应的中心点的位置;

第六确定子单元,用于依据所述中心点的位置、所述第一服饰该顶点与所述中心点的距离以及所述变形尺度值,得到所述第一服饰该顶点的理论变化位置。

可选的,所述第三确定单元包括:

第七确定子单元,用于根据所述第二服饰各顶点的标准位置和所述标准虚拟对象各顶点的位置,确定所述第二服饰每个顶点分别对应的第四顶点集合,所述第四顶点集合为所述标准虚拟对象的、与所述第二服饰的该顶点的距离满足预设条件的顶点;

第八确定子单元,用于根据所述第四顶点集合中各顶点的位置,确定所述第二服饰该顶点对应的中心点的位置;

第九确定子单元,用于依据所述中心点的位置、所述第二服饰该顶点与所述中心点的距离以及所述变形尺度值,得到所述第二服饰该顶点的理论变化位置。

可选的,所述第一形成单元将第五顶点集合和第六顶点集合中的交集作为所述第七顶点集合;所述第五顶点集合为所有的第三顶点集合合并形成的集合,所述第六顶点集合为所有的第四顶点集合合并形成的集合;

将与所述第七顶点集合中各顶点对应的所述第一服饰的顶点形成的集合作为所述第一顶点集合。

可选的,所述第二形成单元将与所述第七顶点集合中各顶点对应的所述第二服饰的顶点形成的集合作为所述第二顶点集合。

本申请实施例提供了一种电子设备,所述电子设备包括:

处理器和存储有程序的存储器;

其中在所述处理器执行所述程序时,执行以下操作:

获取目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,所述第一服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第一服饰时,所述第一服饰各顶点所在的位置;

根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置;

依据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,所述第一服饰的实际变化位置,所述第一服饰的实际变化位置与所述目标虚拟对象的位置匹配。

本申请实施例还提供了一种存储介质,用于存储程序,所述程序在被执行时使得电子设备进行以下操作:

获取目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,所述第一服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第一服饰时,所述第一服饰各顶点所在的位置;

根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置;

依据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,所述第一服饰的实际变化位置,所述第一服饰的实际变化位置与所述目标虚拟对象的位置匹配。

本申请首先通过目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,得到第一服饰各顶点的理论变化位置;然后,依据第一服饰各顶点的理论变化位置和第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,第一服饰的实际变化位置。本申请在目标虚拟对象穿戴第一服饰时,利用求解第一目标函数计算第一服饰各顶点的实际变化位置,不需要进行多次迭代,算法简单,减少了计算时间,提高了计算效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请实施例提供的一种虚拟服饰穿戴方法的流程图;

图2为本申请实施例提供的计算所述第一服饰各顶点的理论变化位置的流程示意图;

图3为本申请实施例提供的第一服饰和目标虚拟对象进行合成的流程示意图;

图4为本申请实施例提供的计算所述第二服饰各顶点的理论变化位置的流程示意图;

图5为本申请实施例提供的一种虚拟服饰穿戴装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1,该图为本申请实施例提供的一种虚拟服饰穿戴方法的流程图。

本实施例提供的一种虚拟服饰穿戴方法包括如下步骤:

s101、获取目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,所述第一服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第一服饰时,所述第一服饰各顶点所在的位置。

所述标准虚拟对象可以是没有发生变形的虚拟对象。所述虚拟对象可以是虚拟出来的模型,例如可以是虚拟出来的人的模型,也可以是虚拟出来的动物模型。在本实施例中,可以基于三维空间坐标系构建该标准虚拟对象,该标准虚拟对象可以由若干顶点构成,每个顶点在该三维空间坐标系中可以有自己的位置。

所述目标虚拟对象可以是相对于标准虚拟对象发生变形的虚拟对象,在本实施例中,以所述目标虚拟对象是人为例,所述标准虚拟对象可以根据人的标准体型设定,而目标虚拟对象可以根据需求设定不同的体型,那么所述变形可以是目标虚拟对象的体型相对于标准虚拟对象变胖或变瘦或肩宽变宽等。所述变形可以表现为:目标虚拟对象上顶点的位置与标准虚拟对象上相对应的顶点的位置相比存在位置差异相比发生变化。所述变形程度可以用变形尺度值表示,目标虚拟对象的变形尺度值可以是一个,也可以是多个,例如不同的部位对应不同的变形尺度值。

在本实施例中,所述第一服饰也可以基于三维空间坐标系构建而成的,该第一服饰可以由若干顶点构成,每个顶点在该三维空间坐标系中可以有自己的位置。所述第一服饰可以是衣物,例如,衣服、裤子、手套、帽子、鞋子等,也可以是饰品,例如,项链、戒指、头饰等。

s102、根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置。

若所述第一服饰穿戴在所述标准虚拟对象上,所述穿戴需要使第一服饰和目标虚拟对象之间贴合且不穿透,则所述第一服饰各顶点的位置可以定义为所述第一服饰各顶点的标准位置;若所述第一服饰穿戴在所述目标虚拟对象上,为了使第一服饰和目标虚拟对象之间贴合且不穿透,第一服饰各顶点的位置相对于第一服饰各顶点的标准位置可能会发生变化,以便与目标虚拟对象上各顶点的位置相匹配。所述第一服饰各顶点的变化量可以根据所述变形尺度值来确定,进而根据所述第一服饰各顶点的标准位置以及所述变形尺度值,计算出所述第一服饰各顶点的理论变化位置。

参见图2,图2示出了计算所述第一服饰各顶点的理论变化位置的流程示意图。s102可以包括:

s201、获取所述标准虚拟对象各顶点的位置。

s202、根据所述第一服饰各顶点的标准位置和所述标准虚拟对象各顶点的位置,确定所述第一服饰每个顶点分别对应的第三顶点集合,所述第三顶点集合为所述标准虚拟对象的、与所述第一服饰的该顶点的距离满足预设条件的顶点。

作为一种示例,所述第三顶点集合可以是邻近算法,也可称为k最邻近(k-nearestneighbor,简称knn)分类算法求得的。所述knn分类可以通过测量不同特征值之间的距离进行分类。该算法即给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例(也就是上面所说的k个邻居),这k个实例的多数属于某个类,就把该输入实例分类到这个类中。所述新的输入实例可以为第一服饰上的每个顶点,所述该实例最邻近的k个实例可以是第三顶点集合。所述预设条件可以是所述标准虚拟对象上的顶点与所述第一服饰的该顶点的距离最邻近。在本实施例中,针对第一服饰上的每个顶点,都分别在所述标准虚拟对象上利用knn分类算法获得与第一服饰的该顶点最邻近的前k个(即三维空间坐标系中较邻近)顶点,形成第三顶点集合。

s203、根据所述第三顶点集合中各顶点的位置,确定所述第一服饰该顶点对应的中心点的位置。

所述第三顶点集合中顶点的个数不做限定,第三顶点集合中可以有1个顶点,也可以有多个顶点。当第三顶点集合中有1个顶点时,第一服饰该顶点对应的中心点即为该顶点;当第三顶点集合中有多个顶点时,例如4个,可以根据该4个顶点的位置,计算该4个顶点的中心点的位置。

s204、依据所述中心点的位置、所述第一服饰该顶点与所述中心点的距离以及所述变形尺度值,得到所述第一服饰该顶点的理论变化位置。

需要说明的是,在具体实现时,由于目标虚拟对象穿戴服饰的策略不同,即目标虚拟对象穿戴的服饰中可能只有第一服饰且第一服饰与目标虚拟对象贴合,也可能除了第一服饰外还有其他服饰穿在第一服饰的里层和/或外层,因此,使得依照s204计算所述第一服饰该顶点的理论变化位置的方法也会略有不同。所述目标虚拟对象穿戴服饰的策略具体可能包括以下情况:第一服饰可能是穿在最里层,且外面没有其他服饰;也可能是穿在最里层,且外面有其他服饰;还可能是穿在最外层,且里面有其他服饰;还可能是穿在最中间层,且里面有其他服饰,外面也有其他服饰。

作为一种示例,当第一服饰穿在最里层,且外面没有其他服饰时,所述第一服饰该顶点的理论变化位置的计算公式可以是:

其中,表示第一服饰各顶点的理论变化位置;vcenter表示第一服饰上的各顶点分别对应的中心点的位置;dcenter表示所述第一服饰该顶点与所述中心点的距离;scale(vhumanmodel)表示所述变形尺度值。当所述变形尺度值不大时,scale(vhumanmodel)可以取值为1.0。当所述变形尺度值较大时,根据实际的变形程度确定变形尺度值。

当所述目标虚拟对象穿戴的服饰中,除了第一服饰外还有其他服饰穿在第一服饰的里层和/或外层时,所述第一服饰该顶点的理论变化位置的计算方法将在后续进行介绍。

s103、依据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,所述第一服饰的实际变化位置,所述第一服饰的实际变化位置与所述目标虚拟对象的位置匹配。

所述第一服饰各顶点的理论变化位置是根据已知条件计算出来的目标虚拟对象穿戴第一服饰时第一服饰各顶点的变化位置,所述第一服饰各顶点的实际变化位置是本实施例最终要获取的,可以用来得到穿戴所述第一服饰的目标虚拟对象,以便保证虚拟服饰穿戴的视觉效果。计算的理论变化位置与所述实际变化位置相比会存在一定的差异,在实际应用中,可以利用所述差异构建第一目标函数,以便通过本步骤中的第一目标函数进行求解,得到所述第一服饰各顶点的实际变化位置。

作为一种示例,所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异可以用公式表示:

其中,vtarget1所述第一服饰各顶点的实际变化位置,表示所述第一服饰各顶点的理论变化位置,e3表示对所有顶点vtarget1和之差的模求和。

在本实施例中,所述预设规则可以包括以下两个规则中的至少一个:

第一预设规则:在所述第一服饰的各顶点从所述标准位置变化到所述实际变化位置,所述第一服饰大小发生变化,形状相似。

所述第一服饰可以根据目标虚拟对象的变形尺度值进行大小的变化,例如目标虚拟对象相对于标准虚拟对象身材高大,则为了使第一服饰适应地穿在目标虚拟对象身上,可以将所述第一服饰相应的变大。但是,第一服饰的变化,可以是第一服饰的变大或者缩小,即在第一服饰的形状进行缩放的方向上变化,尽量避免例如左右扭曲等类型的变形。作为一种示例,所述第一预设规则可以用公式表示为:

e1=∑||q-qe||

其中,q表示第一服饰穿在目标虚拟对象上,所述第一服饰大小发生变化,形状相似时,第一服饰的变形。v=[v2-v1,v3-v1,v4-v1],v1、v2和v3分别是第一服饰三角面顶点的标准位置坐标,所述三角面可以由三个顶点构成,这三个顶点不是任意的三个顶点,而是用于拼成第一服饰的三个顶点,即所述第一服饰的三角面用于拼成所述第一服饰。一个三角面的每条边仅分别有两个顶点。第一服饰在大小发生变化时,可以看作是各个三角面通过运动实现,所以,第一服饰大小的变形程度可以由各个三角面的运动幅度来表示。v4是第一服饰三角面的单位法向上的顶点的标准位置坐标;分别是穿戴第一服饰的目标虚拟对象的三角面顶点的实际位置坐标,是穿戴第一服饰的目标虚拟对象的三角面的单位法向上的顶点的实际位置坐标。qe表示目标虚拟对象的变形,qe的表达式可以为:

其中,scale表示目标虚拟对象的变形尺度值,scale与scale(vhumanmodel)表示相同的含义。scale可以取大于1的值,例如目标虚拟对象相对于标准虚拟对象身材高大;也可以取小于1的值,例如目标虚拟对象相对于标准虚拟对象身材瘦小;还可以取等于1的值。如果目标虚拟对象的变形是整体性的,那么在计算qe时,所有的scale都相同;如果目标虚拟对象的变形是局部性的,例如目标虚拟对象的上身相对于标准虚拟对象而言较胖,下身为标准体型,那么在计算上身的qe与计算下身的qe,scale的取值可以不同。

e1表示对所有三角面分别对应的q和qe之差的模求和。

结合上述思想,所述第一目标函数可以根据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及所述第一预设规则进行确定。

第二规则:根据所述第一服饰各顶点的实际变化位置形成的第一服饰是平滑的。

在本实施例中,第一服饰平滑的目的在于避免得到的第一服饰各个顶点的实际变化位置出现挤在一起的现象。对第一服饰进行平滑也可以采用三角面来进行,如果每对相邻三角面是平滑的,那么拼接而成的第一服饰也是平滑的。相邻三角面是指其中一条边重叠的两个三角面。

作为一种示例,可以利用所述第一服饰的第一三角面的变形程度和第二三角面的变形程度之差对第一服饰进行平滑,所述第一三角面和所述第二三角面为由各自的三个顶点构成的面,所述第一三角面和所述第二三角面用于拼成第一服饰,所述第一三角面和所述第二三角面为相邻的三角面。

对第一服饰进行平滑的表达式可以为:

其中,n=adj(m)表示第一服饰的三角面n为第一服饰的三角面m的相邻面,qm表示三角面m对应的q(上文中提到),qn表示三角面n对应的q(上文中提到),ntriangle表示第一服饰的三角面的个数。e2表示对所有三角面分别对应的qm和qn之差的模求和。

为了体现上述思想,所述目标函数可以根据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及所第二预设规则进行确定。

在本实施例中,可以采用上述两种方法,即利用所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及上述两个预设规则中的一个预设规则确定第一目标函数,进而求解出所述第一服饰的实际变化位置。还可以利用所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及同时使用两个预设规则确定第一目标函数。例如可以得到第一目标函数:

e=β1e1+β2e2+β3e3

其中,β1、β2、β3分别为目标函数e1、e2、e3的权重。对于不同的目标虚拟对象,可以对β1、β2、β3设置不同的值来使得合成后穿戴所述第一服饰的目标虚拟对象的视觉效果更好。

可以理解的是,上述两个规则以及每个规则对应的目标函数的设计并不构成对本申请的限定,本领域技术人员还可以根据具体情况自行设计规则以及规则对应的目标函数。

在本实施例中,所述第一预设条件可以是使第一目标函数达到最小,即当所述第一目标函数最小时,求解出此时的第一服饰各顶点的实际变化位置。也可以是比最小值略大一点的情况,本申请不做限定。

本申请首先通过目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,得到第一服饰各顶点的理论变化位置;然后,依据第一服饰各顶点的理论变化位置和第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,第一服饰的实际变化位置;最后,利用第一服饰各顶点的实际变化位置和目标虚拟对象各顶点的位置,将所述第一服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰的目标虚拟对象。本申请在目标虚拟对象穿戴第一服饰时,利用求解第一目标函数计算第一服饰各顶点的实际变化位置,不需要进行多次迭代,算法简单,减少了计算时间,提高了计算效率。

在本实施例中,确定出第一服饰各顶点的实际变化位置后,还可以根据第一服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置获得穿戴第一服饰的目标虚拟对象。具体地,可以利用所述第一服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将所述第一服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰的目标虚拟对象。

在本实施例中,确定了第一服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将这两部分的各顶点的位置数据进行合成,得到的就是目标虚拟对象在穿戴第一服饰的所有顶点的位置数据,因此可以得到穿戴所述第一服饰的目标虚拟对象。

上述实施例介绍了目标虚拟对象穿戴第一服饰时,得到穿戴所述第一服饰的目标虚拟对象的具体方法。除了第一服饰,目标虚拟对象还可以穿戴第二服饰,所述第二服饰可以是衣物,例如,衣服、裤子、手套、帽子、鞋子等,也可以是饰品,例如,项链、戒指、头饰等。所述第二服饰可以为一件也可以为多件。若除了所述第一服饰还存在有第二服饰,可能会使第一服饰和第二服饰存在重叠部分,进而使第一服饰发生变形。例如,第一服饰为上衣,第二服饰为裤子,可能会存在将上衣的下摆放在裤子的里层,这就会使上衣和裤子在腰部附近重叠,使衣服因为裤子的挤压而发生变形。考虑到第一服饰和第二服饰的重叠导致的第一服饰的变形,所述s102可以包括:根据所述第一服饰各顶点的标准位置、所述变形尺度值以及第一适应参数值,得到所述第一服饰各顶点的理论变化位置,所述第一适应参数值表征所述第一服饰为适应所述第二服饰所需要调整的尺度。

需要说明的是,由于第一适应参数值表示的是所述第一服饰为适应所述第二服饰所需要调整的尺度。可以理解为,第一适应参数值针对的是第一服饰和第二服饰重叠部分的顶点。因此,根据所述第一服饰各顶点的标准位置、所述变形尺度值以及第一适应参数值,得到所述第一服饰各顶点的理论变化位置。一种可能的实现方式是:首先根据所述第一服饰各顶点的标准位置、第二服饰各顶点的标准位置,确定所述第一服饰中与所述第二服饰(在标准虚拟对象上)重叠的顶点,形成第一顶点集合;然后,根据所述第一顶点集合中各顶点的标准位置、所述变形尺度值以及所述第一适应参数值,得到所述第一顶点集合中各顶点的理论变化位置。

目标虚拟对象除了穿戴第一服饰还穿戴第二服饰时,对于与第二服饰重叠的第一服饰的各个顶点,可以将上述计算第一服饰各顶点的理论变化位置的公式改变为:

其中,scale'可以作为第一适应参数值。在利用第一适应参数值确定所述第一服饰各顶点的理论变化位置时,所述第一适应参数值的选取与穿戴服饰的策略相关,即第一服饰穿戴位置。

作为一种示例,目标虚拟对象一共穿戴三层衣服,每层衣服默认间隔m,在穿戴衣服时,既要满足衣服之间有足够的间隔,以确保衣服之间不会交叉,又要在衣服受到挤压变形时,对衣服进行调整,以保证视觉效果。因此,当第一服饰穿在最里层,且外面有第二服饰时,第一服饰会受到一定的挤压,因此第一顶点集合中各顶点的理论变化位置可以通过第一适应参数值进行调整,例如第一适应参数值scale'为(1+m×n),n表示第一服饰因为受到挤压被调整的程度,n可以根据第一服饰外层第二服饰的件数进行调整,即可以随着第一服饰外层第二服饰的件数的增加而适当的减小。而对于没有与第二服饰重叠的第一服饰的其他顶点,即第一顶点集合之外的顶点,可以仍然使用计算其理论变化位置。

当第一服饰穿在最外层,且里面有第二服饰时,对于与第二服饰重叠的第一服饰的各个顶点,为了满足衣服之间的间隔m,因此可以通过第一适应参数值进行调整,例如第一适应参数值可以为(1+m×s),s为第二服饰的件数加1。由于第二服饰在里面时,被第一服饰挤压,所以对应有第二适应参数值。第一适应值还可以根据第二服饰的第二适应参数值scale”进行确定。例如若与第一服饰最近的第二服饰的第二适应参数值scale”=(1+m×n’),n’表示该第二服饰被调整的程度,则第一适应参数值可以为(1+m×s×n’)。

当第一服饰是穿在中间层,且里面和外面都存在有第二服饰时,上述计算第一服饰各顶点的理论变化位置的公式中,第一适应参数值既要考虑外层第二服饰的挤压,又需考虑里层第二服饰的层数。对于与里层重叠的部分由于交叉对视觉效果没有影响,可以按照第一服饰在最里层来选取第一适应参数值;对于没有被外层的第二服饰覆盖的部分,可以按照第一服饰在最外层来选取第一适应参数值。

当目标虚拟对象既穿戴第一服饰又穿戴第二服饰时,参见图3,该图为本申请实施例提供的第一服饰和目标虚拟对象进行合成的流程示意图。则将所述第一服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰的目标虚拟对象可以包括例如如下步骤:

s301、获取所述第二服饰各顶点的标准位置,所述第二服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第二服饰时,所述第二服饰各顶点所在的位置。

在本实施例中,所述第二服饰也可以基于三维空间坐标系构建而成的,该第二服饰可以由若干顶点构成,每个顶点在该三维空间坐标系中可以有自己的位置。

s302、根据所述第二服饰各顶点的标准位置以及所述变形尺度值,得到所述第二服饰各顶点的理论变化位置。

当计算第二服饰各顶点的理论变化位置时,可以参照计算第一服饰各顶点的理论变化位置的计算公式和计算方法,首先获得第二服饰各顶点的标准位置,然后再根据目标虚拟对象相对于标准虚拟对象的变形尺度值,对获得第二服饰各顶点的标准位置进行相应的变化,进而得到第二服饰各顶点的理论变化位置。

参见图4,图4示出了计算所述第二服饰各顶点的理论变化位置的流程示意图。s302可以包括:

s401、根据所述第二服饰各顶点的标准位置和所述标准虚拟对象各顶点的位置,确定所述第二服饰每个顶点分别对应的第四顶点集合,所述第四顶点集合为所述标准虚拟对象的、与所述第二服饰的该顶点的距离满足预设条件的顶点。

作为一种示例,所述第四顶点集合可以是根据knn分类算法求得的,所述预设条件可以是所述标准虚拟对象上的顶点与所述第二服饰的该顶点的距离最邻近。在本实施例中,所述knn分类算法可以理解为,第二服饰和标准虚拟对象上都存在三维数据点集,根据第二服饰上的各个顶点,在所述标准虚拟对象上,利用knn分类算法获得与第二服饰上的每个顶点相匹配的,且与该顶点距离较邻近的第四顶点集合。

s402、根据所述第四顶点集合中各顶点的位置,确定所述第二服饰该顶点对应的中心点的位置。

所述第四顶点集合中顶点的个数不做限定,第四顶点集合中可以有1个顶点,也可以有多个顶点。当第四顶点集合中有1个顶点时,第一服饰该顶点对应的中心点即为该顶点;当第四顶点集合中有多个顶点时,例如4个,可以根据该4个顶点的位置,计算该4个顶点的中心点的位置。

s403、依据所述中心点的位置、所述第二服饰该顶点与所述中心点的距离以及所述变形尺度值,得到所述第二服饰该顶点的理论变化位置。

需要说明的是,所述第二服饰该顶点的理论变化位置的计算方法和计算公式参照上述第一服饰该顶点的理论变化位置的计算方法和计算公式。

当既存在第一服饰又存在第二服饰时,由于第一服饰和第二服饰可能存在重叠部分,不仅可能会使第一服饰发生变形,第二服饰也会发生相应的变形。因此,s302可以包括:根据所述第二服饰各顶点的标准位置、所述变形尺度值以及第二适应参数值,得到所述第二服饰各顶点的理论变化位置,所述第二适应参数值表征所述第二服饰为适应所述第一服饰所需要调整的尺度。所述第二适应参数值的选取方法参见上述第一适应参数值的选取方法。

需要说明的是,由于第二适应参数值表示的是所述第二适应参数值表征所述第二服饰为适应所述第一服饰所需要调整的尺度。可以理解为,第二适应参数值针对的是第二服饰和第一服饰(在标准虚拟对象上)重叠的顶点。因此,根据所述第二服饰各顶点的标准位置、所述变形尺度值以及第二适应参数值,得到所述第二服饰各顶点的理论变化位置,一种可能的实现方式是:首先根据所述第一服饰各顶点的标准位置、第二服饰各顶点的标准位置,确定所述第二服饰中与所述第一服饰重叠的顶点,形成第二顶点集合;然后根据所述第二顶点集合中各顶点的标准位置、所述变形尺度值以及所述第二适应参数值,得到所述第二顶点集合中各顶点的理论变化位置。

作为一种示例,前面已经介绍了第一服饰每个顶点分别对应的标准虚拟对象上的第三顶点集合,以及第二服饰每个顶点分别对应的标准虚拟对象上第四顶点集合,所述根据所述第一服饰各顶点的标准位置、第二服饰各顶点的标准位置,确定所述第一服饰中与所述第二服饰重叠的顶点,形成第一顶点集合包括:将第五顶点集合和第六顶点集合中的交集作为所述第七顶点集合;所述第五顶点集合为所有的第三顶点集合合并形成的集合,所述第六顶点集合为所有的第四顶点集合合并形成的集合;将与所述第七顶点集合中各顶点对应的所述第一服饰的顶点形成的集合作为所述第一顶点集合。所述根据所述第一服饰各顶点的标准位置、第二服饰各顶点的标准位置,确定所述第二服饰中与所述第一服饰重叠的顶点,形成第二顶点集合包括:将与所述第七顶点集合中各顶点对应的所述第二服饰的顶点形成的集合作为所述第二顶点集合。

例如,第一服饰是衣服,第二服饰是裤子,衣服上的顶点a’对应的标准虚拟对象上的第三顶点集合是{a,b,c,d},衣服上的顶点b’对应的标准虚拟对象上的第三顶点集合是{c,d,e,f},因为这两个第三顶点集合有重复的顶点,所以将上述两个第三顶点集合进行合并,即可得到第五顶点集合{a,b,c,d,e,f};裤子上的顶点c’对应的标准虚拟对象上的第四顶点集合是{a,b,m,n},裤子上顶点d’对应的标准虚拟对象上的第四顶点集合是{m,n,h,k},因为这两个第四顶点集合有重复的顶点,所以将上述两个第四顶点集合进行合并,即可得到第六顶点集合{a,b,m,n,h,k}。第五顶点集合和第六顶点集合交集{a,b}作为所述第七顶点集合,可以理解第七顶点集合为衣服与裤子在腰部重叠部分对应于标准虚拟对象的顶点集合,第七顶点集合中的顶点a和b对应于衣服上的顶点a’,所以第一顶点集合包括顶点a’。在得到第七顶点集合{a,b}后,第七顶点集合中的顶点a和b对应于裤子上的顶点c’,所以第二顶点集合包括顶点c’。

s303、依据所述第二服饰各顶点的理论变化位置和所述第二服饰各顶点的实际变化位置之间的差异,以及预设规则构建第二目标函数,得到所述第二目标函数满足第二预设条件时,所述第二服饰的实际变化位置,所述第二服饰的实际变化位置与穿戴了所述第一服饰的所述目标虚拟对象的位置匹配。

所述第二目标函数的构建方法参见上述第一目标函数的构建方法,将上述第一目标函数中涉及的第一服饰的理论变化位置和第一服饰的实际变化位置相应的替换成第二服饰的理论变化位置和第二服饰的实际变化位置。所述第二预设条件可以是使所述第二目标函数最小,从而得到第二服饰的实际变化位置。

s304、利用所述第一服饰各顶点的实际变化位置、所述第二服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将所述第一服饰、所述第二服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰和所述第二服饰的目标虚拟对象。

在本实施例中,确定了第一服饰各顶点的实际变化位置、第二服饰各顶点的实际变化位置和目标虚拟对象各顶点的位置,将这三部分的各顶点的位置数据进行合成,得到的就是目标虚拟对象在穿戴第一服饰和第二服饰的所有顶点的位置数据,因此可以得到穿戴所述第一服饰和所述第二服饰的目标虚拟对象。

在本实施例中,目标虚拟对象既穿戴第一服饰又穿戴第二服饰,通过计算出第一服饰各顶点的实际变化位置、第二服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,并将所述第一服饰、第二服饰和所述目标虚拟对象进行合成,即可得到穿戴所述第一服饰和第二服饰的目标虚拟对象。在多件服饰可能因为重叠而发生挤压时,本实施例可以准确地确定第一服饰各顶点的实际变化位置、第二服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,避免服饰交叉,影响视觉效果。而且,本实施例的方法利用第二目标函数计算第二服饰的实际变化位置,不需要进行多次迭代,算法简单,减少了计算时间,提高了计算效率。

基于以上实施例提供的一种虚拟服饰穿戴方法,本申请实施例还提供了一种虚拟服饰穿戴装置,下面结合附图来详细说明其工作原理。

参见图5,该图为本申请实施例提供的一种虚拟服饰穿戴装置的结构框图。

本实施例提供的一种虚拟服饰穿戴装置包括:第一获取单元501、第一确定单元502和第二确定单元503。

第一所述获取单元501,用于获取目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,所述第一服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第一服饰时,所述第一服饰各顶点所在的位置;

所述第一确定单元502,用于根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置;

所述第二确定单元503,用于依据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,所述第一服饰的实际变化位置,所述第一服饰的实际变化位置与所述目标虚拟对象的位置匹配。

在本实施例中,目标虚拟对象既穿戴第一服饰又穿戴第二服饰,通过计算出第一服饰各顶点的实际变化位置、第二服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,并将所述第一服饰、第二服饰和所述目标虚拟对象进行合成,即可得到穿戴所述第一服饰和第二服饰的目标虚拟对象。在多件服饰可能因为重叠而发生挤压时,本实施例可以准确地确定第一服饰各顶点的实际变化位置、第二服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,避免服饰交叉,影响视觉效果。而且,本实施例的方法利用第二目标函数计算第二服饰的实际变化位置,不需要进行多次迭代,算法简单,减少了计算时间,提高了计算效率。

可选的,所述装置还包括:

合成单元,用于利用所述第一服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将所述第一服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰的目标虚拟对象。

可选的,所述预设规则至少包括以下其中一种:

第一规则:

在所述第一服饰的各顶点从所述标准位置变化到所述实际变化位置,所述第一服饰仅大小发生变化,形状相似;

第二规则:

根据所述第一服饰各顶点的实际变化位置形成的第一服饰是平滑的。

可选的,若在所述第一服饰之外还存在有第二服饰,则所述第一确定单元502包括:

第一确定子单元,用于根据所述第一服饰各顶点的标准位置、所述变形尺度值以及第一适应参数值,得到所述第一服饰各顶点的理论变化位置,所述第一适应参数值表征所述第一服饰为适应所述第二服饰所需要调整的尺度。

可选的,所述合成单元504包括:

第二获取单元,用于获取所述第二服饰各顶点的标准位置,所述第二服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第二服饰时,所述第二服饰各顶点所在的位置;

第三确定单元,用于根据所述第二服饰各顶点的标准位置以及所述变形尺度值,得到所述第二服饰各顶点的理论变化位置;

第四确定单元,用于依据所述第二服饰各顶点的理论变化位置和所述第二服饰各顶点的实际变化位置之间的差异,以及预设规则构建第二目标函数,得到所述第二目标函数满足第二预设条件时,所述第二服饰的实际变化位置,所述第二服饰的实际变化位置与穿戴了所述第一服饰的所述目标虚拟对象的位置匹配;

第一合成子单元,用于利用所述第一服饰各顶点的实际变化位置、所述第二服饰各顶点的实际变化位置和所述目标虚拟对象各顶点的位置,将所述第一服饰、所述第二服饰和所述目标虚拟对象进行合成,得到穿戴所述第一服饰和所述第二服饰的目标虚拟对象。

可选的,所述第三确定单元包括:

第三确定子单元,用于根据所述第二服饰各顶点的标准位置、所述变形尺度值以及第二适应参数值,得到所述第二服饰各顶点的理论变化位置,所述第二适应参数值表征所述第二服饰为适应所述第一服饰所需要调整的尺度。

可选的,所述第一确定子单元包括:

第一形成单元,用于根据所述第一服饰各顶点的标准位置和所述第二服饰各顶点的标准位置,确定所述第一服饰中与所述第二服饰重叠的顶点,形成第一顶点集合;

第一确定模块,用于根据所述第一顶点集合中各顶点的标准位置、所述变形尺度值以及所述第一适应参数值,得到所述第一顶点集合中各顶点的理论变化位置。

可选的,所述第三确定子单元包括:

第二形成单元,用于根据所述第一服饰各顶点的标准位置和所述第二服饰各顶点的标准位置,确定所述第二服饰中与所述第一服饰重叠的顶点,形成第二顶点集合;

第二确定模块,用于根据所述第二顶点集合中各顶点的标准位置、所述变形尺度值以及所述第二适应参数值,得到所述第二顶点集合中各顶点的理论变化位置。

可选的,所述第一确定单元502包括:

第三获取单元,用于获取所述标准虚拟对象各顶点的位置;

第四确定子单元,用于根据所述第一服饰各顶点的标准位置和所述标准虚拟对象各顶点的位置,确定所述第一服饰每个顶点分别对应的第三顶点集合,所述第三顶点集合为所述标准虚拟对象的、与所述第一服饰的该顶点的距离满足预设条件的顶点;

第五确定子单元,用于根据所述第三顶点集合中各顶点的位置,确定所述第一服饰该顶点对应的中心点的位置;

第六确定子单元,用于依据所述中心点的位置、所述第一服饰该顶点与所述中心点的距离以及所述变形尺度值,得到所述第一服饰该顶点的理论变化位置。

可选的,所述第三确定单元包括:

第七确定子单元,用于根据所述第二服饰各顶点的标准位置和所述标准虚拟对象各顶点的位置,确定所述第二服饰每个顶点分别对应的第四顶点集合,所述第四顶点集合为所述标准虚拟对象的、与所述第二服饰的该顶点的距离满足预设条件的顶点;

第八确定子单元,用于根据所述第四顶点集合中各顶点的位置,确定所述第二服饰该顶点对应的中心点的位置;

第九确定子单元,用于依据所述中心点的位置、所述第二服饰该顶点与所述中心点的距离以及所述变形尺度值,得到所述第二服饰该顶点的理论变化位置。

可选的,所述第一形成单元将第五顶点集合和第六顶点集合中的交集作为所述第七顶点集合;所述第五顶点集合为所有的第三顶点集合合并形成的集合,所述第六顶点集合为所有的第四顶点集合合并形成的集合;

将与所述第七顶点集合中各顶点对应的所述第一服饰的顶点形成的集合作为所述第一顶点集合。

可选的,所述第二形成单元将与所述第七顶点集合中各顶点对应的所述第二服饰的顶点形成的集合作为所述第二顶点集合。

基于以上实施例提供的一种虚拟服饰穿戴方法、装置,本申请实施例还提供了一种电子设备,下面详细说明其工作原理。

本实施例还提供了一种电子设备,所述电子设备包括:

处理器和存储有程序的存储器。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现提高根据合成的具有目标表情的目标脸的真实性的目的。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

其中在所述处理器执行所述程序时,执行以下操作:

获取目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,所述第一服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第一服饰时,所述第一服饰各顶点所在的位置;

根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置;

依据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,所述第一服饰的实际变化位置,所述第一服饰的实际变化位置与所述目标虚拟对象的位置匹配。

基于以上实施例提供的一种虚拟服饰穿戴方法、装置及电子设备,本申请实施例还提供了一种存储介质,下面详细说明其工作原理。

本申请实施例提供了一种存储介质,用于存储程序,包括但不限于磁盘存储器、cd-rom、光学存储器等。

所述程序在被执行时使得电子设备进行以下操作:

获取目标虚拟对象相对于标准虚拟对象的变形尺度值,以及第一服饰的各顶点的标准位置,所述第一服饰各顶点的标准位置是所述标准虚拟对象穿戴所述第一服饰时,所述第一服饰各顶点所在的位置;

根据所述第一服饰各顶点的标准位置以及所述变形尺度值,得到所述第一服饰各顶点的理论变化位置;

依据所述第一服饰各顶点的理论变化位置和所述第一服饰各顶点的实际变化位置之间的差异,以及预设规则构建第一目标函数,得到所述第一目标函数满足第一预设条件时,所述第一服饰的实际变化位置,所述第一服饰的实际变化位置与所述目标虚拟对象的位置匹配。

当介绍本申请的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备以及存储介质实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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