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

训练试衣模型的方法、生成试衣图像的方法及相关装置与流程

2022-07-30 17:44:34 来源:中国专利 TAG:


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


背景技术:

2.随着现代科技的不断进步,网购规模不断增加,用户可以通过手机在网络购物平台上购买衣物,但是,由于用户获取的待售衣物的信息一般是二维展示图片,用户无法知道这些衣物穿戴在自己身上的效果,因而可能会导致买到不适合自己的衣物,购物体验较差。
3.线上试装一般通过拍摄用户图像,选择系统提供的目标服饰,进行自动替换,具体地,大多采用的都是通过采集人体数据和想要试穿的服饰信息,经3d建模的方式重塑用户形象和目标服饰,然而,目标服饰与用户形象的结合往往不够贴切,并且,容易丢失试穿衣服的风格。


技术实现要素:

4.本技术实施例主要解决的技术问题是提供一种训练试衣模型的方法、生成试衣图像的方法及相关装置,该方法训练得到的试衣模型能够使得试穿衣服和用户结合贴切,保持试穿衣服的风格,试衣效果真实自然。
5.为解决上述技术问题,第一方面,本技术实施例中提供了一种训练试衣模型的方法,试衣网络包括衣服编码网络和解析融合网络;
6.该方法包括:
7.获取训练集,训练集包括多个训练数据,训练数据包括衣服图像和真实试衣图像,真实试衣图像包括模特穿有衣服图像中对应衣服的图像;
8.采用人体解析算法对真实试衣图像进行解析,得到初步人体解析图;
9.采用衣服编码网络对衣服图像进行下采样编码,得到衣服特征图;
10.将初步人体解析图和衣服特征图输入解析融合网络进行融合解析,得到预测人体解析图;
11.采用损失函数计算训练集中各真实试衣图像对应的初步人体解析图和预测人体解析图之间的差异,其中,损失函数包括用于约束衣服图像中的衣服和初步人体解析图中人体之间位置关系的约束函数;
12.根据差异,对试衣网络进行迭代训练,直到试衣网络收敛,得到试衣模型。
13.在一些实施例中,前述解析融合网络包括编码器、融合模块和解码器,
14.前述将初步人体解析图和衣服特征图输入解析融合网络进行融合,得到预测人体解析图,包括:
15.将初步人体解析图输入编码器进行下采样编码,得到人体特征图;
16.将人体特征图和衣服特征图输入融合模块进行融合,得到融合有衣服风格信息的融合特征图;
17.将融合特征图输入解码器进行上采样解码,得到预测人体解析图。
18.在一些实施例中,前述将人体特征图和衣服特征图输入融合模块进行融合,得到融合有衣服风格信息的融合特征图,包括:
19.将人体特征图中的像素和衣服特征图中的像素,通过对应位置相乘,获得融合特征图。
20.在一些实施例中,前述约束函数包括至少一个预设区域约束函数,预设区域约束函数用于约束预设衣服区域和预设人体区域之间的距离。
21.在一些实施例中,该方法还包括:
22.采用人体关键点算法对真实试衣图像进行关键点检测,得到模特人体关键点;
23.采用衣服关键点算法对衣服图像进行关键点检测,得到衣服关键点;
24.将模特人体关键点和衣服关键点代入约束函数进行计算,以满足约束函数所约束的距离关系。
25.在一些实施例中,前述至少一个预设区域约束函数包括以下不等式:
[0026][0027][0028]
(|f
2-c4| |f
5-c5|)<ε3[0029][0030]
其中,ε1为左手臂和左袖之间的距离约束值,f2和f4分别为左手臂的关键点坐标,c4和c6分别为左袖的关键点坐标,ε2为右手臂和右袖之间的距离约束值,f5和f7分别为右手臂的关键点坐标,c5和c8分别为右袖的关键点坐标,ε3为肩膀和衣服肩部之间的距离约束值,ε4为臀部和衣服下摆之间的距离约束值,f8和f
11
分别为臀部的关键点坐标,c
12
和c
13
分别为衣服下摆的关键点坐标。
[0031]
在一些实施例中,在前述采用人体解析算法对真实试衣图像进行解析,得到初步人体解析图之前,还包括:
[0032]
对真实试衣图像进行填充处理,以使真实试衣图像的分辨率满足预设比例。
[0033]
为解决上述技术问题,第二方面,本技术实施例中提供了一种生成试衣图像的方法,包括:
[0034]
获取待试衣服图像和用户图像;
[0035]
采用人体解析算法对用户图像进行解析,得到用户的初步人体解析图;
[0036]
将待试衣服图像和用户的初步人体解析图输入试衣模型,得到用户的新人体解析图,其中,试衣模型采用如上第一方面中训练试衣模型的方法训练得到;
[0037]
将用户的新人体解析图的区域类别进行隐藏处理,得到试衣图像。
[0038]
为解决上述技术问题,第三方面,本技术实施例中提供了一种计算机设备,包括:
[0039]
至少一个处理器,以及
[0040]
与至少一个处理器通信连接的存储器,其中,
[0041]
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上第一方面中的方法。
[0042]
为解决上述技术问题,第四方面,本技术实施例中提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机设备执行如上第一方面的方法。
[0043]
本技术实施例的有益效果:区别于现有技术的情况,本技术实施例提供的训练试衣模型的方法,作为该试衣模型网络结构的试衣网络包括衣服编码网络和解析融合网络,首先获取训练集,该训练集包括多个训练数据,各训练数据包括衣服图像和模特穿有该衣服图像中对应衣服的真实试衣图像,即该真实试衣图像可以作为真实标签。然后,对于每一训练数据,采用人体解析算法对真实试衣图像进行解析,得到初步人体解析图。采用衣服编码网络对衣服图像进行下采样编码,得到衣服特征图。将该初步人体解析图和衣服特征图输入解析融合网络进行融合解析,得到预测人体解析图,使得预测人体解析图融合有试穿衣服特征和模特人体特征,即既能够保持试穿衣服的风格又能保留模特的人体特征,不失真。采用损失函数计算训练集中各真实试衣图像对应的初步人体解析图和预测人体解析图之间的差异,根据该差异,对试衣网络进行迭代训练,直到试衣网络收敛,得到试衣模型。其中,损失函数包括用于约束衣服图像中的衣服和初步人体解析图中人体之间位置关系的约束函数。在约束函数的约束作用下,试穿衣服能够准确定位,和模特结合贴切,另外,还能够使得衣服能够保持自身的风格特征,不受模特原有衣服特征的影响,例如,若模特人体身上是紧身衣服,而试穿的衣服是绒衣或者大衣等宽松衣服,则在约束函数的作用下,宽松衣服仍然会保持原有宽松风格,不受模特身上原有紧身风格的影响。随着试衣网络的不断迭代训练,融合解析的预测试衣图像会不断地靠近真实试衣图像(真实标签),即可得到能够保持试穿衣服风格和贴合人体的试衣模型。因此,采用该试衣模型生成的用户的试衣图像,能够使得试穿衣服和用户结合贴切,保持试穿衣服的风格,试衣效果真实自然。
附图说明
[0044]
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
[0045]
图1为本技术一些实施例提供的训练试衣模型的方法的流程示意图;
[0046]
图2本技术一些实施例中人体解析图;
[0047]
图3为图1所示方法中步骤s40的子流程示意图;
[0048]
图4为本技术一些实施例提供的训练试衣模型的方法的流程示意图;
[0049]
图5为本技术一些实施例中人体关键点的示意图;
[0050]
图6为本技术一些实施例中衣服关键点的示意图;
[0051]
图7为本技术一些实施例中生成试衣图像的方法的流程示意图;
[0052]
图8为本技术一些实施例中计算机设备的结构示意图。
具体实施方式
[0053]
下面结合具体实施例对本技术进行详细说明。以下实施例将有助于本领域的技术
人员进一步理解本技术,但不以任何形式限制本技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进。这些都属于本技术的保护范围。
[0054]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0055]
需要说明的是,如果不冲突,本技术实施例中的各个特征可以相互结合,均在本技术的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。此外,本文所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
[0056]
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本说明书中在本技术的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本技术。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0057]
此外,下面所描述的本技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0058]
为便于对本技术实施例提供的方法进行理解,首先对本技术实施例中涉及的名词进行介绍:
[0059]
(1)神经网络
[0060]
神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。其中,具有很多层隐含层的神经网络则称为深度神经网络(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控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
[0061]
需要注意的是,在本技术实施例中,基于机器学习任务所采用的模型,本质都是神经网络。神经网络中的常用组件有卷积层、池化层、归一化层和反向卷积层等,通过组装神经网络中的这些常用组件,设计得到模型,当确定模型参数(各层的权重矩阵)使得模型误差满足预设条件或调整模型参数的数量达到预设阈值时,模型收敛。
[0062]
其中,卷积层配置有多个卷积核、每个卷积核设置有对应的步长,以对图像进行卷积运算。卷积运算的目的是提取输入图像的不同特征,第一层卷积层可能只能提取一些低
级的特征如边缘、线条和角等层级,更深的卷积层能从低级特征中迭代提取更复杂的特征。
[0063]
反向卷积层用于将一个低维度的空间映射到高维度,同时保持他们之间的连接关系/模式(这里的连接关系即是指卷积时候的连接关系)。反向卷积层配置有多个卷积核、每个卷积核设置有对应的步长,以对图像进行反卷积运算。一般,用于设计神经网络的框架库(例如pytorch库)中内置有upsumple()函数,通过调用该upsumple()函数可以实现低维度到高维度的空间映射。
[0064]
池化层(pooling)是模仿人的视觉系统可以对数据进行降维或,用更高层次的特征表示图像。池化层的常见操作包括最大值池化、均值池化、随机池化、中值池化和组合池化等。通常来说,神经网络的卷积层之间都会周期性插入池化层以实现降维。
[0065]
归一化层用于对中间层的所有神经元进行归一化运算,以防止梯度爆炸和梯度消失。
[0066]
(2)损失函数
[0067]
在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重矩阵让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
[0068]
(3)人体解析
[0069]
人体解析是指将在图像中捕获的人分割成多个语义上一致的区域,例如,身体部位和衣物,或,身体部位的细分类别和衣物的细分类别等。即像素级地识别输入图像,并为图像中每个像素点标注其所属的对象类别。例如,通过神经网络将包括人体的图片中的各个要素(包括头发、脸、四肢、衣服以及背景等)进行区分。
[0070]
为介绍本技术实施例前,先对本技术发明人所知晓的虚拟试衣方法进行简单介绍,使得后续便于理解本技术实施例。
[0071]
线下试装一般采用互动试衣镜设备,购物者站在互动试衣镜设备前,通过其屏幕选择试穿服装,互动试衣镜设备会采集用户图像,根据用户的基本特征和服装款式进行整体的着装展示,用户可以自由进行服装的切换。线上试装一般通过拍摄用户图像,选择系统提供的目标服饰,进行自动替换。然而无论是互动试衣镜设备还是线上虚拟试装,大多都是通过采集人体数据,经3d建模的方式重塑用户形象,即根据二维人体图像建立3d人体模型,将试穿服装设置在3d人体模型的相应位置。往往,衣服与用户形象的结合往往不够贴切,缺少自然感,并且,容易丢失试穿衣服的风格(例如宽松衣服试穿后变紧身),导致用户体验较差,同时采集人体和服饰的3d信息通常成本较高且较为繁琐。
[0072]
针对上述问题,本技术实施提供了一种训练试衣模型的方法,下面结合附图,对本技术的实施例进行描述。本领域技术人员可知,随着技术的发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
[0073]
请参阅图1,图1为本技术实施例提供的训练试衣模型的方法的流程示意图,作为该试衣模型网络结构的试衣网络包括衣服编码网络和解析融合网络。该方法s100具体可以包括如下步骤:
[0074]
s10:获取训练集。
[0075]
该训练集包括多个训练数据,每个训练数据包括衣服图像和真实试衣图像,该真实试衣图像包括模特穿有前述衣服图像中对应衣服的图像。
[0076]
可以理解的是,一训练数据包括衣服图像和真实试衣图像构成的图像对,在一些实施例中,训练数据的数量为万级,例如可以为20000,有利于训练得到准确的通用模型。本领域技术人员可根据实际情况确定训练数据的数量。
[0077]
在衣服图像和真实试衣图像构成的图像对中,衣服图像包括想要试穿的衣服,例如衣服图像1#包括一件绿色短袖。真实试衣图像中模特穿有对应衣服图像中的衣服,例如与衣服图像1#对应的真实试衣图像中模特穿有该绿色短袖。
[0078]
可以理解的是,包括衣服图像和真实试衣图像的训练数据可由本领域技术人员事先搜集得到,例如在一些服饰售卖网站上可爬取衣服图像和对应的穿有该衣服的模特图像(即真实试衣图像)。
[0079]
在一些实施例中,真实试衣图像是模特全身照,其图像比例与人体长宽比例相近,然而,人体长宽比例不符合网络训练要求,即真实试衣图像的分辨率比例不符合网络训练要求。因此,需要对训练集中真实试衣图像进行预处理,以使得真实试衣图像的分辨率比例符合网络训练要求。
[0080]
在一些实施例中,在训练之前,还包括:
[0081]
对真实试衣图像进行填充处理,以使真实试衣图像的分辨率满足预设比例。
[0082]
基于真实试衣图像是模特全身照,其图像比例与人体长宽比例相近,为了不改变模特的体态,对真实试衣图像进行宽度的填充处理,利用图像长度和宽度之间的差值,对宽度按照比例进行像素填充,例如可以填充值为0的像素,使得真实试衣图像的分辨率满足预设比例。
[0083]
在一些实施例中,预设比例为1:1,即进行填充处理后的真实试衣图像的长宽一致。例如,真实试衣图像的分辨率可以为512*512。在一些实施例中,在训练之前,可以为填充处理后的真实试衣图像进行归一化操作,方便加快试衣网络的训练速度。基于归一化操作是本领域技术人员所熟知的常用数据处理方式,在此不对归一化操作进行详细解释。
[0084]
s20:采用人体解析算法对真实试衣图像进行解析,得到初步人体解析图。
[0085]
由前述“名词介绍(3)”可知,人体解析是将人体的各个部位分割出来,如图2所示,不同的部位,例如头发、脸、上衣、裤子、胳膊、帽子、鞋等各个部位识别分割出来,用不同的颜色表示,即得到人体解析图。
[0086]
在一些实施例中,人体解析算法可以为现有的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表示右鞋。从人体解析图中,可以确定图像中各个部位所
属的类别。
[0087]
为了保证初步人体解析图和后续基于初步人体解析图生成的新的人体解析图中人体关键区域的解析类别一致,即减少解析误差,在一些实施例中,对解析类别进行了简化。具体地,根据解析需要,将头部、手臂、腿部以及脚部等人体区域的类别设置为1,其余设置为0。可以理解的是,通过上述方式减少解析误差,有利于提高模型的收敛速度和准确性。
[0088]
s30:采用衣服编码网络对衣服图像进行下采样编码,得到衣服特征图。
[0089]
为了使得衣服图像和初步人体解析图能够充分融合,首先,采用衣服编码网络对衣服图像进行下采样编码,提取特征,得到衣服特征图。在一些实施例中,衣服特征图可以为衣服图像经过下采样后得到的4*4*256大小的特征图。
[0090]
在一些实施例中,该衣服编码网络的结构如下表1所示:
[0091]
表1衣服编码网络的结构
[0092]
层卷积核大小步长输出特征图的尺寸衣服图像x
‑‑
512*512*3卷积层1*12256*256*16卷积层3*32128*128*32卷积层3*3264*64*32卷积层3*3232*32*64卷积层3*3216*16*64卷积层3*328*8*128卷积层3*324*4*256
[0093]
由上表1可知,该衣服编码网络包括多个卷积层,大部分卷积层配置有3*3大小的卷积核,步长设置为2,从而,实现下采样,降维的操作。
[0094]
s40:将初步人体解析图和衣服特征图输入解析融合网络进行融合解析,得到预测人体解析图。
[0095]
可以理解的是,该解析融合网络为神经网络,其结构和机理已在前述“(1)神经网络”中进行了详细介绍。可以理解的是,解析融合网络包括多个卷积层,通过多个卷积层实现对初步人体解析图进行上采样和/或下采样。在上采样和下采样的过程中,均会生成不同大小的特征图。衣服特征图可以与其中至少一个特征图进行融合,融合后的特征图继续进行卷积处理,输出融合有试穿衣服特征信息的图像。
[0096]
该解析融合网络还具备实现人体解析的功能,人体解析已在上述“(3)人体解析”中进行了详细介绍。类似于上述graphonomy算法,该解析融合网络会按预设类别将融合有试穿衣服特征信息的图像进行分割。在一些实施例中,可以按此种方式设置预设类别:将头部、手臂、腿部以及脚部等人体区域的类别设置为1,其余设置为0。
[0097]
最后,解析融合网络输出预测人体解析图。从而,使得预测人体解析图不仅包括解析出的各类别,还融合有试穿衣服特征信息。
[0098]
在一些实施例中,解析融合网络包括编码器、融合模块和解码器。
[0099]
请参阅图3,前述步骤s40具体包括:
[0100]
s41:将初步人体解析图输入编码器进行下采样编码,得到人体特征图。
[0101]
在一些实施例中,编码器包括7个下采样卷积层,这7个卷积层逐层对初步人体解
析图进行下采样,提取特征,生成大小尺寸逐渐减小的特征图,最后,输出的人体特征图的尺寸可以为4*4*256。
[0102]
s42:将人体特征图和衣服特征图输入融合模块进行融合,得到融合有衣服风格信息的融合特征图。
[0103]
可以理解的是,人体特征图与衣服特征图的尺寸大小一致,例如都为4*4*256。将人体特征图和衣服特征图输入融合模块进行融合,基于人体特征图包括模特人体的特征信息,衣服特征图包括试穿衣服的特征信息,因此,得到的融合特征图不仅包括模特人体的特征信息还包括衣服风格信息。例如,宽松风格的试穿衣服,在融合特征图中仍然保持宽松风格。
[0104]
在一些实施例中,融合模块采用的融合方式包括线性融合或非线性融合。可以理解的是,这里的线性融合是指两个图像的对应像素进行一次函数运算得到融合后的图像,这里的非线性融合是指两个图像的对应像素进行二次或多次函数运算得到一个融合后的图像。
[0105]
在一些实施例中,前述步骤s42具体包括:将人体特征图中的像素和衣服特征图中的像素,通过对应位置相乘,获得融合特征图。
[0106]
这里,对应位置相乘,可以采用公式r
ij
=p
ij
×cij
解释,其中,p
ij
表示人体特征图中第i行第j列的像素值,c
ij
表示衣服特征图中第i行第j列的像素数值,r
ij
为融合特征图中第i行第j列的像素值。
[0107]
s43:将融合特征图输入解码器进行上采样解码,得到预测人体解析图。
[0108]
在一些实施例中,解码器包括7个上采样卷积层,这7个卷积层逐层对融合特征图进行上采样,解码特征,生成大小尺寸逐渐增大的特征图,最后一个卷积层输出的特征图为512*512*3大小的预测人体解析图。基于融合特征图不仅包括模特人体的特征信息还包括衣服风格信息,从而,预测人体解析图融合有试穿衣服特征和模特人体特征,即既能够保持试穿衣服的风格又能保留模特的人体特征,不失真。
[0109]
在此实施例中,通过编码器提取初步人体解析图的特征以生成人体特征图,通过融合模块将人体特征图与衣服特征图进行特征融合以生成融合特征图,通过解码器对融合特征图进行解码得到预测人体解析图,使得预测人体解析图融合有试穿衣服特征和模特人体特征,即既能够保持试穿衣服的风格又能保留模特的人体特征,不失真。
[0110]
s50:采用损失函数计算训练集中各真实试衣图像对应的初步人体解析图和预测人体解析图之间的差异,其中,损失函数包括用于约束衣服图像中的衣服和初步人体解析图中人体之间位置关系的约束函数。
[0111]
s60:根据前述差异,对试衣网络进行迭代训练,直到试衣网络收敛,得到试衣模型。
[0112]
可以理解的是,若训练集中各真实试衣图像对应的初步人体解析图和预测人体解析图的差异越小,则初步人体解析图和预测人体解析图就越相似,说明预测人体解析图能够准确地还原出初步人体解析图。从而,可以根据训练集中各真实试衣图像对应的初步人体解析图和预测人体解析图的差异,调整前述试衣网络的模型参数,对试衣网络进行迭代训练。基于试衣网络包括衣服编码网络和解析融合网络,则模型参数包括衣服编码网络的模型参数和解析融合网络的模型参数。即将上述差异进行反向传播,使得试衣网络输出的
预测人体解析图不断逼近初步人体解析图,直到试衣网络收敛,得到试衣模型。
[0113]
可以理解的是,这里的试衣网络收敛可以指的是在某一模型参数下,训练集中各真实试衣图像对应的初步人体解析图和预测人体解析图的差异总和小于预设阈值或在某一范围内波动。
[0114]
在一些实施例中,采用adam算法优化模型参数,例如,迭代次数设置为10万次,初始化学习率设置为0.001,学习率的权重衰减设置为0.0005,每1000次迭代,学习率衰减为原来的1/10,其中,可以将学习率、训练集中各初步人体解析图和各预测人体解析图的差异输入至adam算法中,得到adam算法输出的调整模型参数,利用该调整模型参数进行下一次训练,直到训练完后,输出收敛后的试衣网络的模型参数,即得到试衣模型。
[0115]
需要说明的是,本技术实施例中,训练集包括多个训练数据,例如20000个训练数据,其覆盖的模特、衣服不同,能覆盖市面上大部分的衣服特点。因此,训练出的试衣模型是一个通用的模型,能够广泛用于虚拟试衣,生成试衣图像。
[0116]
在此实施例中,采用损失函数计算训练集中各真实试衣图像对应的初步人体解析图和预测人体解析图之间的差异。损失函数已在前述“名词介绍(2)”中得以详细介绍,在此不再重复赘述。可以理解的是,基于网络结构和训练方式不同,损失函数的结构可以根据实际情况而设置。
[0117]
在一些实施例中,损失函数包括关键区域损失和重构损失,其中,关键区域损失反映预测人体解析图和初步人体解析图的解析差异,重构损失反映预测人体解析图和初步人体解析图的像素差异。
[0118]
在一些实施例中,损失函数为:
[0119]
l
loss
=α*l
loc
β*l
rec

[0120]
其中,l
loc
=‖y
mask-x
mask

l1

[0121]
其中,l
loss
为损失函数,l
loc
为关键区域损失,l
rec
为重构损失,x
mask
为初步人体解析图中的关键区域,y
mask
为预测人体解析图中的关键区域,这里关键区域为途中分割识别的部位和类别。x
i,
为初步人体解析图中第i行第j列的像素值。y
i,
为预测人体解析图中第i行第j列的像素值。
[0122]
在一些实施例中,损失函数还包括用于约束衣服图像中的衣服和初步人体解析图中人体之间位置关系的约束函数。在约束函数的约束作用下,试穿衣服能够准确定位,和模特结合贴切,另一方面,还能够使得衣服能够保持自身的风格特征,不受模特原有衣服特征的影响,例如,若模特人体身上是紧身衣服,而试穿的衣服是绒衣或者大衣等宽松衣服,由于试穿衣服不会按原有衣服进行变形,在约束函数的作用下即可使得试穿衣服按自身风格进行调整并适应人体,宽松衣服仍然会保持原有宽松风格,不受模特身上原有紧身风格的影响。
[0123]
随着试衣网络的不断迭代训练,融合解析的预测人体解析图会不断地靠近初步人体解析图(相当于真实人体解析图),即可得到能够保持试穿衣服风格和贴合人体的试衣模型。
[0124]
在一些实施例中,上述约束函数包括至少一个预设区域约束函数,该预设区域约束函数用于约束预设衣服区域和预设人体区域之间的距离。
[0125]
其中,预设衣服区域可以包括袖口区域、肩部区域、上衣下摆区域或裤脚区域。预设人体区域可以包括手臂区域、肩膀区域、臀部区域或腿部区域等。可以理解的是,当人体在试穿衣服时,预设衣服区域和预设人体区域具有对应关系,例如,袖口区域对应手臂区域,肩部区域对应肩膀区域,上衣下摆区域对应臀部区域等。通过预设区域约束函数约束这些具有对应关系的衣服区域和人体区域之间的距离,能够使得试穿衣服和人体结合贴切自然。
[0126]
在一些实施例中,请参阅图4,该方法s100还包括:
[0127]
s70:采用人体关键点算法对真实试衣图像进行关键点检测,得到模特人体关键点。
[0128]
s80:采用衣服关键点算法对衣服图像进行关键点检测,得到衣服关键点。
[0129]
s90:将模特人体关键点和衣服关键点代入约束函数进行计算,以满足约束函数所约束的距离关系。
[0130]
采用人体关键点检测算法对真实试衣图像进行关键点检测,可以定位出人体关键点信息(即人体上若干个关键点),如图5所示,包括头部、肩部、胳膊、腿和身体躯干等区域的关键点。在一些实施例中,人体关键点检测算法可以采用2d关键点检测算法,例如convolutional pose machine(cpm)或stacked hourglass network(hourglass)等。
[0131]
采用衣服关键点检测算法对衣服图像进行关键点检测,可以定位出衣服关键点(即衣服上若干个关键点),如图6所示,包括袖口、领口、肩部和下摆等区域的关键点。在一些实施例中,可以基于样本图像对实现该衣服关键点检测算法的神经网络进行训练,其中,样本图像包括服饰并标注有服饰的参考关键点坐标,神经网络包括多个卷积层、池化层或全连接层等,其结构可以采用现有的深度卷积神经网络,也可由本领域技术人员自行设计。
[0132]
可以理解的是,若变形后衣服的关键点与人体关键点对应部位距离适当,例如,衣服肩部区域的关键点与人体肩部区域的关键点之间的距离在一定范围内等,则衣服与模特在融合时衣服能够贴合人体,看起来真实自然。
[0133]
因此,约束函数可以基于模特人体关键点和衣服关键点对试穿衣服和人体之间距离关系进行约束,具体地,将模特人体关键点和衣服关键点代入约束函数进行计算,以满足约束函数所约束的距离关系。
[0134]
在一些实施例中,前述至少一个预设区域约束函数包括以下不等式:
[0135][0136][0137]
(|f
2-c4| |f
5-c5|)<ε3[0138][0139]
其中,ε1为左手臂和左袖之间的距离约束值,f2和f4分别为左手臂的关键点坐标,c4和c6分别为左袖的关键点坐标,ε2为右手臂和右袖之间的距离约束值,f5和f7分别为右手臂的关键点坐标,c5和c8分别为右袖的关键点坐标,ε3为肩膀和衣服肩部之间的距离约束
值,ε4为臀部和衣服下摆之间的距离约束值,f8和f
11
分别为臀部的关键点坐标,c
12
和c
13
分别为衣服下摆的关键点坐标。
[0140]
上述4个不等式中,左手臂的关键点和左袖的关键点之间的距离关系小于ε1,右手臂的关键点和右袖的关键点之间的距离关系小于ε2,肩膀和衣服肩部之间的距离关系小于ε3,臀部和衣服下摆之间的距离关系小于ε4,在这4个距离约束值的约束下,衣服的左袖和人体的左手臂适配,衣服的右袖和人体的右手臂适配,衣服的肩部和人体的肩膀适配,衣服的下摆和人体的臀部适配,从而,试穿衣服能够准确定位,和模特结合贴切。
[0141]
在此实施例中,通过约束函数约束衣服图像中的衣服和初步人体解析图中人体之间距离关系,还能够使得衣服能够保持自身的风格特征,不受模特原有衣服特征的影响,例如,若模特人体身上是紧身衣服,而试穿的衣服是绒衣或者大衣等宽松衣服,则在约束函数的作用下,宽松衣服仍然会保持原有宽松风格,不受模特身上原有紧身风格的影响。
[0142]
综上所述,本技术实施例提供的训练试衣模型的方法,作为该试衣模型网络结构的试衣网络包括衣服编码网络和解析融合网络,首先获取训练集,该训练集包括多个训练数据,各训练数据包括衣服图像和模特穿有该衣服图像中对应衣服的真实试衣图像,即该真实试衣图像可以作为真实标签。然后,对于每一训练数据,采用人体解析算法对真实试衣图像进行解析,得到初步人体解析图。采用衣服编码网络对衣服图像进行下采样编码,得到衣服特征图。将该初步人体解析图和衣服特征图输入解析融合网络进行融合解析,得到预测人体解析图,使得预测人体解析图融合有试穿衣服特征和模特人体特征,即既能够保持试穿衣服的风格又能保留模特的人体特征,不失真。采用损失函数计算训练集中各真实试衣图像对应的初步人体解析图和预测人体解析图之间的差异,根据该差异,对试衣网络进行迭代训练,直到试衣网络收敛,得到试衣模型。其中,损失函数包括用于约束衣服图像中的衣服和初步人体解析图中人体之间位置关系的约束函数。在约束函数的约束作用下,试穿衣服能够准确定位,和模特结合贴切,另外,还能够使得衣服能够保持自身的风格特征,不受模特原有衣服特征的影响,例如,若模特人体身上是紧身衣服,而试穿的衣服是绒衣或者大衣等宽松衣服,则在约束函数的作用下,宽松衣服仍然会保持原有宽松风格,不受模特身上原有紧身风格的影响。随着试衣网络的不断迭代训练,融合解析的预测试衣图像会不断地靠近真实试衣图像(真实标签),即可得到能够保持试穿衣服风格和贴合人体的试衣模型。因此,采用该试衣模型生成的用户的试衣图像,能够使得试穿衣服和用户结合贴切,保持试穿衣服的风格,试衣效果真实自然。
[0143]
在通过本技术提供的训练试衣模型的方法训练得到试衣模型后,可利用该试衣模型进行虚拟试衣,生成试衣图像。参见图7,图7为本技术实施例提供的生成试衣图像的方法的流程示意图,如图7所示,该方法s200包括如下步骤:
[0144]
s201:获取待试衣服图像和用户图像。
[0145]
其中,待试衣服图像中包括衣服,用户图像包括用户的身体。
[0146]
s202:采用人体解析算法对用户图像进行解析,得到用户的初步人体解析图。
[0147]
这里,可以参照前述步骤s20对用户图像进行解析,得到用户的初步人体解析图,具体过程在此不再详细介绍。
[0148]
s203:将待试衣服图像和用户的初步人体解析图输入试衣模型,得到用户的新人体解析图,其中,试衣模型采用上述任意一个实施例中训练试衣模型的方法训练得到。
[0149]
可以理解的是,该试衣模型是通过上述实施例中训练试衣模型的方法训练得到,与上述实施例中试衣模型具有相同的结构和功能,在此不再一一赘述。
[0150]
简而言之,将待试衣服图像和用户的初步人体解析图输入试衣模型,试衣模型会对待试衣服图像进行下采样编码,得到待试衣服特征图,试衣模型会对用户的初步人体解析图进行下采样编码,得到用户的人体特征图,然后,将用户的人体特征图和待试衣服特征图进行融合得到融合有待试衣服风格信息的融合特征图,融合特征图经过上采样解码后,得到用户的新人体解析图。
[0151]
基于该试衣模型与上述实施例中试衣模型具有相同的结构和功能,使得输出的新人体解析图中试穿衣服和用户结合贴切,保持试穿衣服的风格,试衣效果真实自然。
[0152]
s204:将用户的新人体解析图的区域类别进行隐藏处理,得到试衣图像。
[0153]
可以理解的是,用户新人体解析图还反映有图像中各区域的类别信息,因此,将用户的新人体解析图的区域类别进行隐藏处理,即可得到试衣图像。
[0154]
因此,在试衣图像中试穿衣服和用户结合贴切,能够保持试穿衣服的风格,试衣效果真实自然。
[0155]
参见图8,图8是本技术实施例提供的一种计算机设备的结构示意图,该计算机设备50包括处理器501、存储器502。处理器501连接到存储器502,例如处理器501可以通过总线连接到存储器502。
[0156]
处理器501被配置为支持该计算机设备50执行图1-图6的方法或图7的方法中相应的功能。该处理器501可以是中央处理器(central processing unit,cpu),网络处理器(network processor,np),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(application specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
[0157]
存储器502作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本技术实施例中训练试衣模型的方法对应的程序指令/模块,或,生成试衣图像的方法对应的程序指令/模块。处理器501通过运行存储在存储器502中的非暂态软件程序、指令以及模块,可以实现上述任一方法实施例中的训练。
[0158]
存储器502可以包括易失性存储器(volatile memory,vm),例如随机存取存储器(random access memory,ram);存储器1002也可以包括非易失性存储器(non-volatile memory,nvm),例如只读存储器(read-only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);存储器502还可以包括上述种类的存储器的组合。
[0159]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被计算机执行时使计算机执行如前述实施例中训练试衣模型的方法或生成试衣图像的方法。
[0160]
需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际
的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0161]
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0162]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献