本发明涉及服装搭配技术领域,具体涉及一种基于美学特征的服装搭配方法,该方法考虑美学特征的情况下,能够为用户提供个性化服装搭配方案,其方法由搭配关系网络、视觉语义网络及美学特征网络构成,在搭配关系网络中,从现有的套装中挖掘服装单品之间的搭配关系,在视觉语义网络中,从服装的文本描述中学习服装搭配的语义关系,在美学特征网络中挖掘服装搭配的美学特征,所述方法能够对用户现有的服装搭配方案进行评价,也能为用户提供视觉协调、符合美学特征的个性化服装搭配方案。
背景技术:
传统的服装搭配技术采用度量学习的方式挖掘潜在的搭配关系,然而该种方式只能判断成对的服装单品是否搭配,若要形成一套完整的服装搭配,必须要比较多次,因此会带来大量的计算,此外,传统的服装搭配技术在生成搭配方案时,仅仅考虑服装的颜色、纹理、尺寸、面料等因素,没有考虑服装的美学特征,无法保证生成的服装搭配能够符合人们的审美偏好,美学特征是一个抽象的概念且很难定性分析,因此,现有的服装搭配方法很少会将美学特征作为服装搭配的参考,如何建立有效的深度学习模型实现服装搭配是一个亟待解决的实际问题。
技术实现要素:
本发明的目的是针对现有技术的不足,并针对服装搭配中搭配关系及美学特征学习问题,利用深度学习策略,构建神经网络,提供一种有效的服装搭配方法,该方法能够对用户现有的服装搭配方案进行评价,也能为用户提供视觉协调、符合美学特征的个性化服装搭配方案,具有更高的实用价值。
实现本发明目的的具体技术方案是:
一种基于美学特征的服装搭配及推荐方法,其特征在于,该方法输入一个服装单品的图像序列,序列中具有y幅图像,1≤y≤10,序列中图像分辨率均为f×f的rgb图像,200≤f≤1200,具体包括以下步骤:
步骤1:构建服装搭配数据集r
收集数据前,定义b个美学特征关键词,10≤b≤15,再根据这些关键词从shoplook.io和ssense.com网站分别收集k组和s组服装搭配的图像数据,10000≤k≤15000,20000≤s≤25000,收集的所有组图像数据要满足条件:包含一个美学特征关键词bi且用户满意度的投票数大于t,其中,1≤i≤b,5≤t≤20,利用这些组数据构建服装搭配数据集r,每组数据di包含l幅服装单品图像{ik|0≤k≤l-1},3≤l≤10,0≤i≤k+s-1,每组的单品图像都包含以下服装类别的有序服装实例:上衣、裤子、鞋子、帽子,收集的ik都附有与类别相关的文本描述句子ck,0≤k≤l-1,将ck分割成q个描述性单词{wi|0≤i≤q-1},2≤q≤50;
将r的各组图像缩放为n×n,n为299、598或者1196,统计r中所有描述性单词的词频,从ck中删除词频低于h的描述性单词,20≤h≤50;
步骤2:构建神经网络
神经网络构建包括四个部分:特征提取网络f-net、搭配关系网络d-net、视觉语义网络v-net及美学特征网络a-net;
将di中每幅图像分辨率均缩放到299×299,张量形状为299×299×3,然后输入到f-net,f-net的输出结果是di组内每幅图像提取的特征{ak|0≤k≤l-1},其张量形状为h×1,h为512、1024或者2048,把f-net输出的特征输入到d-net、v-net及a-net;
对于d-net的结构设置为双向lstm,输出的是搭配单品在j个候选单品中出现的概率,其中lstm前向预测的概率为pt,后向预测的概率为qt,输出的张量形状均为j×1,j为32、48或者64;
对于v-net的输入,除了f-net输出的特征以外,还有{ck|0≤k≤l-1},输出是f-net输出特征的编码{uk|0≤k≤l-1}以及利用词袋模型编码得到的文本特征向量{vk|0≤k≤l-1},uk和vk的张量形状都为h×1;
a-net的输出为网络预测的di的美学特征oi,1≤i≤b,张量形状为b×1;
在网络结构设置时,f-net采用inceptionv3的网络结构,将最后一个全连接层的神经元个数设为h,d-net设置为单层的双向lstm网络,含h个隐藏单元,v-net设置为单层的全连接结构,神经元个数为h,全连接层输出的结果采用relu函数进行激活;a-net设置为3层全连接结构,神经元的个数分别为g、g、b,其中g为512、1024或者2048,前两个全连接层输出的结果采用relu函数进行激活;
步骤3:神经网络的训练
将r按照8:1:1的比例划分为训练集,评估集和测试集,利用训练集训练网络模型,利用评估集,评估训练过程中网络的性能,利用测试集对网络性能进行测试,f-net、d-net、v-net及a-net的训练过程同时进行,训练的轮次为100次;
d-net训练时,定义的损失为:
v-net训练时,定义的损失为:
其中,k≠i,m代表两个特征向量之间距离的阈值,0.1≤m≤0.5,d表示两个特征向量之间的cosine距离,vi是uk对应单品的同组其它单品的文本特征,假设ui是vk对应单品的同组其它单品的图像特征;
对a-net进行训练时,定义的损失为:
训练模型的总损失为:
e=ed+λvev+λaea#(4)
其中,λv和λa分别表示损失ev和ea的权重系数,0≤λv≤1,0≤λa≤1;
步骤4:服装搭配操作
从r中选取多幅不同种类的服装单品图像,构成服装搭配初始图像序列,利用序列中第一个候选单品,利用已经训练好的网络,生成初始搭配方案,再将初始图像序列中其它候选单品替换初始搭配方案中的单品,将得到的单品序列输入到网络中,从d-net的双向lstm输出的图像序列得到最终的服装搭配方案。
本发明具有简单、实用的特点,本发明由搭配关系网络、视觉语义网络及美学特征网络构成,在搭配关系网络中,从现有的套装中挖掘服装单品之间的搭配关系,在视觉语义网络中,从服装的文本描述中学习服装搭配的语义关系,在美学特征网络中挖掘服装搭配的美学特征,所发明的方法能够对用户现有的服装搭配方案进行评价,也能为用户提供视觉协调、符合美学特征的个性化服装搭配方案。
附图说明
图1为本发明服装搭配的美学评分结果图;
图2为本发明生成的仅有图像特征的搭配结果图;
图3为本发明生成的具有图像特征和美学特征的搭配结果图。
具体实施方式
实施例
下面结合附图对本发明进一步说明。
本实施例在pc机上ubuntu16.0464位操作系统下进行实施,其硬件配置为cpui5-7500,内存8g,gpunvidiageforcegtx10708g,深度学习框架采用tensorflow0.4.1,编程语言采用python2.7;
实现本发明目的的具体技术方案是:一种基于美学特征的服装搭配方法,该方法输入一个服装单品的图像序列,序列中具有y幅图像,y为8,序列中图像分辨率均为f×f的rgb图像,f为299,具体包括以下步骤:
步骤1:构建服装搭配数据集r
收集数据前,定义b个美学特征关键词,b取12,再根据这些关键词从shoplook.io和ssense.com网站分别收集k组和s组服装搭配的图像数据,k取13248,s取21889,收集的所有组图像数据要满足条件:包含一个美学特征关键词bi且用户满意度的投票数大于t,其中,1≤i≤b,t取10,利用这些组数据构建服装搭配数据集r,每组数据di包含l幅服装单品图像{ik|0≤k≤l-1},l为8,0≤i≤k+s-1,每组的单品图像都包含以下服装类别的有序服装实例:上衣、裤子、鞋子、帽子,收集的ik都附有与类别相关的文本描述句子ck,0≤k≤l-1,将ck分割成q个描述性单词{wi|0≤i≤q-1},2≤q≤50;
将r的各组图像缩放为n×n,n为299,统计r中所有描述性单词的词频,从ck中删除词频低于h的描述性单词,h为30;
步骤2:构建神经网络
神经网络构建包括四个部分:特征提取网络f-net、搭配关系网络d-net、视觉语义网络v-net及美学特征网络a-net;
将di的图像分辨率缩放到299×299,张量形状为299×299×3,然后输入到f-net,f-net的输出结果是di组内每幅图像提取的特征{ak|0≤k≤l-1},其张量形状为h×1,h为512,把f-net输出的特征输入到d-net、v-net及a-net;
对于d-net的结构设置为双向lstm,输出的是搭配单品在j个候选单品中出现的概率,其中lstm前向预测的概率为pt,后向预测的概率为qt,输出的张量形状均为j×1,j为64;
对于v-net的输入,除了f-net输出的特征以外,还有{ck|0≤k≤l-1},输出是f-net输出特征的编码{uk|0≤k≤l-1}以及利用词袋模型编码得到的文本特征向量{vk|0≤k≤l-1},uk和vk的张量形状都为h×1;
a-net的输出为网络预测的di的美学特征oi,1≤i≤b,张量形状为b×1;
在网络结构设置时,f-net采用inceptionv3的网络结构,将最后一个全连接层的神经元个数设为h,d-net设置为单层的双向lstm网络,含h个隐藏单元,v-net设置为单层的全连接结构,神经元个数为h,全连接层输出的结果采用relu函数进行激活;a-net设置为3层全连接结构,神经元的个数分别为g、g、b,其中g为512,前两个全连接层输出的结果采用relu函数进行激活;
步骤3:神经网络的训练
将r按照8:1:1的比例划分为训练集,评估集和测试集,利用训练集训练网络模型,利用评估集,评估训练过程中网络的性能,利用测试集对网络性能进行测试,f-net、d-net、v-net及a-net的训练过程同时进行,训练的轮次为100次;
d-net训练时,定义的损失为:
v-net训练时,定义的损失为:
其中,k≠i,m代表两个特征向量之间距离的阈值,0.1≤m≤0.5,d表示两个特征向量之间的cosine距离,vi是uk对应单品的同组其它单品的文本特征,假设ui是vk对应单品的同组其它单品的图像特征;
对a-net进行训练时,定义的损失为:
训练模型的总损失为:
e=ed+λvev+λaea#(4)
其中,λv和λa分别表示损失ev和ea的权重系数,λv和λa均取0.5;
步骤4:服装搭配操作
从r中选取多幅不同种类的服装单品图像,构成服装搭配初始图像序列,利用序列中第一个候选单品,利用已经训练好的网络,生成初始搭配方案,再将初始图像序列中其它候选单品替换初始搭配方案中的单品,将得到的单品序列输入到网络中,从d-net的双向lstm输出的图像序列得到最终的服装搭配方案。
实验过程中,网络的实现细节与使用的重要超参数如下:f-net使用预训练的权重进行参数的初始化,d-net、v-net和a-net采用gaussian方式进行参数的初始化,d-net中dropout率取0.7,v-net和a-net中dropout率取0.5,每批次服装搭配样本数为64,优化器采用bptt优化器,学习率初始值为0.2,之后每经过2个轮次,学习率变为原来的0.5倍。
图1为本发明服装搭配的美学评分结果图,图中给出了5组实验结果,每一行代表一套搭配的评分,评分约定最大值为1.0,最小为0,从图中可看出,在第一行和第二行的搭配中,所有服装单品之间都是视觉协调的,而且都具有统一的美学特征,所以美学评分相对较高;在第三行搭配中,由于某些项目在颜色上不协调,因此美学评分要低于前两组搭配;在第四行和第五行的搭配中,由于服装单品在颜色和纹理上不协调,且分别缺失鞋子和裤子,因此美学评分较低。
图2为本发明生成的仅有图像特征的搭配结果图,图中给出了6组实验结果,其中框内的图像代表已有的服装单品,从图中可以看到,本发明方法可以自动提取已有服装单品的视觉特征,同时学习服装单品之间的搭配关系,最终为用户生成视觉协调的服装搭配。
图3为本发明生成的具有图像特征和美学特征的搭配结果图,图中给出了6组实验结果,左边第一列为给定的服装单品,在提供的美学特征文本的基础上,本发明方法可以根据提供的美学特征生成视觉协调且符合个人审美偏好的服装搭配。