一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

训练试衣模型的方法、虚拟试衣方法及相关装置与流程

2022-12-20 07:18:11 来源:中国专利 TAG:


1.本技术实施例涉及图像处理技术领域,尤其涉及一种训练试衣模型的方法、虚拟试衣方法及相关装置。


背景技术:

2.随着现代科技的不断进步,网购规模不断增加,用户可以通过手机在网络购物平台上购买衣物,但是,由于用户获取的待售衣物的信息一般是二维展示图片,用户无法知道这些衣物穿戴在自己身上的效果,因而可能会导致买到不适合自己的衣物,购物体验较差。
3.随着神经网络的不断发展,在生成图像领域得到了广泛的应用。因此,研究者将神经网络应用到虚拟试衣中,提出各种试衣算法,然而现有的虚拟试衣算法,只能按衣服原有属性进行试穿,无法做到对试穿衣服进行属性编辑,例如改变尺码、长短或版型等。


技术实现要素:

4.本技术实施例主要解决的技术问题是提供一种训练试衣模型的方法、虚拟试衣方法及相关装置,该训练方法训练得到的试衣模型能够根据输入的衣服属性,对试穿衣服进行编辑,实现可编辑衣服属性的虚拟试衣效果。
5.为解决上述技术问题,第一方面,本技术实施例中提供了一种训练试衣模型的方法,试衣网络包括图像生成网络,图像生成网络包括级联的编码器、融合模块和解码器;
6.方法包括:
7.获取若干个图像组,图像组包括衣服图像和模特图像,衣服图像对应有可编辑的衣服属性文本信息,模特图像中的模特穿有衣服图像中的衣服,且衣服是按衣服属性文本信息进行编辑后的衣服;
8.对衣服属性文本信息进行特征编码,得到衣服属性向量;
9.将衣服图像中衣服按模特图像中模特的人体结构进行初步变形,得到衣服变形图像;
10.对模特图像进行人体解析,得到第一解析图,并根据第一解析图从模特图像中提取出身体躯干图;
11.将衣服变形图像、身体躯干图和衣服属性向量,输入图像生成网络,得到预测试衣图像,其中,衣服变形图像和身体躯干图输入编码器进行编码,将得到的编码结果和衣服属性向量输入融合模块进行融合,得到的融合结果输入解码器进行解码,得到预测试衣图像;
12.采用损失函数计算预测试衣图像和模特图像之间的损失,并根据若干个图像组对应的损失和,对试衣网络进行迭代训练,直至收敛,得到试衣模型。
13.在一些实施例中,试衣网络还包括衣服变形网络;
14.前述对衣服图像中衣服按模特图像中模特的人体结构进行初步变形,得到衣服变形图像,包括:
15.对模特图像进行人体关键点检测,得到关键点图像;
16.将身体躯干图、关键点图像、衣服图像和衣服属性向量,输入衣服变形网络,输出衣服变形图像。
17.在一些实施例中,前述根据第一解析图从模特图像中提取出身体躯干图,包括:
18.从第一解析图中分离出第二解析图,其中,第二解析图反映模特身体躯干的像素区域;
19.对第二解析图进行二值化处理,得到二值化图像,在二值化图像中身体躯干区域对应的像素为1,其它区域对应的像素为0;
20.将模特图像中的像素和二值化图像中的像素对应位置相乘,得到身体躯干图。
21.在一些实施例中,试衣网络还包括多层感知机模块;
22.前述对衣服属性文本信息进行特征编码,得到衣服属性向量,包括:
23.采用词袋模型对衣服属性文本信息中的各词语进行编码,得到文本编码;
24.采用多层感知机模块对文本编码进行特征提取,得到衣服属向量。
25.在一些实施例中,融合模块包括第一卷积层、第二卷积层和融合层;
26.融合模块采用以下方式对编码结果和衣服属性向进行融合处理:
27.通过第一卷积层和第二卷积层分别对编码结果进行特征提取,得到第一中间特征图和第二中间特征图;
28.通过第一卷积层和第二卷积层分别对衣服属性向量进行特征提取,得到第一属性特征图和第二属性特征图;
29.通过融合层对编码结果、第一中间特征图、第二中间特征图、第一属性特征图和第二属性特征图进行融合处理。
30.在一些实施例中,融合层采用以下公式进行融合处理:
[0031][0032]
其中,x为编码结果,μ(x)为第一中间特征图,σ(x)为第二中间特征图,y为衣服属性向量,μ(y)为第一属性特征图,σ(y)为第二属性特征图,in(x,y)为所融合结果。
[0033]
在一些实施例中,损失函数包括条件对抗损失、感知损失和衣服变形损失,其中,衣服变形损失反映预测试衣图像中衣服和模特图像中衣服之间的差异。
[0034]
为解决上述技术问题,第二方面,本技术实施例中提供了一种虚拟试衣方法,包括:
[0035]
获取试穿者图像、待试衣服图像和待试衣服属性文本信息;
[0036]
将待试衣服属性文本信息进行特征编码,得到待试衣服属性向量;
[0037]
将待试衣服图像中衣服按试穿者图像中人体结构进行初步变形,得到待试穿衣服变形图像;
[0038]
对试穿者图像进行人体解析,得到第一试穿者解析图,并根据第一试穿者解析图从试穿者图像中提取出试穿者的身体躯干图;
[0039]
将待试穿衣服变形图像、试穿者的身体躯干图和待试衣服属性向量,输入试衣模型,生成试衣图像,其中,试衣模型采用如上第一方面的方法训练得到。
[0040]
为解决上述技术问题,第三方面,本技术实施例中提供了一种电子设备,包括:
[0041]
至少一个处理器,以及
[0042]
与至少一个处理器通信连接的存储器,其中,
[0043]
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上第一方面中的方法。
[0044]
为解决上述技术问题,第四方面,本技术实施例中提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机设备执行如上第一方面的方法。
[0045]
本技术实施例的有益效果:区别于现有技术的情况,本技术实施例提供的训练试衣模型的方法,首先获取若干个图像组,每个图像组包括衣服图像和模特图像,衣服图像对应有可编辑的衣服属性文本信息,模特图像中的模特穿有衣服图像中的衣服,且该衣服是按衣服属性文本信息进行编辑后的衣服。然后,对衣服属性文本信息进行特征编码,得到衣服属性向量。对衣服图像按模特图像中模特的人体结构进行初步变形,得到衣服变形图像。对模特图像进行人体解析,基于解析结果从模特图像中提取出身体躯干图。将衣服变形图像、身体躯干图和衣服属性向量输入试衣网络中的图像生成网络,得到预测试衣图像。最后,采用损失函数计算预测试衣图像和模特图像之间的损失,在轮流处理完这若干个图像组后,基于这若干个图像组对应的损失和,对试衣网络进行迭代训练,直至收敛,收敛后的试衣网络即为试衣模型。
[0046]
在此实施例中,衣服变形图像不仅保留了衣服特征,还能初步反映衣服大致变形形状,从而,可以有效指导试衣网络在生成预测试衣图像时使得衣服与人体结合贴切、试穿效果更加逼真。身体躯干图保留了模特的躯干特征,可以指导试衣网络在生成预测试衣图像时使得躯干轮廓准确,不受模特身上原衣服的影响,有助于预测试衣图像中衣服区域能够自适应试穿衣服的风格。此外,衣服属性向量反映试穿效果中试穿衣服期望编辑修改后的属性,例如“s码、宽松、长袖”,能够有效指导试衣网络对试穿衣服的属性进行编辑修改,使得预测试衣图像中试穿衣服符合期望的衣服属性(即衣服属性向量)。基于衣服变形图像中衣服的初步变形、身体躯干图保留躯干特征以及衣服属性向量指导编辑试穿衣服的属性,使得预测试衣图像不仅试穿效果逼真,而且能够对试穿衣服的属性进行编辑修改。采用若干个图像组以上述方式对试衣网络进行训练,基于损失和的反向传播,约束各图像组对应的预测试衣图像中试穿效果不断靠近模特图像中真实穿着效果,并且,还能按衣服属性向量对试穿衣服的属性进行编辑修改,例如改变码数、长度等。从而,训练得到的试衣模型能够根据输入的衣服属性,对试穿衣服进行编辑,实现可编辑衣服属性的虚拟试衣效果。
附图说明
[0047]
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
[0048]
图1为本技术一些实施例中试衣系统的应用场景示意图;
[0049]
图2为本技术一些实施例中电子设备的结构示意图;
[0050]
图3为本技术一些实施例中训练试衣模型的方法的流程示意图;
[0051]
图4为本技术一些实施例中图像生成网络的结构示意图;
[0052]
图5为本技术一些实施例中试衣网络的结构示意图;
[0053]
图6为图3所示方法中步骤s20的一子流程示意图;
[0054]
图7为图3所示方法中步骤s30的一子流程示意图;
[0055]
图8为本技术一些实施例中关键点图像;
[0056]
图9为本技术一些实施例中第一解析图像;
[0057]
图10为图3所示方法中步骤s40的一子流程示意图;
[0058]
图11为本技术一些实施例中融合模块的结构示意图;
[0059]
图12为本技术一些实施例中虚拟试衣方法的流程示意图。
具体实施方式
[0060]
下面结合具体实施例对本技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本技术,但不以任何形式限制本技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进。这些都属于本技术的保护范围。
[0061]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0062]
需要说明的是,如果不冲突,本技术实施例中的各个特征可以相互结合,均在本技术的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。此外,本文所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
[0063]
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本说明书中在本技术的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本技术。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0064]
此外,下面所描述的本技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0065]
为便于对本技术实施例提供的方法进行理解,首先对本技术实施例中涉及的名词进行介绍:
[0066]
(1)神经网络
[0067]
神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。其中,具有很多层隐含层的神经网络则称为深度神经网络(deep neural network,dnn)。神经网络中的每一层的工作可以用数学表达式y=a(w
·
x b)来描述,从物理层面,神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中、2、3的操作由“w
·
x”完成,4的操作由“ b”完成,5的操作则由“a()”来实现,这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事
物,而是一类事物,空间是指这类事物所有个体的集合,其中,w是神经网络各层的权重矩阵,该矩阵中的每一个值表示该层的一个神经元的权重值。该矩阵w决定着上文所述的输入空间到输出空间的空间变换,即神经网络每一层的w控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
[0068]
需要注意的是,在本技术实施例中,基于机器学习任务所采用的模型,本质都是神经网络。神经网络中的常用组件有卷积层、池化层、归一化层和反向卷积层等,通过组装神经网络中的这些常用组件,设计得到模型,当确定模型参数(各层的权重矩阵)使得模型误差满足预设条件或调整模型参数的数量达到预设阈值时,模型收敛。
[0069]
其中,卷积层配置有多个卷积核、每个卷积核设置有对应的步长,以对图像进行卷积运算。卷积运算的目的是提取输入图像的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更深的卷积层能从低级特征中迭代提取更复杂的特征。
[0070]
反向卷积层用于将一个低维度的空间映射到高维度,同时保持他们之间的连接关系/模式(这里的连接关系即是指卷积时候的连接关系)。反向卷积层配置有多个卷积核、每个卷积核设置有对应的步长,以对图像进行反卷积运算。一般,用于设计神经网络的框架库(例如pytorch库)中内置有upsumple()函数,通过调用该upsumple()函数可以实现低维度到高维度的空间映射。
[0071]
池化层(pooling)是模仿人的视觉系统可以对数据进行降维或,用更高层次的特征表示图像。池化层的常见操作包括最大值池化、均值池化、随机池化、中值池化和组合池化等。通常来说,神经网络的卷积层之间都会周期性插入池化层以实现降维。
[0072]
归一化层用于对中间层的所有神经元进行归一化运算,以防止梯度爆炸和梯度消失。
[0073]
(2)损失函数
[0074]
在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重矩阵让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
[0075]
(3)人体解析
[0076]
人体解析是指将在图像中捕获的人分割成多个语义上一致的区域,例如,身体部位和衣物,或,身体部位的细分类别和衣物的细分类别等。即像素级地识别输入图像,并为图像中每个像素点标注其所属的对象类别。例如,通过神经网络将包括人体的图片中的各个要素(包括头发、脸、四肢、衣服以及背景等)进行区分。
[0077]
为介绍本技术实施例前,先对本技术发明人所知晓的虚拟试衣方法进行简单介绍,使得后续便于理解本技术实施例。
[0078]
一般,采用生成对抗网络(generative adversarial networks,gan)训练试衣模型,从而,将试衣模型置于终端中供用户使用,获取用户图像和要试穿的衣服图像后,即可生成虚拟试衣图像。然而,大部分试衣模型只能按衣服原有属性进行试穿,无法做到对试穿衣服进行属性编辑,例如改变尺码、长短或版型等。
[0079]
针对上述问题,本技术实施提供了一种训练试衣模型的方法、虚拟试衣方法及相关装置,采用若干个图像组对应的衣服变形图像、身体躯干图和衣服属性向量,对试衣网络进行训练,得到试衣模型。其中,衣服变形图像不仅保留了衣服特征,还能初步反映衣服大致变形形状,从而,可以有效指导试衣网络在生成预测试衣图像时使得衣服与人体结合贴切、试穿效果更加逼真。身体躯干图保留了模特的躯干特征,可以指导试衣网络在生成预测试衣图像时使得躯干轮廓准确,不受模特身上原衣服的影响,有助于预测试衣图像中衣服区域能够自适应试穿衣服的风格。此外,衣服属性向量反映试穿效果中试穿衣服期望编辑修改后的属性,例如“s码、宽松、长袖”,能够有效指导试衣网络对试穿衣服的属性进行编辑修改,使得预测试衣图像中试穿衣服符合期望的衣服属性(即衣服属性向量)。基于衣服变形图像中衣服的初步变形、身体躯干图保留躯干特征以及衣服属性向量指导编辑试穿衣服的属性,使得预测试衣图像不仅试穿效果逼真,而且能够对试穿衣服的属性进行编辑修改。采用若干个图像组以上述方式对试衣网络进行训练,基于损失和的反向传播,约束各图像组对应的预测试衣图像中试穿效果不断靠近模特图像中真实穿着效果,并且,还能按衣服属性向量对试穿衣服的属性进行编辑修改,例如改变码数、长度等。从而,训练得到的试衣模型能够根据输入的衣服属性,对试穿衣服进行编辑,实现可编辑衣服属性的虚拟试衣效果。
[0080]
下面说明本技术实施例提供的用于训练试衣模型或用于虚拟试衣的电子设备的示例性应用,可以理解的是,电子设备即可以训练试衣模型,也可以采用该试衣模型进行虚拟试衣,生成试衣图像。
[0081]
本技术实施例提供的电子设备可以是服务器,例如部署在云端的服务器。当服务器用于训练试衣模型时,根据其他设备或者本领域技术人员提供的训练集和试衣网络,采用该训练集对试衣网络进行迭代训练,确定最终的模型参数,从而试衣网络配置该最终的模型参数,即可得到试衣模型。当服务器用于虚拟试衣时,调用内置的试衣模型,对其他设备或者用户提供的试穿者图像、待试衣服图像和待试衣服属性文本信息进行相应的计算处理,生成能够改变待试衣服属性的试衣图像。
[0082]
本技术一些实施例提供的电子设备可以是笔记本电脑、台式计算机或移动设备等各种类型的终端。当终端用于训练试衣模型时,本领域技术人员将准备好的训练集输入终端,并在终端上设计试衣网络,终端采用该训练集对试衣网络进行迭代训练,确定最终的模型参数,从而试衣网络配置该最终的模型参数,即可得到试衣模型。当终端用于虚拟试衣时,调用内置的试衣模型,对用户输入的试穿者图像、待试衣服图像和待试衣服属性文本信息进行相应的计算处理,生成能够改变待试衣服属性的试衣图像。
[0083]
作为示例,参见图1,图1是本技术实施例提供的试衣系统的应用场景示意图,终端10通过网络连接服务器20,其中,网络可以是广域网或者局域网,又或者是二者的组合。
[0084]
终端10可以被用来获取训练集和构建试衣网络,例如,本领域技术人员在终端上下载准备好的训练集,以及,搭建试衣网络的网络结构。可以理解的是,终端10也可以被用
来获取试穿者图像、待试衣服图像和待试衣服属性文本信息,例如,用户通过输入界面输入试穿者图像、待试衣服图像和待试衣服属性文本信息,输入完成后,终端自动获取试穿者图像、待试衣服图像和待试衣服属性文本信息;例如,终端10具备摄像头,通过摄像头采集试穿者图像,终端10内存储有衣服图像库,可以从衣服图像库中选择待试穿衣服图像,然后,通过终端10的输入界面输入待试衣服属性文本信息。
[0085]
在一些实施例中,终端10本地执行本技术实施例提供的训练试衣模型的方法来完成采用训练集对设计好的试衣网络进行训练,确定最终的模型参数,从而试衣网络配置该最终的模型参数,即可得到试衣模型。在一些实施例中,终端10也可以通过网络向服务器20发送本领域技术人员在终端上存储的训练集和构建好的试衣网络,服务器20接收该训练集和试衣网络,采用训练集对设计好的试衣网络进行训练,确定最终的模型参数,然后将该最终的模型参数发送给终端10,终端10保存该最终的模型参数,使得试衣网络配置能够该最终的模型参数,即可得到试衣模型。
[0086]
在一些实施例中,终端10本地执行本技术实施例提供的虚拟试衣方法来为用户提供虚拟试衣服务,调用内置的试衣模型,对用户输入的试穿者图像、待试衣服图像和待试衣服属性文本信息进行相应的计算处理,生成能够改变待试衣服属性的试衣图像。在一些实施例中,终端10也可以通过网络向服务器20发送用户在终端上输入的试穿者图像、待试衣服图像和待试衣服属性文本信息,服务器20收到试穿者图像、待试衣服图像和待试衣服属性文本信息,调用内置的试衣模型对试穿者图像、待试衣服图像和待试衣服属性文本信息进行相应的计算处理,生成能够改变待试衣服属性的试衣图像,然后将试衣图像发送给终端10。终端10在接收到试衣图像后,将试衣图像显示在自身的显示界面上,供用户观看编辑衣服属性后的试穿效果。
[0087]
下面说明本技术实施例中电子设备的结构,图2是本技术实施例中电子设备500的结构示意图,电子设备500包括至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
[0088]
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0089]
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头,其他输入按钮和控件。
[0090]
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一
个或多个存储设备。
[0091]
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0092]
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
[0093]
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(wifi),和通用串行总线(usb,universal serial bus)等;
[0094]
显示模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
[0095]
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
[0096]
根据上文可以理解,本技术实施例提供的训练试衣模型的方法和虚拟试衣方法可以由各种类型具有计算处理能力的电子设备实施,例如智能终端和服务器等。
[0097]
下面结合本技术实施例提供的服务器的示例性应用和实施,说明本技术实施例提供的训练试衣模型的方法。参见图3,图3是本技术实施例提供的训练试衣模型的方法的流程示意图。请参阅图4,图4是试衣网络的结构示意图。如图4所示,作为试衣模型网络结构的试衣网络包括图像生成网络,图像生成网络包括级联的编码器、融合模块和解码器。这里,级联指顺次首尾相连,编码器输出的编码结果,作为融合模块的输入,融合模块输出的融合结果,作为解码器的输入。
[0098]
融合模块用于将至少两个特征数据进行融合处理,使得融合结果能够反映至少两个特征数据中的特征。在此图像生成网络中,编码结果在融合模块中与其它特征数据进行融合处理,得到的融合结果,输入解码器中进行解码。
[0099]
本领域技术人员可以理解的是,编码器包括多个下采样卷积层,在编码器中,随着下采样卷积层的递进,输出的特征图的尺寸越来越小。解码器包括多个上采样卷积层,在解码器中,随着上采样卷积层的递进,输出的特征图的尺寸越来越大。本领域技术人员可以根据实际需求配置各下采用卷积层和各上采样卷积层的卷积核大小、步长等参数。
[0100]
可以理解的是,该试衣网络可以是本领域技术人员在终端(例如电脑)上的神经网络设计平台上自行构建好的,然后,发送给服务器。
[0101]
请再次参阅图3,该方法s100具体可以包括如下步骤:
[0102]
s10:获取若干个图像组。
[0103]
对于任意一个图像组,包括衣服图像和模特图像,每一衣服图像对应有可编辑的衣服属性文本信息,也就是说,衣服图像、对应的模特图像和对应的衣服属性文本信息构成一组训练数据。其中,衣服属性文本信息是描述期望编辑修改后的衣服属性的文本,衣服属性可以包括尺码、袖长、衣长、胸围、腰围、臀围、裤长及版型等。在一些实施例中,可编辑的衣服属性文本信息包括“版型:宽松,尺码:s码,袖长:长”。
[0104]
可以理解的是,本领域技术人员可以自行设置衣服属性文本信息中衣服属性所包括的项目。在一些实施例中,可根据用户对衣服属性的修改喜好设置衣服属性文本信息中
衣服属性所包括的项目。
[0105]
模特图像中的模特穿有衣服图像中的衣服,且该衣服是按衣服属性文本信息进行编辑后的衣服。衣服图像包括想要试穿的衣服,例如衣服图像1#包括一件s码绿色短袖,衣服图像1#对应的衣服属性文本信息包括“版型:宽松,尺码:m码,袖长:长”。模特图像中模特穿有的衣服是衣服图像1#按衣服属性文本信息(“版型:宽松,尺码:m码,袖长:长”)进行编辑修改后的衣服,即一件m码宽松的绿色长袖。该m码宽松的绿色长袖与s码绿色短袖,除尺码、宽松程度和袖长不同外,其它(例如面料、花纹、款式等)都相同。
[0106]
可以理解的是,若干个图像组可由本领域技术人员事先在终端(例如电脑)上搜集得到,例如在一些服饰售卖网站上可爬取衣服图像和对应的穿有该衣服的模特图像。在准备好若干个图像组和每个衣服图像(或每个图像组)对应的衣服属性文本信息后,将这些用于训练的数据通过终端上传至服务器。
[0107]
在一些实施例中,若干个图像组的数量为万级,例如可以为20000,有利于训练得到准确的通用模型。本领域技术人员可根据实际情况确定若干个图像组的数量。
[0108]
s20:对衣服属性文本信息进行特征编码,得到衣服属性向量。
[0109]
可以理解的是,衣服属性文本信息包括尺码、袖长、衣长、胸围、腰围、臀围、裤长及版型等文本信息。衣服属性文本信息是文本格式的数据。为了能够让试衣网络学习到衣服属性文本信息所反映的属性特征,这里,对衣服属性文本信息进行编码,得到衣服属性向量。也就是说,将衣服属性文本信息数值化,转化得到的衣服属性向量是数值格式的数据。
[0110]
在一些实施例中,请参阅图5,试衣网络还包括多层感知机模块。
[0111]
在此实施例中,请参阅图6,前述步骤s20具体包括:
[0112]
s21:采用词袋模型对衣服属性文本信息中的各词语进行编码,得到文本编码。
[0113]
其中,词袋模型是选定文本数据内的词语放入词袋,统计词袋内所有词语在文本数据中出现的次数,并将其用向量的形式表示出来。在此实施例中,首先整合所有衣服属性文本信息中的词语,构建词典。可以理解的是,在一些实施例中,构建的词典可以是{’衣服版型’:{’宽松0001’,

直筒0010’,

修身0100’},“衣服码数”{

s码0011’,

m码0110’,

l码1100’,

xl码1001’},“衣服袖长{

短’0111,

中1101’,

长1110’}}。例如,对于一个宽松l码的长袖衣服,其文本编码可以是“0001 1100 1110”。
[0114]
s22:采用多层感知机模块对文本编码进行特征提取,得到衣服属向量。
[0115]
多层感知机模块包括输入层、多层隐含层和输出层,其中,输入层包括n个神经元,隐含层包括q个神经元,输出层包括k个神经元。每一层的工作可以用函数表达式来描述,可以理解的是,每层的函数表达式不同。
[0116]
可以理解的是,若输入的信息特征编码用x表示,则输入层输送给隐含层x,隐藏层的输出可以为f(w1x b1),其中,w1是权重,b1是偏量,函数f可以是常用的sigmoid函数或者tanh函数。隐藏层到输出层相当于是一个多类别的逻辑回归,即softmax回归,因此,输出层的输出为softmax(w2x1 b2),其中,x1为隐藏层输出的f(w1x b1)。
[0117]
因此,多层感知机模块可以采用如下公式表示:
[0118]
[0119]
其中,g表示softmax激活函数,h表示隐含层个数,wi和bi表示第i个隐含层的权重和偏量。x表示输入的信息特征编码。w1和b1表示输入层的权重和偏量,s表示激活函数,mlp(x)表示目标信息向量。
[0120]
在一些实施例中,k可以为1024,从而,输出层会输出一个长度为1024的一维向量,即长度为1024的目标信息向量。
[0121]
多层感知机模块的各层使用激活函数,能够给神经元引入非线性因素,使得模块可以任意逼近任何非线性函数,从而,可以利用到更多的非线性模型中。多层感知机模块对于离散信息具有良好的特征提取能力,从而,采用多层感知机模块对文本编码进行特征提取,得到的衣服属向量,能够充分反映衣服属性的特征。
[0122]
在此实施例中,采用多层感知机模块对文本编码进行提取,使得衣服属性向量更加能够充分反映衣服属性的特征,从而,试衣网络能够更好地学习到衣服属性特征,有利于模型收敛。
[0123]
s30:将衣服图像中衣服按模特图像中模特的人体结构进行初步变形,得到衣服变形图像。
[0124]
本步骤对衣服图像中的衣服按模特图像中模特人体结构进行变形,得到衣服变形图像。可以理解的是,原衣服图像中衣服呈二维平面状态,相比于原衣服图像,衣服变形图像中衣服的轮廓靠近模特人体对应躯干的轮廓。
[0125]
对于变形方法,本实施例中不作任何限制,能够对衣服图像中衣服进行变形即可。在一些实施例中,可以采用薄板样条(thin plate spline,tps)来模拟衣服的变形。在一些实施例中,可以基于衣服图像和模特图像计算出由衣服图像中衣服像素变换成模特图像中衣服像素的光流,然后,按该光流对衣服图像中衣服像素进行变形,得到衣服变形图像。
[0126]
为了使得衣服变形图像中衣服轮廓更加靠近模特人体对应躯干的轮廓,在一些实施例中,请参阅图5,该试衣网络还包括衣服变形网络。采用衣服变形网络对衣服图像中衣服进行变形。可以理解的是,随着试衣网络不断迭代训练,衣服变形网络的变形处理能力越强,得到的衣服变形图像中衣服轮廓更加靠近模特人体对应躯干的轮廓。
[0127]
在此实施例中,请参阅图7,前述步骤s30具体包括:
[0128]
s31:对模特图像进行人体关键点检测,得到关键点图像。
[0129]
采用人体关键点检测算法对模特图像进行人体关键点检测,可以定位出人体关键点信息(即人体上若干个关键点),如图8所示,关键点可以是鼻子、左右眼、左右耳、左右肩、左右肘、左右腕、左右臀、左右膝,左右脚踝处的坐标点。在一些实施例中,人体关键点检测算法可以采用openpose算法进行检测。在一些实施例中,人体关键点检测算法可以采用2d关键点检测算法,例如convolutional pose machine(cpm)或stacked hourglass network(hourglass)等。
[0130]
可以理解的是,每个关键点拥有自己的序号,每个关键点的位置用坐标表示。例如,请再次参阅图8,openpose算法原定义有18个关键点,关键点的序号代表人体关节,序号包括:0(鼻子),1(脖子),2(右肩),3(右肘),4(右手腕),5(左肩),6(左肘),7(左手腕),8(右臀),9(右膝),10(右脚踝),11(左臀),12(左膝),13(左脚踝),14(右眼),15(左眼),16(右耳),17(左耳)。对于不同的人体,openpose算法均会检测出这18个关键点,基于模特人体体型不同,每个模特的这18个关键点的坐标也不同。
[0131]
因此,对模特图像进行人体关键点检测,得到关键点图像。关键点图像包括多个关键点,这多个关键点中的每个关键点包括序号和对应的坐标,序号代表人体关节。
[0132]
s32:将身体躯干图、关键点图像、衣服图像和衣服属性向量,输入衣服变形网络,输出衣服变形图像。
[0133]
其中,身体躯干图是从模特图像中提取模特身体躯干得到的,具体提取过程可参见步骤s40中的描述,在此不再重复描述。衣服属性向量是对衣服属性文本信息进行特征编码得到的,具体编码过程可参见步骤s40中的描述,在此不再重复描述。
[0134]
在一些实施例中,衣服变形网络可以是外观流变形模块(appearence flow warping module,afwm),该外观流变形模块包括金字塔特征提取网络(pyramid feature extraction network,pfen)和一个渐进式的外观流估计网络(appearence flow estimation network,afen),其中,金字塔特征提取网络用于特征提取,外观流估计网络用于生成光流图。光流图中每个点是一个二维向量,记录了衣服变形图像中每个像素点应该从衣服图像中的对应点采样得到。由于外观流变形模块是本领域的现有技术,其具体计算光流图的过程在此不再详细介绍。
[0135]
由此,在获取到光流图后,可以根据衣服图像和光流图计算得到衣服变形图像。
[0136]
在此实施中,身体躯干图和关键点图像能够为衣服变形网络提供模特的身体轮廓和结构,指导衣服变形网络使得衣服朝向模特的身体轮廓和结构进行变形,与对应位置的身体轮廓接近。此外,衣服属性向量输入衣服变形网络,使得衣服变形网络能够考虑衣服属性向量所反映的属性变化,实现粗略的衣服属性变形。从而,衣服变形图像中衣服轮廓不仅更加靠近模特人体对应躯干的轮廓,而且衣服属性还会靠近衣服属性向量所反映的属性,实现属性的初步编辑修改,因此,该衣服变形图像有利于加快模型收敛,提高模型的试穿效果。
[0137]
s40:对模特图像进行人体解析,得到第一解析图,并根据第一解析图从模特图像中提取出身体躯干图。
[0138]
在服务器接收到若干个图像组后,对各模特图像进行人体解析,得到第一解析图,进而提取出身体躯干图。
[0139]
可以理解的是,在对模特图像中的模特进行更换衣服时,需要保留模特的身份特征等需要保留的特征。在衣服和模特进行融合前,提取模特的身份特征,即获取身体躯干图,一方面,能够避免原有旧衣服特征对融合造成干扰,另一方面,能够保留模特的身份特征,使得模特换上需要试穿的衣服后不失真。
[0140]
具体地,由前述“名词介绍(3)”可知,人体解析是将人体的各个部位分割出来,如图9所示,不同的部位,例如头发、脸、上衣、裤子、胳膊、帽子、鞋等各个部位识别分割出来,用不同的颜色表示,即得到第一解析图。
[0141]
在一些实施例中,人体解析算法可以为现有的graphonomy算法。graphomay算法会针对图像分割成20个类别,可以采用不同的颜色进行区分,将各部位进行划分。在一些实施例中,也可以采用标号0-19对前述20个类别进行划分,例如0表示背景,1表示帽子,2表示头发,3表示手套,4表示墨镜,5表示上衣,6表示连衣裙,7表示外套,8表示袜子,9表示裤子,10表示躯干皮肤,11表示围巾,12表示半裙,13表示脸,14表示左手臂,15表示右手臂,16表示左腿,17表示右腿,18表示左鞋,19表示右鞋。从解析图中,可以确定图像中各个部位所属的
类别。
[0142]
为了保证生成预测试衣图像的过程中模特身份信息不变,可以根据第一解析图从模特图像中提取出身体躯干图。
[0143]
在一些实施例中,请参阅图10,前述“根据第一解析图从模特图像中提取出身体躯干图”,具体包括:
[0144]
s41:从第一解析图中分离出第二解析图,其中,第二解析图反映模特身体躯干的像素区域。
[0145]
在此实施例中,从第一解析图中分离出第二解析图,第二解析图反映模特身体躯干的像素区域。例如,提取第一解析图中像素类别为2(头发)、10(躯干皮肤)、13(脸)、14(左手臂)、15(右手臂)、16(左腿)、17(右腿)、18(左鞋)和19(右鞋)的像素区域,作为第二解析图。
[0146]
第二解析图表征了模特身体躯干的像素区域,去除了背景等干扰区域。因此,能够根据第二解析图从模特图像中提取出身体躯干图。基于身体躯干图保留模特的身份信息,去除了背景干扰,采用身体躯干图输入试衣网络进行训练,有利于提高模型的收敛速度和准确性。
[0147]
s42:对第二解析图进行二值化处理,得到二值化图像,在二值化图像中身体躯干区域对应的像素为1,其它区域对应的像素为0。
[0148]
例如,对于第二解析图,将像素类别为2(头发)、10(躯干皮肤)、13(脸)、14(左手臂)、15(右手臂)、16(左腿)、17(右腿)、18(左鞋)和19(右鞋)等体现人体身份特征的像素区域进行类别更改,将这些像素区域的像素类别更改设置为1,其它区域的像素类别设置为0,即实现二值化处理,得到二值化图像。从而,得到仅采用0和1表征像素类别的二值化图像m。
[0149]
s43:将模特图像中的像素和二值化图像中的像素对应位置相乘,得到身体躯干图。
[0150]
二值化图像m与第一解析图和模特图像的大小相同,二值化图像m包括0和1的元素。相当于,二值化图像m中模特的身体区域对应的像素为1,其它区域对应的像素为0。从而,将模特图像f与二值化图像m对应位置相乘,即可得到身体躯干图f’=f*m。
[0151]
对应位置相乘,可以采用公式f

ij
=f
ij
×mij
解释,其中,f
ij
表示模特图像中第i行第j列的像素值,m
ij
表示二值化图像中第i行第j列的数值,f

ij
为身体躯干图中第i行第j列的像素值。
[0152]
在此实施例中,通过从第一解析图中分离出反映身份特征的第二解析图,对第二解析图进行二值化处理,将得到的二值化图像与模特图像对应位置相乘,即可得到身体躯干图,使得身体躯干图中能够准确保留模特的身份特征,去除需要被替换的原有衣服特征,使得模特换上需要试穿的衣服后不失真。
[0153]
s50:将衣服变形图像、身体躯干图和衣服属性向量,输入图像生成网络,得到预测试衣图像。
[0154]
请再次参阅图4,图像生成网络包括级联的编码器、融合模块和解码器。其中,衣服变形图像和身体躯干图输入编码器进行编码,将得到的编码结果和衣服属性向量输入融合模块进行融合,得到的融合结果输入解码器进行解码,得到预测试衣图像。
[0155]
本领域技术人员可以理解的是,编码器包括多个下采样卷积层,在编码器中,随着
下采样卷积层的递进,输出的特征图的尺寸越来越小。解码器包括多个上采样卷积层,在解码器中,随着上采样卷积层的递进,输出的特征图的尺寸越来越大。本领域技术人员可以根据实际需求配置各下采用卷积层和各上采样卷积层的卷积核大小、步长等参数。在此实施例中,不对编码器和解码器的结构进行任何限制。
[0156]
在一些实施例中,编码器的多个下采样卷积层主要配置3*3大小的卷积核,对通道拼接后的衣服变形图像和身体躯干图,进行特征提取,在特征提取的过程中,采用池化层实现降维,最终,输出的编码结果为4*4*256大小的特征图。4*4*256大小的特征图与上述衣服属性向量输入融合模块进行融合,得到的融合结果输入解码器进行解码,得到预测试衣图像。在一些实施例中,解码器采用残差结构的上采样卷积层,对融合结果进行上采样,逐渐升维,输出512*512*3大小的预测试衣图像。
[0157]
为了能够更好地将编码结果和衣服属性向量进行融合,以实现更加精细的衣服属性变形,在一些实施例中,融合模块包括第一卷积层、第二卷积层和融合层。其中,第一卷积层和第二卷积层均配置有卷积核,用于特征提取。
[0158]
该融合模块采用以下方式对编码结果和衣服属性向进行融合处理:
[0159]
通过第一卷积层和第二卷积层分别对编码结果进行特征提取,得到第一中间特征图和第二中间特征图;通过第一卷积层和第二卷积层分别对衣服属性向量进行特征提取,得到第一属性特征图和第二属性特征图;通过融合层对编码结果、第一中间特征图、第二中间特征图、第一属性特征图和第二属性特征图进行融合处理。
[0160]
请参阅图11,当编码结果输入融合模块后,第一卷积层对编码结果进行卷积处理提取特征,得到第一中间特征图μ(x),第二卷积层对编码结果进行卷积处理提取特征,得到第二中间特征图σ(x)。可以理解的是,这里,编码结果是编码器输出的特征图。当衣服属性向量输入融合模块后,第一卷积层对衣服属性向量进行卷积处理提取特征,得到第一属性特征图μ(y),第二卷积层对衣服属性向量进行卷积处理提取特征,得到第二属性特征图σ(y)。
[0161]
然后,该编码结果、第一中间特征图、第二中间特征图和第一属性特征图、第二属性特征图均输入融合层进行融合处理,
[0162]
在此实施例中,先对编码结果和衣服属性向量采用两种不同的卷积方式(第一卷积层和第二卷积层)进行特征提取,得到第一中间特征图、第二中间特征图和第一属性特征图、第二属性特征图,这些中间特征图能够从不同角度保留编码结果的特征,这些属性特征图能够从不同角度保留衣服属性的特征,从而使得基于将这些中间特征图和属性特征图进行融合处理得到的融合结果(融合特征图)能够更加全面地反映编码结果和衣服属性向量的特征,不丢失特征。
[0163]
在一些实施例中,融合层采用以下公式进行融合处理:
[0164][0165]
其中,x为编码结果,μ(x)为第一中间特征图,σ(x)为第二中间特征图,y为衣服属性向量,μ(y)为第一属性特征图,σ(y)为第二属性特征图,in(x,y)为融合结果。
[0166]
这里,先对编码结果进行归一化处理,归一化处理得到的结果中像素值数值差异
减小,归一化处理得到的结果与第一属性特征图、第二属性特征图进行融合处理,能有效减小像素值数值差异对融合造成的影响,能够更好地融合保留第一属性特征图和第二属性特征图所反映的衣服属性特征。
[0167]
在此实施例中,归一化处理得到的结果首先与第二属性特征图σ(y)进行相乘融合,然后与第一属性特征图μ(y)进行相加融合,经过相乘融合和相加融合,能够更好地融合需要编辑的衣服属性特征。
[0168]
s60:采用损失函数计算预测试衣图像和模特图像之间的损失,并根据若干个图像组对应的损失和,对试衣网络进行迭代训练,直至收敛,得到试衣模型。
[0169]
这里,损失函数可由本领域技术人员在终端中配置,配置好的损失函数随着试衣网络一起发送给服务器,服务器在处理得到各图像组对应的预测试衣图像后,采用损失函数计算各模特图像和预测试衣图像之间的损失,基于损失和对试衣网络进行迭代训练,直到试衣网络收敛,得到试衣模型。
[0170]
可以理解的是,若各模特图像和预测试衣图像的差异越小,则模特图像和预测试衣图像就越相似,说明预测试衣图像能够准确地还原出真实试穿效果。从而,可以根据各模特图像和预测试衣图像的差异,调整前述试衣网络的模型参数,对试衣网络进行迭代训练。即将上述差异进行反向传播,使得试衣网络输出的预测试衣图像不断逼近模特图像,直到试衣网络收敛,得到试衣模型。可以理解的是,在一些实施例中,试衣网络包括图像生成网络、衣服变形网络或多层感知机模块,则模型参数包括图像生成网络的模型参数、衣服变形网络的模型参数或多层感知机模块的模型参数,从而,实现端到端的训练。
[0171]
在一些实施例中,采用adam算法优化模型参数,例如,迭代次数设置为10万次,初始化学习率设置为0.001,学习率的权重衰减设置为0.0005,每1000次迭代,学习率衰减为原来的1/10,其中,可以将学习率、损失和输入至adam算法中,得到adam算法输出的调整模型参数,利用该调整模型参数进行下一次训练,直到训练完后,输出收敛后的试衣网络的模型参数,即得到试衣模型。
[0172]
可以理解的是,在服务器得到收敛后的试衣网络的模型参数(即最终的模型参数)后,可以将该最终的模型参数发送给终端,终端内的试衣网络配置有该最终的模型参数,得到试衣模型。在一些实施例中,服务器也可以保存该试衣网络和最终的模型参数,得到试衣模型。
[0173]
在此实施例中,采用若干个图像组对应的衣服变形图像、身体躯干图和衣服属性向量,对试衣网络进行训练,得到试衣模型。其中,衣服变形图像不仅保留了衣服特征,还能初步反映衣服大致变形形状,从而,可以有效指导试衣网络在生成预测试衣图像时使得衣服与人体结合贴切、试穿效果更加逼真。身体躯干图保留了模特的躯干特征,可以指导试衣网络在生成预测试衣图像时使得躯干轮廓准确,不受模特身上原衣服的影响,有助于预测试衣图像中衣服区域能够自适应试穿衣服的风格。此外,衣服属性向量反映试穿效果中试穿衣服的属性,例如“s码、宽松、长袖”,能够有效指导试衣网络对试穿衣服的属性进行编辑修改,使得预测试衣图像中试穿衣服符合期望的衣服属性(即衣服属性向量)。基于衣服变形图像中衣服的初步变形、身体躯干图保留躯干特征以及衣服属性向量指导编辑试穿衣服的属性,使得预测试衣图像不仅试穿效果逼真,而且能够对试穿衣服的属性进行编辑修改。
采用若干个图像组以上述方式对试衣网络进行训练,基于损失和的反向传播,约束各图像组对应的预测试衣图像中试穿效果不断靠近模特图像中真实穿着效果,并且,还能按衣服属性向量对试穿衣服的属性进行编辑修改,例如改变码数、长度等。从而,训练得到的试衣模型能够根据输入的衣服属性,对试穿衣服进行编辑,实现可编辑衣服属性的虚拟试衣效果。
[0174]
在一些实施例中,损失函数包括条件对抗损失、感知损失和衣服变形损失。其中,衣服变形损失反映预测试衣图像中衣服和模特图像中衣服之间的差异。
[0175]
其中,对抗损失是预测试衣图像是否为对应的模特图像的损失,当对抗损失大时,说明预测试衣图像的分布与模特图像的分布差异较大,当对抗损失小时,说明预测试衣图像的分布与模特图像的分布差异较小、相近。这里,图像的分布是指图像中各部位的分布,例如衣服、头部、四肢的分布等。
[0176]
感知损失是将模特图像经卷积得到的特征图与预测试衣图像经卷积得到的特征图作比较,使得高层信息(内容和全局结构)接近。
[0177]
衣服变形损失反映预测试衣图像中衣服和模特图像中衣服之间的差异。当衣服变形图像中衣服和模特图像图像中衣服之间的差异越大时,说明衣服变形图像中衣服区域所反映的衣服变形偏离真实试穿效果,衣服变形算法的变形效果较差。当衣服变形图像中衣服区域和模特图像中衣服区域之间的差异越小时,说明衣服变形图像中衣服区域所反映的衣服变形靠近真实试穿效果,衣服变形算法的变形效果较好。
[0178]
在一些实施例中,该损失函数包括:
[0179]
loss=l
cgan
λ1l
percept
λ2l
clother
[0180]
l
cgan
=e[logd(f)] e[1-logd(y)]
[0181][0182][0183]
其中,loss为损失函数,l
cgan
为对抗损失,l
percept
为感知损失,l
clother
为衣服变形损失,λ1和λ2为超参数,可以设置为10,f是模特图像(真实试衣图像),y是预测试衣图像,d是判别器,v是vgg网络的特征图的层数,vgg和ri分别是vgg网络第i层中的特征图和元素数,其中,ri=ciw
ihi
,ci、wi、hi分别表示为第i层特征图的数量、宽度和长度。c
t
是模特图像中试穿衣服的图像,是衣服变形图像,c
t_mask
是模特图像中衣服区域,是衣服变形图像中衣服区域。
[0184]
在一些实施例中,可以采用vgg等卷积神经网络对模特图像进行下采样,提取得到v个特征图fi(t)。同理,可以采用vgg等卷积神经网络对预测试衣图像进行下采样,提取得到v个特征图fi(y)。
[0185]
在一些实施例中,当i=1时fi(t)和fi(y)的大小为8*8;当i=2时fi(t)和fi(y)的大小为16*16;当i=3时fi(t)和fi(y)的大小为32*32;当i=4时fi(t)和fi(y)的大小为64*
64;当i=5时fi(t)和fi(y)的大小为128*128;当i=6时fi(t)和fi(y)的大小为256*256;当i=7时fi(t)和fi(y)的大小为512*512。
[0186]
因此,基于包括对抗损失、感知损失和衣服变形损失的损失函数计算得到的差异,对试衣网络进行迭代训练,能够约束预测试衣图像从分布、内容特征和衣服形状这四个方面不断靠近模特图像(即真实试衣图像),有利于提高训练得到的试衣模型的试衣效果。
[0187]
综上所述,采用若干个图像组对应的衣服变形图像、身体躯干图和衣服属性向量,对试衣网络进行训练,得到试衣模型。其中,衣服变形图像不仅保留了衣服特征,还能初步反映衣服大致变形形状,从而,可以有效指导试衣网络在生成预测试衣图像时使得衣服与人体结合贴切、试穿效果更加逼真。身体躯干图保留了模特的躯干特征,可以指导试衣网络在生成预测试衣图像时使得躯干轮廓准确,不受模特身上原衣服的影响,有助于预测试衣图像中衣服区域能够自适应试穿衣服的风格。此外,衣服属性向量反映试穿效果中试穿衣服的属性,例如“s码、宽松、长袖”,能够有效指导试衣网络对试穿衣服的属性进行编辑修改,使得预测试衣图像中试穿衣服符合期望的衣服属性(即衣服属性向量)。基于衣服变形图像中衣服的初步变形、身体躯干图保留躯干特征以及衣服属性向量指导编辑试穿衣服的属性,使得预测试衣图像不仅试穿效果逼真,而且能够对试穿衣服的属性进行编辑修改。采用若干个图像组以上述方式对试衣网络进行训练,基于损失和的反向传播,约束各图像组对应的预测试衣图像中试穿效果不断靠近模特图像中真实穿着效果,并且,还能按衣服属性向量对试穿衣服的属性进行编辑修改,例如改变码数、长度等。从而,训练得到的试衣模型能够根据输入的衣服属性,对试穿衣服进行编辑,实现可编辑衣服属性的虚拟试衣效果。
[0188]
在通过本技术实施例提供的训练试衣模型的方法训练得到试衣模型后,可利用该试衣模型应用至虚拟试衣,生成试衣图像。本技术实施例提供的虚拟试衣方法可以由各种类型具有计算处理能力的电子设备实施,例如智能终端和服务器等。
[0189]
下面结合本技术实施例提供的终端的示例性应用和实施,说明本技术实施例提供的虚拟试衣方法。参见图12,图12是本技术实施例提供的虚拟试衣方法的流程示意图。该方法s200包括如下步骤:
[0190]
s201:获取试穿者图像、待试衣服图像和待试衣服属性文本信息。
[0191]
终端(例如智能手机或智能试衣镜)内置的试衣助手(应用软件)获取试穿者图像、待试衣服图像和待试衣服属性文本信息。其中,该试穿者图像可以是终端拍摄的,或者用户输入终端的。待试衣服图像可以是用户从试衣助手中选择的,待试衣服属性文本信息可以是用户输入终端的。
[0192]
可以理解的是,试穿者图像包括试穿者的身体,待试衣服图像中包括衣服。
[0193]
s202:将待试衣服属性文本信息进行特征编码,得到待试衣服属性向量。
[0194]
可以理解的是,待试衣服属性文本信息可以包括尺码、袖长、衣长、胸围、腰围、臀围、裤长及版型等文本信息。待试衣服属性文本信息是文本格式的数据。为了能够让试衣模型知晓待试衣服属性文本信息所反映的属性特征,这里,对待试衣服属性文本信息进行编码,得到待试衣服属性向量。具体的编码实施方式请参照上述训练试衣模型方式实施例中步骤s20中的编码方式。
[0195]
s203:将待试衣服图像中衣服按试穿者图像中人体结构进行初步变形,得到待试穿衣服变形图像。
[0196]
为了使得待试穿衣服与试穿者在试衣模型中进行融合时衣服能够与人体结构相适应,待试衣服图像中的衣服按试穿者人体结构进行变形,得到待试衣服变形图像。待试衣服变形图像中的衣服呈立体状态,与试穿者的人体结构相适应,有益于衣服与试穿者融合后结合贴切,试衣效果真实自然。具体的变形实施方式请参照上述训练试衣模型方式实施例中步骤s30中的变形方式。
[0197]
s204:对试穿者图像进行人体解析,得到第一试穿者解析图,并根据第一试穿者解析图从试穿者图像中提取出试穿者的身体躯干图。
[0198]
可以理解的是,在对试穿者图像中的试穿者更换衣服时,需要保留试穿者的身份特征等需要保留的特征。
[0199]
在要试穿的衣服和试穿者输入试衣模型进行融合前,提取试穿者的身份特征,即获取试穿者的身体躯干图,一方面,能够避免原有旧衣服特征对融合造成干扰,另一方面,能够保留试穿者的身份特征,使得试穿者换上需要试穿的衣服后不失真。
[0200]
关于人体解析、分离第二解析图、提取身体躯干图已在上述训练试衣模型方式实施例中步骤s40中详细介绍,在此不再重复说明。
[0201]
s205:将待试穿衣服变形图像、试穿者的身体躯干图和待试衣服属性向量,输入试衣模型,生成试衣图像。
[0202]
其中,该试衣模型采用上述任意一项训练试衣模型的方法训练得到。
[0203]
终端内置的试衣助手包括试衣模型,调用试衣模型进行虚拟试衣,生成试衣图像。可以理解的是,该试衣模型是通过上述实施例中训练试衣模型的方法训练得到,与上述实施例中试衣模型具有相同的结构和功能,在此不再一一赘述。
[0204]
简而言之,将待试穿衣服变形图像、试穿者的身体躯干图和待试衣服属性向量输入试衣模型,试衣模型能够根据输入的衣服属性,对试穿衣服进行编辑,实现可编辑衣服属性的虚拟试衣效果。
[0205]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使电子设备执行本技术实施例提供的训练试衣模型的方法,例如,如图3-11所示出的训练试衣模型的方法,或本技术实施例提供的虚拟试衣方法,例如,如图12示出的虚拟试衣方法。
[0206]
在一些实施例中,存储介质可以是fram、rom、prom、eprom、ee prom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0207]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0208]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(h tml,hyper textmarkup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0209]
作为示例,可执行指令可被部署为在一个计算设备(包括智能终端和服务器在内的设备)上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点
目通过通信网络互连的多个计算设备上执行。
[0210]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被计算机执行时使计算机执行如前述实施例中训练试衣模型的方法或虚拟试衣方法。
[0211]
需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0212]
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0213]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献