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

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

2022-12-06 23:28:08 来源:中国专利 TAG:


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


背景技术:

2.随着现代科技的不断进步,网购规模不断增加,用户可以通过手机在网络购物平台上购买衣物,但是,由于用户获取的待售衣物的信息一般是二维展示图片,用户无法知道这些衣物穿戴在自己身上的效果,因而可能会导致买到不适合自己的衣物,购物体验较差。
3.随着神经网络的不断发展,在生成图像领域得到了广泛的应用。因此,研究者将神经网络应用到虚拟试衣中,提出各种试衣算法,现有的虚拟试衣算法,都是先实现衣服的变形,再生成皮肤区域,实现试穿的功能。然而,此种方式过于依赖于人体关键点以及人体解析图,由于人体关键点的点位较少,人体解析图中身形被原衣服遮挡,使得试穿衣服无法贴合人体轮廓,即试穿衣服很难符合人体的轮廓信息以及体态信息。


技术实现要素:

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

沙漏型0010’,

h型0100’......},“胖瘦”{

瘦0011’,

微胖0110’,

胖1100’,

匀称1001’}。将体态文本信息中各词语对应编码与原数值数据进行拼接,得到文本编码。例如,对于体态文本信息“身高165cm,体重50kg,苹果型,匀称”,其文本编码可以是“165 50 0001 1001”。
[0113]
多层感知机模块包括输入层、多层隐含层和输出层,其中,输入层包括n个神经元,
隐含层包括q个神经元,输出层包括k个神经元。每一层的工作可以用函数表达式来描述,可以理解的是,每层的函数表达式不同。
[0114]
可以理解的是,若输入的信息特征编码用x表示,则输入层输送给隐含层x,隐藏层的输出可以为f(w1x b1),其中,w1是权重,b1是偏量,函数f可以是常用的sigmoid函数或者tanh函数。隐藏层到输出层相当于是一个多类别的逻辑回归,即softmax回归,因此,输出层的输出为softmax(w2x1 b2),其中,x1为隐藏层输出的f(w1x b1)。
[0115]
因此,多层感知机模块可以采用如下公式表示:
[0116][0117]
其中,g表示softmax激活函数,h表示隐含层个数,wi和bi表示第i个隐含层的权重和偏量。x表示输入的信息特征编码。w1和b1表示输入层的权重和偏量,s表示激活函数,mlp(x)表示目标信息向量。
[0118]
在一些实施例中,k可以为1024,从而,输出层会输出一个长度为1024的一维向量,即长度为1024的目标信息向量。
[0119]
多层感知机模块的各层使用激活函数,能够给神经元引入非线性因素,使得模块可以任意逼近任何非线性函数,从而,可以利用到更多的非线性模型中。多层感知机模块对于离散信息具有良好的特征提取能力,从而,采用多层感知机模块对文本编码进行特征提取,得到的体态特征图,能够充分反映模特身形轮廓特征和体态特征。
[0120]
在此实施例中,采用多层感知机模块对文本编码进行提取,使得体态特征图更加能够充分反映模特身形轮廓特征和体态特征,从而,试衣网络能够更好地学习到模特身形轮廓特征和体态特征,因此,采用多层感知机模块提取体态特征图,有利于模型收敛。
[0121]
此外,在步骤s20中,从模特图像中提取出身体躯干图。可以理解的是,在对模特图像中的模特进行更换衣服时,需要保留模特的身份特征等需要保留的特征。在衣服和模特进行融合前,提取模特的身份特征,即获取身体躯干图,一方面,能够避免原有旧衣服特征对融合造成干扰,另一方面,能够保留模特的身份特征,使得模特换上需要试穿的衣服后不失真。
[0122]
具体地,首先,可对模特图像进行人体解析,得到解析图像。由前述“名词介绍(3)”可知,人体解析是将人体的各个部位分割出来,为像素赋予类别。从解析图中,可以确定图像中各个部位所属的类别。然后,保留解析图像中身体躯干区域(例如脸、脖子、手、脚等),将身体躯干区域对应的像素类别设置为1,其他类别的区域设置为0,得到二值化图像。最后,将模特图像中的像素和二值化图像中的像素对应位置相乘,得到身体躯干图。
[0123]
对应位置相乘,可以采用公式f

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

ij
为身体躯干图中第i行第j列的像素值。
[0124]
在此实施例中,身体躯干图中能够准确保留模特的身份特征,去除需要被替换的原有衣服特征,使得模特换上需要试穿的衣服后身份不失真。
[0125]
s30:将体态特征图和身体躯干图输入图像生成网络进行先编码后解码处理,得到模特轮廓图像。
[0126]
可以理解的是,由于原衣服会遮挡身体躯干,例如长袖衬衣会遮挡身体上半部分和手臂,去除原衣服后的身体躯干图无法反映身体轮廓特征和体态特征,例如从身体躯干图中看不出模特上半身是胖还是瘦,从而,衣服变形不符合实际的体态情况。若对胖和瘦等不同体态的人,采用同样的变形方式,会使得衣服变形与人体体态不协调。
[0127]
为了使得身体躯干图能够反映身体轮廓特征和体态特征,指导衣服图像中衣服进行合理变形,首先,将体态特征图和身体躯干图输入图像生成网络进行先编码后解码处理,得到能够反映身体轮廓特征和体态特征的模特轮廓图像。
[0128]
在一些实施例中,图像生成网络包括编码器和解码器,其中,编码器主要是由卷积层、激活函数层和实例归一化层构成,相应的数学表达式如下公式:
[0129][0130]
其中,表示第层的第m个特征图,表示第 l层的第n个特征图,w表示卷积核,b表示偏置项,σ(
·
)表示lealyrelu激活函数,in表示实例归一化。由于下采样和上采样会带来信息损失,所以采用均步长卷积,其中每一层的卷积核数量设置五个不同的参数16,32,64,128,256。最后获8*8*256大小的特征图。
[0131]
解码器主要包括转置卷积层、激活函数层、实例归一化层。转置卷积层将特征层映射为输入大小,相比于上采样,转置卷积能更好的恢复图像细节,最后的转置卷积层中,滤波器数量为3。8*8*256大小的特征图经解码器进行上采样后,最终输出512*512*3的模特轮廓图像。
[0132]
也即,体态特征图和身体躯干图经过通道拼接后输入图像生成网络,进行先下采样后上采样的空间变化处理,使得得到的模特轮廓图像不仅包括体态文本信息所反映的身体轮廓特征和体态特征,还包括身体躯干图所反映的躯干身份特征。从而,模特轮廓图像不仅能够指导衣服进行变形,还能用于与变形后的衣服图像进行融合,准确保留模特的身份特征,使得模特换上需要试穿的衣服后身份不失真。
[0133]
s40:将模特轮廓图像和衣服图像输入衣服变形网络以对衣服图像中的衣服进行变形,得到衣服变形图像。
[0134]
其中,衣服变形网络用于对衣服进行变形处理。可以理解的是,衣服变形网络也是一种神经网络,本领域技术人员可根据实际情况设计衣服变形网络的具体结构。
[0135]
将模特轮廓图像和衣服图像进行通道拼接后,输入衣服变形网络,衣服变形网络中的各层或组件模块(例如卷积层、池化层、激活函数层或残差提取模块等)对拼接后的图像进行空间映射变化,其中,模特轮廓图像为衣服变形网络提供身形轮廓特征和体态特征,使得衣服图像中衣服按照身形轮廓特征和体态特征进行变形。从而,衣服变形图像中,衣服的变形符合人体轮廓特征和体态特征。
[0136]
可以理解的是,随着网络训练收敛,模特轮廓图像中的人体轮廓特征和体态特征越来越靠近模特的真实轮廓体态特征,衣服变形也更加准确。该引入身形轮廓特征和体态特征指导衣服进行变形的方式,相比于采用人体关键点指导衣服变形,模特轮廓图像能够为衣服变形网络提供模特身形轮廓和体态特征,使得衣服变形图像中衣服能够更加贴合人体轮廓。
[0137]
在一些实施例中,请参阅图6,衣服变形网络包括transformer模块、特征匹配模块和变形模块。
[0138]
其中,transformer模块的整个网络结构完全是由注意力机制组成的。transformer模块通过引入多头注意力机制并且去除了降采样、卷积等操作,可以在一定程度上弥补传统神经网络没有空间位置概念的局限性。transformer模块包括多个编码器和多个解码器,这多个编码器和多个解码器相互交互,对输入的图像进行编码和解码处理,将注意力放在一些特征上,从而,可以得到具有全局稀疏特征的特征图。
[0139]
特征匹配模块用于匹配两个图像中具有关联性的像素点,例如将人体结构的肩膀像素点与衣服的肩部像素点进行关联匹配。变形模块用于对图像进行变形,使得图像中的像素点发生位置变化。
[0140]
本领域技术人员可以理解的是,上述transformer模块、特征匹配模块和变形模块均是神经网络,具有神经网络的组件,例如卷积层、池化层、归一化层、反向卷积层、全连接层和激活函数等,在此不详细展开。
[0141]
在此实施例中,前述步骤s40具体包括:
[0142]
s41:将模特轮廓图像和衣服图像输入transformer模块,分别得到第一模特轮廓特征图和第一衣服特征图。
[0143]
请参阅图7,图7是transformer模块的网络结构示意图。transformer模块包括n个编码器、n个解码器和线性层、激活函数,例如n可以为6,一个编码器和一个解码器之间存在交互。编码器包括两个部分:多头注意力机制(multi-head self-attention mechanism)和前向传播网络(position-wise feed-forward network)。这两个部分后均配置有残差连接(residual connection)和归一化层(layer normalization)。解码器包括三个部分:掩码多头注意力机制(multi-head self-attention mechanism)、多头注意力机制(multi-head self-attention mechanism和前向传播网络(position-wise feed-forward network)。这三个部分后均配置有残差连接(residual connection)和归一化层(layer normalization)。需要说明的是,本技术中所涉及的transformer模块并不限于图7所示网络结构,还包括各种改进的transformer模块。
[0144]
其中,“注意力机制”是指对于某个时刻的输出y,它在输入x上各个部分的注意力。这个注意力可以理解为权重,对有用的特征给予大的权重。从而,transformer模块具有全局稀疏特征的能力。
[0145]
transformer模块的输入需要序列,可以将图像切分为像素块,然后经过线性变换再拉成序列,最后再加入各像素块在图像中的位置编码信息组成输入序列,输入到transformer模块中。输入序列经过多个编码器和解码器进行处理后,输出特征图。
[0146]
在此实施例中,输入transformer模块的图像包括模特轮廓图像和衣服图像,从而,transformer模块分别对模特轮廓图像和衣服图像进行计算处理后,分别得到第一模特轮廓特征图和第一衣服特征图。
[0147]
transformer模块采用注意力机制,能够对输入x中影响输出y的特征给予大的权重,例如,对模特轮廓图像中影响第一模特轮廓特征图的特征给予大的权重,对衣服图像中影响第一衣服特征图的特征给予大的权重。从而,得到具有全局稀疏特征的第一模特轮廓特征图和第一衣服特征图,第一模特轮廓特征图中的稀疏特征和第一衣服特征图中的稀疏
特征具有匹配关联性。在第一模特轮廓特征图和第一衣服特征图中,数值非0的像素点少,数值是0的像素点多。其中,非0的像素点即为transformer模块筛选出来的具有匹配关联性的像素点。也即,第一模特轮廓特征图和第一衣服特征图中像素点具有关联性。例如,第一模特轮廓特征图中肩膀像素点会以第一衣服特征图像中衣服肩部像素点相互匹配关联。
[0148]
s42:将第一模特轮廓特征图和第一衣服特征图输入特征匹配模块进行特征匹配关联,得到关联矩阵。
[0149]
其中,该关联矩阵反映模特和衣服之间的像素点关联匹配情况。
[0150]
请再次参阅图6,再获取到像素点具有匹配关联性的第一模特轮廓特征图和第一衣服特征图后,通过特征匹配模块计算两者之间的匹配关联程度,得到关联矩阵。
[0151]
在一些实施例中,该特征匹配模块包括相关值计算层和softmax层;相关值计算层用于计算第一模特轮廓特征图中像素点与第一衣服特征图中对应的像素点之间的相关值。
[0152]
具体地,采用相关值计算层对第一模特轮廓特征图和第一衣服特征图进行相乘处理,得到相关矩阵。采用softmax层对相关矩阵进行归一化处理,得到关联矩阵。
[0153]
在此实施例中,相关值计算层可以采用如下公式计算相关矩阵;
[0154][0155]
其中,相关矩阵s中的每一个元素表示第一模特轮廓特征图t1和第一衣服特征图c1中对应像素点的相关值。是一个归一化系数,具体可由本领域技术人员根据实际情况而设定。
[0156]
在获得相关矩阵s后,将相关矩阵s的最后两个维度采用softmax函数进行归一化处理,得到关联矩阵m。可以理解的是,关联矩阵m=softmax(s)∈r
h*w*h*w

[0157]
经过softmax函数归一化处理得到的关联矩阵m中,每个元素的数值在[-1,1]之间,m中每个元素可以代表一个光流点,元素的数值为光流点的权重。权重大的光流点对应具有辨识度和代表性的关联像素点。
[0158]
s43:变形模块根据关联矩阵对衣服图像进行变形,得到衣服变形图像。
[0159]
基于关联矩阵m包括具有不同权重的光流点,关联像素点对应的光流点的权重大,从而,变形模块根据关联矩阵对衣服图像进行变形,使得衣服图像能够按照关联像素点的光流轨迹进行变形,得到衣服变形图像。
[0160]
在一些实施例中,取标准像素网格,将标准像素网格与关联矩阵进行相乘处理,得到变形像素网格。最后,采用变形函数对变形像素网格和衣服图像进行计算处理,得到衣服变形图像。
[0161]
其中,标准像素网格是一个与关联矩阵后两个维度大小相同的网格图像,例如标准像素网格的大小为h*w。在标准像素网格中每个元素的像素值可以为1,表示像素点无偏移。
[0162]
采用关联矩阵对标准像素网格中元素进行变形偏移。具体地,将标准像素网格g与关联矩阵m进行相乘处理,得到变形像素网格
[0163]
可以理解的是,变形像素网格是标准像素网格按关联矩阵进行变形后的网格图像,每个像素点的像素值表示衣服图像中对应像素点的偏移量。这里,采用变形函数f对变
形像素网格和衣服图像进行计算处理,得到衣服变形图像使得衣服变形图像能够按照关联矩阵进行变形,即按照关联矩阵中权重大的关联像素点的光流轨迹进行变形。
[0164]
在此实施例中,利用transformer模块的注意力机制建立模特轮廓图像和衣服图像之间的特征联系,可以得到具有全局稀疏特征的第一模特轮廓特征图和第一衣服特征图,第一模特轮廓特征图中的稀疏特征和第一衣服特征图中的稀疏特征具有匹配关联性。然后,采用特征匹配模块计算第一模特轮廓特征图和第一衣服特征图中像素点之间的关联匹配度,得到关联矩阵,从而可以筛选出更具有辨识度和代表性的关联像素点。变形模块依据这些关联像素点的光流轨迹对衣服图像进行变形,相比于追踪全部像素点的光流轨迹实现变形(过度变形),本实施例追踪关联像素点的光流轨迹实现变形,能够使得衣服纹理走向自然。
[0165]
可以理解的是,本技术实施例中“衣服纹理”是指衣服穿着在人体身上时形成的自然褶皱。衣服布料是柔软的,覆盖在人体身上时,与人体随形,形成自然的波纹状褶皱。平铺的衣服没有褶皱,即原衣服图像中的衣服不存在与人体随形的褶皱,当其变形以模仿试穿效果后,由于衣服的整体像素位置均会变化,会产生自然褶皱。相比于追踪全部像素点的光流轨迹实现变形,在此实施例中追踪关联像素点的光流轨迹实现变形,变形参数少,能够使得衣服纹理走向自然。
[0166]
在一些实施例中,请在此参阅图5,试衣网络还包括特征提取模块,其中,特征提取模块包括多个卷积层,用于对图像进行下采样特征提取,得到感受野较大的特征图。
[0167]
在前述步骤s40之前,该方法s100还包括:
[0168]
采用特征提取模块对模特轮廓图像进行特征提取,得到第二模特轮廓特征图;采用特征提取模块对衣服图像进行特征提取,得到第二衣服特征图。
[0169]
可以理解的是,请参阅图5,特征提取模块是双通道的卷积神经网络,分别对组合图像进行下采样特征提取,得到分辨率更小的第二模特轮廓特征图,对衣服图像进行下采样特征提取,得到分辨率更小的第二衣服特征图。可以理解的是,分辨率更小的第二模特轮廓特征图和第二衣服特征图具有更大的感受野。
[0170]
在此实施例中,前述步骤s40具体包括:将第二模特轮廓特征图和第二衣服特征图输入transformer模块,分别得到第一模特轮廓特征图和第一衣服特征图。
[0171]
输入transformer模块的是分辨率更小、感受野更大的第二模特轮廓特征图和第二衣服特征图,使得transformer模块能够更好的关注到全局图像的特征分布,更加有利于学习。
[0172]
s50:将衣服变形图像和模特轮廓图像输入融合模块进行融合处理,得到预测试衣图像。
[0173]
其中,融合模块用于将衣服变形图像和模特轮廓图像进行融合处理,使得预测试衣图像(融合结果)能够包括衣服变形图像和模特轮廓图像中的特征。在一些实施例中,融合模块可以是包括编码器和解码器的神经网络。在一些实施例中,融合模块也可以是函数层,采用函数对衣服变形图像和模特轮廓图像这两个图像是进行融合。在此,不对融合模块的结构进行任何限制,能够实现特征融合即可。
[0174]
基于衣服变形图像中衣服模特身形轮廓特征和体态特征进行变形,模特轮廓图像
还包括模特的身份特征,从而,将衣服变形图像和模特轮廓图像进行融合处理后,得到的预测试衣图像能够展示模特试穿衣服的效果。
[0175]
s60:采用损失函数计算预测试衣图像和模特图像之间的损失,并根据若干个图像组对应的损失和,对试衣网络进行迭代训练,直至收敛,得到试衣模型。
[0176]
这里,损失函数可由本领域技术人员在终端中配置,配置好的损失函数随着试衣网络一起发送给服务器,服务器在处理得到各图像组对应的预测试衣图像后,采用损失函数计算各模特图像和预测试衣图像之间的损失,基于损失和对试衣网络进行迭代训练,直到试衣网络收敛,得到试衣模型。
[0177]
可以理解的是,若各模特图像和预测试衣图像的差异越小,则模特图像和预测试衣图像就越相似,说明预测试衣图像能够准确地还原出真实试穿效果。从而,可以根据各模特图像和预测试衣图像的差异,调整前述试衣网络的模型参数,对试衣网络进行迭代训练。即将上述差异进行反向传播,使得试衣网络输出的预测试衣图像不断逼近模特图像,直到试衣网络收敛,得到试衣模型。可以理解的是,在一些实施例中,试衣网络包括图像生成网络、衣服变形网络、融合模块或多层感知机模块,则模型参数包括图像生成网络的模型参数、衣服变形网络的模型参数、融合模块的模型参数或多层感知机模块的模型参数,从而,实现端到端的训练。
[0178]
在一些实施例中,采用adam算法优化模型参数,例如,迭代次数设置为10万次,初始化学习率设置为0.001,学习率的权重衰减设置为0.0005,每1000次迭代,学习率衰减为原来的1/10,其中,可以将学习率、损失和输入至adam算法中,得到adam算法输出的调整模型参数,利用该调整模型参数进行下一次训练,直到训练完后,输出收敛后的试衣网络的模型参数,即得到试衣模型。
[0179]
可以理解的是,在服务器得到收敛后的试衣网络的模型参数(即最终的模型参数)后,可以将该最终的模型参数发送给终端,终端内的试衣网络配置有该最终的模型参数,得到试衣模型。在一些实施例中,服务器也可以保存该试衣网络和最终的模型参数,得到试衣模型。
[0180]
在此实施例中,构建包括图像生成网络、衣服变形网络和融合模块的试衣网络,采用若干个图像组对应的模特轮廓图像、衣服图像对试衣网络进行训练,得到试衣模型。其中,将体态文本信息与身体躯干图结合得到的模特轮廓图像能够反映模特身形轮廓和体态特征,从而,模特轮廓图像输入衣服变形网络中指导衣服变形,衣服图像中衣服能够按照模特身形轮廓和体态特征进行变形,使得衣服的变形符合人体轮廓特征和体态特征。相比于采用人体关键点指导衣服变形,模特轮廓图像能够为衣服变形网络提供模特身形轮廓和体态特征,使得衣服变形图像中衣服能够更加贴合人体轮廓。采用若干个图像组以上述方式对试衣网络进行训练,基于损失和的反向传播,约束各图像组对应的预测试衣图像中试穿效果不断靠近模特图像中真实穿着效果,衣服变形更加符合人体轮廓特征和体态特征。从而,训练得到的试衣模型能够使得试穿衣服更加贴合人体轮廓,符合人体体态,试衣效果更加真实准确。
[0181]
在一些实施例中,体态文本信息对应有体态轮廓图像。可以理解的是,每一种体态文本信息对应有相应的体态轮廓图像。体态轮廓图像是能够表示对应的体态文本信息的真实图像。例如,对于体态文本信息“身高165cm、体重50kg、苹果型、匀称”,则对应的体态轮廓
图像可以是身高大致在165cm左右、体重大致在50kg左右、苹果型、匀称的模特身穿泳衣、紧身衣或塑形衣等能够展示身体轮廓的衣服。
[0182]
可以理解的是,与体态文本信息对应的体态轮廓图像中模特和模特图像中模特无需是同一个人,两者都具有体态文本信息所描述的身形轮廓特征或体态特征即可。
[0183]
请再次参阅图5,试衣网络还包括风格迁移网络,风格迁移网络用于对输入的图像进行特征提取输出不同尺寸的多个特征图。
[0184]
在一些实施例中,风格迁移网络可以是vgg网络。vgg网络是一种现有的卷积神经网络,在此不再详细介绍。
[0185]
该方法s100还包括:采用风格迁移网络分别对体态轮廓图像和模特轮廓图像进行特征提取,得到多个体态轮廓特征图和多个模特轮廓特征图。
[0186]
在此实施例中,可以采用vgg等卷积神经网络(风格迁移网络)对体态轮廓图像进行下采样,提取得到多个体态轮廓特征图。同理,可以采用vgg等卷积神经网络(风格迁移网络)对模特轮廓图像进行下采样,提取得到多个模特轮廓特征图。可以理解的是,基于风格迁移网络的每个层输出的特征图尺寸不同,随着层的递进,特征图尺寸越来越小。多个体态轮廓特征图与多个模特轮廓特征图的尺寸大小一一对应。
[0187]
在此实施例中,前述“采用损失函数计算预测试衣图像和模特图像之间的损失”,包括:采用损失函数计算多个体态轮廓特征图和多个模特轮廓特征图之间的风格迁移损失。
[0188]
风格迁移损失是将体态轮廓图像(体态文本信息的真实图像)经卷积得到的各个层次的体态轮廓特征图与模特轮廓图像经卷积得到的各个层次的模特轮廓特征图作比较得到的损失。当风格迁移损失越小,说明体态轮廓图像与模特轮廓图像越接近,模特轮廓图像能够还原出体态文本信息所描述的真实体态轮廓。
[0189]
从而,基于风格迁移损失的反向传播,随着网络的收敛,约束模特轮廓图像越来越靠近体态轮廓图像,模特轮廓图像能够还原出体态文本信息所描述的真实体态轮廓,从而,图像生成网络能够生成符合体态文本信息描述的模特轮廓图像,有利于后续指导衣服变形网络实现与人体轮廓体态特征相适应的衣服变形,进一步,有利于生成试衣效果逼真的预测试衣图像。当试衣网络收敛后,得到的试衣模型能够使得试穿衣服更加贴合人体轮廓,符合人体体态,试衣效果更加真实准确。
[0190]
在一些实施例中,前述“采用损失函数计算预测试衣图像和模特图像之间的损失”,还包括:采用损失函数计算衣服变形图像中衣服和模特图像中衣服之间的衣服变形损失;采用损失函数计算模特图像和预测试衣图像之间的重构损失。
[0191]
其中,衣服变形损失反映衣服变形图像中衣服和模特图像中衣服(真实衣服变形)之间的轮廓差异。当衣服变形图像中衣服和模特图像中衣服之间的轮廓差异越大时,说明衣服变形图像中衣服区域所反映的衣服变形偏离真实试穿效果,衣服变形算法的变形效果较差。当衣服变形图像中衣服区域和模特图像中衣服区域之间的差异越小时,说明衣服变形图像中衣服区域所反映的衣服变形靠近真实试穿效果,衣服变形算法的变形效果较好。
[0192]
重构损失是预测试衣图像是否为对应的模特图像(真实试衣图像)的损失,当重构损失大时,说明预测试衣图像的分布与模特图像(真实试衣图像)的分布差异较大,当重构损失小时,说明预测试衣图像的分布与模特图像(真实试衣图像)的分布差异较小、相近。这
里,试衣图像的分布是指图像中各部位的分布,例如衣服、头部、四肢的分布等。
[0193]
在一些实施例中,该损失函数包括:
[0194]
loss=λ0l
style
λ1l
warp
λ2l
rec
;其中,
[0195][0196][0197]
l
rec
=||y-r||1;
[0198]
其中,λ0、λ1和λ2为超参数,l
style
为风格迁移损失,l
warp
为衣服变形损失,l
rec
为重构损失,h为体态轮廓图像,为模特轮廓图像,vgg为风格迁移网络,v是风格迁移网络的总层数,fi和ri分别是风格迁移网络的第i层中的激活量和元素数,是模特图像中衣服,是衣服变形图像中衣服,是模特图像中衣服轮廓,是衣服变形图像中衣服轮廓,y是模特图像,r是预测试衣图像。
[0199]
在一些实施例中,可以采用vgg等卷积神经网络作为风格迁移网络,对体态轮廓图像进行下采样,提取得到v个体态轮廓特征图fi(h)。同理,可以采用vgg等卷积神经网络对模特轮廓图像进行下采样,提取得到v个模特轮廓特征图
[0200]
在一些实施例中,当i=1时fi(h)和均大小为8*8;当i=2时fi(h)和的大小为16*16;当i=3时fi(h)和的大小为32*32;当i=4时fi(h)和的大小为64*64;当i=5时fi(h)和的大小为128*128;当i=6时fi(h)和的大小为256*256;当i=7时fi(h)和的大小为512*512。
[0201]
风格迁移损失将不同大小的体态轮廓特征图与模特轮廓特征图进行比较,计算不同粒度下的差异,能够快速约束模特轮廓图像越来越靠近体态轮廓图像,有利于试衣网络收敛,提高训练效率。
[0202]
在一些实施例中,可以采用vgg等卷积神经网络对模特图像中衣服进行下采样,提取得到v个真实衣服变形特征图同理,可以采用vgg等卷积神经网络对衣服变形图像中衣服进行下采样,提取得到v个预测衣服变形特征图
[0203]
在一些实施例中,当i=1时和的大小为8*8;当i=2时和的大小为16*16;当i=3时和的大小为32*32;当i=4时和的大小为64*64;当i=5时和的大小为128*128;当i=6时和的大小为256*256;当i=7时和的大小为512*512。
[0204]
因此,基于包括风格迁移损失、衣服变形损失和重构损失的损失函数计算得到的差异,对试衣网络进行迭代训练,能够约束预测试衣图像不断靠近模特图像(真实试衣图像),能够加快网络收敛,有利于提高训练得到的试衣模型的试衣效果。
[0205]
综上所述,通过设计上述试衣网络的结构,试衣网络图像生成网络、衣服变形网络和融合模块,采用若干个图像组对应的模特轮廓图像、衣服图像对试衣网络进行训练,得到
试衣模型。其中,将体态文本信息与身体躯干图结合得到的模特轮廓图像能够反映模特身形轮廓和体态特征,从而,模特轮廓图像输入衣服变形网络中指导衣服变形,衣服图像中衣服能够按照模特身形轮廓和体态特征进行变形,使得衣服的变形符合人体轮廓特征和体态特征。相比于采用人体关键点指导衣服变形,模特轮廓图像能够为衣服变形网络提供模特身形轮廓和体态特征,使得衣服变形图像中衣服能够更加贴合人体轮廓。采用若干个图像组以上述方式对试衣网络进行训练,基于损失和的反向传播,约束各图像组对应的预测试衣图像中试穿效果不断靠近模特图像中真实穿着效果,衣服变形更加符合人体轮廓特征和体态特征。从而,训练得到的试衣模型能够使得试穿衣服更加贴合人体轮廓,符合人体体态,试衣效果更加真实准确。
[0206]
在通过本技术实施例提供的训练试衣模型的方法训练得到试衣模型后,可利用该试衣模型应用至虚拟试衣,生成试衣图像。本技术实施例提供的虚拟试衣方法可以由各种类型具有计算处理能力的电子设备实施,例如智能终端和服务器等。
[0207]
下面结合本技术实施例提供的终端的示例性应用和实施,说明本技术实施例提供的虚拟试衣方法。参见图8,图8是本技术实施例提供的虚拟试衣方法的流程示意图。该方法s200包括如下步骤:
[0208]
s201:获取试穿者图像、待试衣服图像和试穿者体态文本信息。
[0209]
终端(例如智能手机或智能试衣镜)内置的试衣助手(应用软件)获取试穿者图像、待试衣服图像和试穿者体态文本信息。其中,该试穿者图像可以是终端拍摄的,或者用户输入终端的。待试衣服图像可以是用户从试衣助手中选择的,试穿者体态文本信息可以是用户输入终端的。
[0210]
可以理解的是,试穿者图像包括试穿者的身体,待试衣服图像中包括衣服,试穿者体态文本信息描述试穿者的体态。
[0211]
s202:对试穿者体态文本信息进行特征编码,得到试穿者体态特征图;并从试穿者图像中提取出试穿者身体躯干图。
[0212]
可以理解的是,试穿者体态文本信息可以包括高、体重、体形、胖瘦等文本信息。试穿者体态文本信息是文本格式的数据。为了能够让试衣模型知晓试穿者体态文本信息所反映的属性特征,这里,对试穿者体态文本信息进行编码,得到体态特征图。具体的编码实施方式请参照上述训练试衣模型方式实施例中步骤s20中的编码方式。
[0213]
为了保留试穿者的身份特征,从试穿者图像中提取出试穿者身体躯干图。具体的提取实施方式请参照上述训练试衣模型方式实施例中步骤s20中的提取方式。
[0214]
s203:将试穿者体态特征图和试穿者身体躯干图输入试衣模型,生成试衣图像。
[0215]
其中,该试衣模型采用上述任意一项训练试衣模型的方法训练得到。
[0216]
终端内置的试衣助手包括试衣模型,调用试衣模型进行虚拟试衣,生成试衣图像。可以理解的是,该试衣模型是通过上述实施例中训练试衣模型的方法训练得到,与上述实施例中试衣模型具有相同的结构和功能,在此不再一一赘述。
[0217]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使电子设备执行本技术实施例提供的训练试衣模型的方法,例如,如图3-7所示出的训练试衣模型的方法,或本技术实施例提供的虚拟试衣方法,例如,如图8示出的虚拟试衣方法。
[0218]
在一些实施例中,存储介质可以是fram、rom、prom、eprom、ee prom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0219]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0220]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper textmarkup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0221]
作为示例,可执行指令可被部署为在一个计算设备(包括智能终端和服务器在内的设备)上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点目通过通信网络互连的多个计算设备上执行。
[0222]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被计算机执行时使计算机执行如前述实施例中训练试衣模型的方法或虚拟试衣方法。
[0223]
需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0224]
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0225]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

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

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

相关文献