APP下载

基于加权随机森林算法的虚拟试衣型号推荐技术研究

2019-09-12李涛冯向阳

智能计算机与应用 2019年4期

李涛 冯向阳

摘 要:随着体感交互技术的发展,基于Kinect的虚拟试衣系统为顾客在线选购衣物提供了一种新的选择方案。Kinect可以较为准确地测量出人体的骨骼模型,生成人体三维数据,以进一步为顾客推荐衣服型号,并利用可视化技术进行虚拟试装。然而,人的体型不同,不同厂家的制衣型号也不规范,传统的数据筛选与匹配手段为顾客选择的衣服尺码总是不尽人意。本项目基于Kinect获取的人体三维数据,设计了一种加权随机森林方法为顾客预测并推荐合适的衣服型号。结合其它机器学习模型,本文进行了对比实验,结果表明随机森林模型有效而准确,在3 000个测试样本上得到了最高的准确率(100%)。该模型泛化能力强,且足够健壮稳定,可以广泛地应用在虚拟试衣型号推荐情景中。

关键词:虚拟试衣型号;Kinect;加权随机森林

文章编号:2095-2163(2019)04-0116-09 中图分类号:TP391.9 文献标志码:A

0 引 言

随着计算机科学技术的发展与人们生活水平的逐渐提高,线上选购衣物成为当代人的重要消费方式之一。然而,缺乏试衣体验的问题极大地降低了部分用户网上购置服装类商品的热情,一旦选购的衣物尺寸不合适,用户大多会选择退换货处理,导致了买卖双方的时间和财务成本增高。为了解决这一问题,虚拟试衣技术成为一种有前景的解决方案。虛拟试衣技术具备传统试衣手段无法相比的便捷性和人性化的优势,虚拟试衣系统大多具有品种较为齐全的服装,节约了传统试衣过程中缺货的问题。用户站在虚拟试衣系统前就能够原地实现模拟试衣、换衣和选衣过程,且有效地吸引了顾客眼球,提高了商家受关注度[1]。

目前,虚拟试衣技术在国内外正蓬勃发展,俄罗斯ARDoor公司在2011年推出了基于Kinect虚拟试衣间解决方案,消费者只需要简单的操作手势就能够虚拟穿着试衣间内的全部服装[2]。NDP公司在2012年为日本优衣库定制了虚拟试衣系统,系统会对顾客选择的衣服颜色、种类进行识别,并且利用增强现实技术将顾客的试衣效果通过大屏幕形式呈现给顾客[3]。在国内,为了解决网购服装到手之后试穿不合适的问题,淘宝网推出了内置多种身材模特模型的网上试衣间服务,顾客通过选中在线服装并搭配到与自己身型相似的模特身上,模拟出试穿效果,但这种方式顾客自身体验感有所不足[4]。森动数码科技有限公司研发出了具备自主知识产权的3D体感虚拟试衣系统,这对于国内体感虚拟试衣系统的发展具有重要的影响[5]。

实现以上虚拟试衣系统一般需要通过手工输入或者设备测量的方式获取人体数据,并构建人体三维模型,在顾客选择衣服款型以后,系统结合人体三维数据和衣服款式为其选择试衣型号,然后利用UI技术在显示设备中展示出顾客的试衣效果。由于人体体型多样,不同厂家的制衣型号也不规范,人们很难在多种规格尺寸服装中找到量身定做的效果。据统计,50%的女性认为她们在网络上找不到非常合体的服装,50%的退货原因是由于服装型号不合适,85%的女性把服装型号错误作为服装购买评价中不喜欢该服装的主要原因[6]。因此,在虚拟试衣系统中,试衣型号推荐的准确性极大地影响了顾客的试衣效果,决定了顾客对衣服的满意程度。

在前面提到的虚拟试衣技术应用中,绝大部分产品都是使用了传统的数据筛选与匹配方法,来选择顾客的试衣尺寸型号。文献[7]中使用了人体身高、体重、性别3个因素,并利用BMI体型进行衣服尺码匹配,这种方法简单、易于理解;文献[8]中通过摄像头根据深度值,结合三角几何的方法,大致地推测出顾客的身高和身材,进一步地推荐衣服尺码;文献[9]中使用层次分析法,利用身高、胸围、肩宽等人体三维数据建立服装尺码递阶层次结构模型和判断矩阵,并利用排序算法为真实顾客的指标匹配出最合适的衣服型号。这些方法大多将人体的三维指标映射到高维网格中,通过数据筛选的方式,得到顾客的衣服型号。然而,由于服装版型不同,服装的型号本身可能并不规范,以及顾客身材的高、矮、胖、瘦也不均匀,因此,传统的衣服型号推荐方法具有一定的巧合性,难以覆盖到所有的顾客群体。随着人工智能技术的发展,研究者们开始在试衣型号推荐问题中应用机器学习与深度学习技术;文献[10]中采用了模糊神经网络的方法构建了服装型号推荐专家系统,然而神经网络内部像是一个黑盒子,无法评估模型的逻辑合理性;文献[11]采用了SVM的算法,将身高、背长、臂长等属性作为机器学习特征,训练多个模型,利用投票表决的方式为用户生成服装型号表。

本文的目标是研究一整套基于Kinect体感测量技术和加权随机森林预测算法的有效且稳定的虚拟试衣型号实时推荐模型。以3ds Max系统中的人体尺寸数据为样本,通过与其它几种典型的机器学习模型开展对比实验,验证了基于加权随机森林算法的最优试衣型号预测模型性能,最后以真实用户为例,利用Kinect体感测量技术实时获取人体信息,并使用最优预测模型推荐试衣型号,进一步地使用Unity3D工具展示出了用户的虚拟试衣效果,验证了该虚拟试衣型号推荐模型的有效性。

1 研究方法

本文构建的虚拟试衣型号推荐模型如图1所示。首先,获取3ds Max系统样本库中的真实三维人体数据,并将其作为试衣型号数据集,通过在该数据集上训练加权随机森林算法得到最优试衣型号预测模型。接下来,对Kinect设备获取到的真实场景下的顾客三维人体测量数据进行预测,得到为该顾客推荐的衣服型号。最后,利用Unity3D工具为顾客展示虚拟试衣效果。如果顾客对该衣服满意,则将该顾客的三维数据和所选型号加入到试衣型号数据库中,作为新样本数据,以供后续进一步地训练并提高模型预测准确率。

1.1 三维人体数据测量

本文利用Kinect设备收集用户的三维人体数据,用于为其进行试衣型号匹配。Kinect摄像头将获取用户人体的深度图和彩色图,通过USB传给PC,PC对其进行分析并提取出骨骼点和特征信息。这种方法可降低系统本身对于环境的依赖,而且 Kinect 摄像头体积小、成本低、使用方便快捷,只需顾客站在摄像头前就可以完成骨骼点信息的获取。图2为利用Kinect获得的20个关节节点构成的人体骨骼示意图。本节以获取人体胸围数据为例,展示了基于Kinect数据的人体三维测量与计算过程。

1.1.1 顾客坐标映射

利用Kinect摄像头捕获场景中用户的图片影像及其骨骼三维坐标点,通过将这些三维坐标点与数据库中的20个骨骼关节节点的位置坐标进行特征匹配,得到顾客的人体轮廓信息,将其存储到数据结构中,并填充到最终屏幕窗口背景中。图3为顾客坐标的映射样例。

1.1.2 人体胸厚、胸宽、肩宽计算

根据人体生理学原理,人体的胸围尺寸与胸宽、胸厚和肩宽三者存在着正相关关系[12]。胸厚是人体侧面厚度的最大值,通过计算并遍历肩部和脊柱2个关节点之间的侧面人体像素宽度,得到的最大

值为人体的胸厚,如图4(a)中M和N两点之间的长度。同时,结合M与N两点所在的水平面,从人体正面视角测量W1和W2之间的宽度,可以得到人体的胸宽,如图4(b)中所示。肩宽可以直接由Kinect测量出的二十个关节节点的左肩位置L和右肩位置R计算得到,见图4(c)。

1.1.3 人体胸围尺寸拟合

结合文献[13]中的研究成果,使用matlab Regress拟合线性回归分析创建胸围、胸厚、胸宽及肩宽的线性回归方程拟合公式(1),该公式拟合结果的相关系数γ2=0.982 16。

1.2 试衣型号预测

本文利用机器学习算法从3ds Max人体尺寸数据集中學习获得试衣型号预测模型,如图5所示。首先,需要利用ETL(extract,transform and load)工具对3ds Max人体尺寸数据集进行数据预处理,包括特征提取(extract)、转换(transform)、载入(load),通过特征分析,将最有价值的特征储存到数据仓库中。接下来,利用数据仓库中的有效数据集(已处理好的特征集合),训练机器学习模型,并进行分析优化,获得最优预测模型。最后,基于Kinect实时测量的用户体型数据,利用得到的最优机器学习模型实时预测用户试衣型号。

1.2.1 数据集与特征描述符

用于训练试衣型号预测模型的3ds Max人体尺寸数据集是一个包含了10,000个人体三维数据样本的Excel表格,每一条样本包含7个属性数据和一个目标变量(即该衣服型号,值域为[37,46],均为离散数值)。见表1,这7个属性包括身高、腰围、肩宽、臀围、胸围、腿长和臂长,将被用作模型训练时所参考候选的机器学习特征描述符,该数据集将被划分为训练集和测试集2部分,训练集占比70%,用来学习试衣型号预测模型,测试集占比30%,用于对学习算法的最终评估。

1.2.2 数据预处理

数据预处理用于优化训练试衣型号预测模型的输入信息,即构建对目标变量(即试衣型号)具有有效预测区分能力的输入特征空间。针对本研究中的数据集,该部分进行了“数值归一化,方差评估,特征重要性评价”3步处理。

1.2.2.1 数值归一化

数值归一化可以对特征值去量纲化,使得不同维度上的数值具有一定的可比性,提高模型准确性。在3ds Max人体尺寸数据集中,身高范围一般在150~200 cm之间,而人体的肩宽范围在40~60 cm之间,两者所在的区间范围不一样,可能导致模型不收敛或者收敛速度比较慢。归一化将训练集中每列特征(假设是第i列)的数值缩放到0和1之间,如公式(2)所示。

1.2.2.2 方差评估

特征方差值较低说明这个特征向量不发散,样本在这个特征上基本上没有差异,因此,该特征对机器学习模型预测数值判断区分能力相对较弱,可以考虑将其删除,以提高模型的泛化能力。方差计算公式如(3)所示。

其中,j代表第j个样本,μ是该列特征的样本均值。值得注意的是,删除方差最低的特征需要在数据归一化之后操作,减小不同特征使用的不同量纲带来的影响。

1.2.2.3 特征重要性评价

特征重要性评价有助于分析出影响目标变量(如试衣型号值)预测的关键人体属性,并选择出有价值的特征,优化模型学习空间。本研究使用斯皮尔曼方法计算了用于模型训练的特征与目标变量试衣型号之间的相关性指数[14],用来判断特征对目标变量的重要性。斯皮尔曼相关性系数可以检测非线性变量之间的关系,不论2个变量的总体分布、样本容量的大小如何,都可以使用斯皮尔曼相关性系数分析,其值域为[-1,1],绝对值越大,相关性越高。因此,如果某人体属性特征与试衣型号的斯皮尔曼相关性系数值较低,则可以尝试将其剔除,以提升模型预测精度和泛化能力。求解斯皮尔曼相关性系数公式如(4)所示。

1.2.3 多分类预测技术

本文需要获取的虚拟试衣型号为有限范围的离散型数值,可以将每一个型号作为一个类别,因此适合采用多分类技术进行预测。

1.2.3.1 加权随机森林算法

随机森林算法(Random Forest,RF[15])是基于bagging理论的一种集成学习方法代表,其采用多棵决策树模型的投票表决预测结果。随机森林内部的决策树模型由训练集中的自助采样样本子集和随机选择的m个特征子集通过决策树算法构建,并且在自助采样过程中,每个样本未能被抽取到的概率为p=(1-1N)N。可以证明,当N→ 时,p≈0.368,因此每棵决策树采样完成后,有接近37%的样本不被抽取,这些样本被称为out-of-bag(OOB)数据。

1.2.3.2 对比实验算法

本文考虑利用“one-vs-rest”策略,将多分类问题转换成多个二分类问题[16],利用其它典型的机器学习算法进行求解,并与加权随机森林模型作对比实验,包括逻辑回归分类器(Logistic regression, LR[17])、支持向量机(support-vector machines, SVM[18])算法以及原始随机森林算法(RF)。这3种方法具有不同的模型特性,其中,LR算法可解释性强、预测效率高;SVM可以利用核函数将非线性数据转换为线性数据进行处理,表达能力强;RF泛化能力较好。本研究通过对原始数据集进行数据预处理,获得最优特征子集,然后对以上几种多分类预测模型训练与调优,获取最优试衣型号预测模型。

1.2.4 分类评价指标

由于本文进行多分类预测,不能简单地使用二分类中的模型性能评价指标,如准确率(Accuracy)、精准率(Precision)、召回率(Recall)指标和F1-Score值,因此,对于1.2.3节中不同的多分类模型产生的预测结果,本文采用每一个统计指标值的宏平均值(Macro-average value),即宏准确率(Macro- Accuracy)、宏精确率(Macro-Precision)、宏召回率(Macro-Recall)、宏F-score值(Macro-F-Score)[19]。简而言之,这些值均越大且越接近于1,说明模型的性能越好,预测准确率越高。以下是几种模型指标求解的计算模型。

公式(6)~(9)中,真正例(True Positive,TP)指将一个正例判别为了正例,伪反例(False Negative,FN)则将一个正例判别为负例;相应的,伪正例(False Positive,FP)将一个负例认定为正例,真反例(True Negative,TN)指将一个负例认定为负例。i代表第i个训练样本,i=1,2,...,N,N=7 000,代表样本总数。

为了避免在模型预测过程中出现随机误差,使用交叉检验[20]来综合判断1.2.3节中各个多分类模型的预测能力,可以在一定程度上减小过拟合。交叉检验将原始数据集分为k组,其中k-1组用作训练集,剩余1组用作验证集,且每一个样本均用在验证集中一次。实验过程中,首先在训练集上训练对分类器,再利用验证集来测试训练好的模型。每一轮选择不同的分组数据作为验证集,经过多轮训练,取在所有验证集上的性能指标平均值作为评价分类器的综合性能指标,可以选出可靠稳定的模型。在本文中,分组数k设置为10。

1.3 虚拟试装

在用户选定准备试穿的虚拟衣服后,基于1.2节得到的最优预测模型获得试衣型号,利用Unity3D工具在二维的顾客影像中实现三维的3ds Max服装的遮挡覆盖,实现人衣虚实融合的效果。实现三维衣服模型遮挡二维人体影像的总体思想是,改变三维模型的坐标值,使之对应到相应的二维影像上[2],实现在试衣过程中,实时验证根据试衣型号预测模型所挑选的衣服在真实人物身上的合体性展示效果。

2 实验结果分析

本文的实验环境为 Windows 7操作系统,使用Kinect 摄像机和Unity 3D 工具建立虚拟人物试衣仿真环境,训练并比较不同的机器学习算法获取虚拟试衣型号的最优预测模型。硬件环境:Intel(R) Core(TM)、CPU i7-4720H、3.60 GHz、四核、12G DDR3 RAM、显卡为Nvidia GEFORE GTX 950M(2G)。

2.1 Kinect人体数据测量效果

为验证Kinect对人体三维数据测量的可靠性,本文使用传统手工测量方式和Kinect测量方式对87名学生志愿者进行了胸围数据测量实验,使用相对平均偏差s作为评价指标。相对平均偏差s如公式(10)所示。

表2是10名实验者的Kinect拟合胸围与手工测量胸围效果对比实验结果。对实验结果进行统计,由Kinect得到的胸厚、胸宽和肩宽与手工测量值的相对平均偏差s分别为025%、0.31%、0.18%,拟合胸围的总体平均相对误差为1.27%。对于预测试衣型号而言,这3个偏差值相对衣服型号范围而言较小,可以忽略,因此,Kinect人体三维数据测量结果可靠有效。

2.2 模型训练与预测结果

2.2.1 特征分析與选择

结合1.2章节的理论指导,首先进行方差分析,发现样本数据集中,几乎所有的特征向量方差值均高于0.05,只有身高特征方差值最低,其余几项均在0.08左右,如图6所示。在将特征值归一化以后,由于人体的三维指标相差量不大,因此特征方差值均比较小。

图7中绘制了基于斯皮尔曼相关性系数下的相对特征评分(将评分值进行归一化后的结果)。从图7可以看出,身高、肩宽和臂长3个属性与试衣型号的相关性较弱,结合2.2.1节中身高的方差值较小,因此,在训练预测模型时,可以通过递归消除法依次尝试删除身高、肩宽和臂长3个特征来调优训练模型。递归消除法根据特征评分,每次从特征集合中移除最不重要的特征进行模型训练,并重复这个步骤,直到选出最优模型为止。

2.2.2 模型预测结果分析

基于试衣型号训练样本集,利用递归消除法选择特征,对1.2.3节中的4种不同的分类算法进行网格调优[21]产生各自的最优分类模型,并打印出各自的分类结果混淆矩阵进行对比。如图8所示,可以明显地看出WRF模型的预测准确率高达100%,成功预测出所有的试衣型号,RF与LR相对次之,SVM模型的预测结果最差,原因可能是SVM模型相对太复杂,模型在学习过程中,容易出现过拟合,而RF和WRF是典型的集成学习模型,其内部的树模型具有良好的划分样本特征空间的能力,对于本文中数据质量比较好的3ds Max人体尺寸数据集,体现出了较好的泛化能力。而WRF比RF的预测效果好一些,可以说明加权的随机森林算法WRF在该数据集上表现优于投票表决的原始随机森林算法RF。

根据图9中WRF模型的单棵决策树的分类过程可以看出,决策树模型自动学习了不同尺寸型号(由“class”所标记值)的衣服所使用的筛选条件,WRF模型由多棵如此类似的子模型组成,这类似于使用多种面向不同型号和不同人类体型的传统试衣型号推荐方案来共同决策,为用户选择出合适尺寸的衣服,且预测性能好的方案具有较高的话语权,这也是本文选择使用WRF算法训练试衣型号推荐模型的主要依据。

该图显示了在测试集上不同多分类模型预测得到的试衣型号值与真实值的混淆矩阵,横坐标为真实值,纵坐标为预测值,所有的试衣型号为37到46之间的离散值。对于每一个子图,除对角线外,每一个元素代表真实值与预测值不匹配的样本数量,在对角线上的值越大,说明分类越正确,模型性能越好。以RF混淆矩阵为例,45所标记的行与44所标记的列处元素值为2,说明真实值为45的试衣型号被错误的预测为44的样本数量为2个。

表3結合4种不同的评价指标描述了经过调优后的4种多分类模型在测试集上的试衣型号预测性能表现。从表3看出,WRF模型学习效果最好,RF的性能基本接近于WRF,原因是基于投票表决的RF模型相对的更加注重泛化能力,一般预测结果偏差相对较大,方差较小,而基于加权的WRF模型更加注重模型的准确度,在对于没有异常点的数据集(如3ds Max人体尺寸数据集)上,预测结果偏差较小。SVM模型效果最差,且其参数调优过程比较复杂。因此,本研究最终采用WRF模型作为试衣型号预测模型。

其中,“entropy”为信息熵,是决策树的决策条件;“samples”表示该节点需要决策的样本数量;“value”表示当前节点下每个试衣型号的样本数量;“class”表示哪一类样本数量最多。

2.3 虚拟试装效果

图10(a)和图10(b)中展示了基于试衣预测模型为不同身材的真实用户挑选试衣型号,并利用Unity3D工具展示的试衣效果。可以看出,本文采用的加权随机森林模型为用户推荐的试衣型号可以很好地匹配其身材,效果良好。

3 结束语

本文设计了一整套基于Kinect人体尺寸测量计数和加权随机森林算法的虚拟试衣型号推荐模型。通过实验验证了Kinect的数据测量有效性,并在3ds Max人体尺寸数据集上,利用特征选择、网格调优等手段训练得到了准确率高达100%的最优多分类预测模型—加权随机森林模型。通过对比实验,证明了基于集成学习的加权随机森林模型在多分类问题上具有强大的学习能力与稳定的预测性能。最后,本文使用Unity3D工具展示了该模型为真实用户挑选衣服型号并进行虚拟试装的效果,可以很好地匹配顾客的体态,具有较强的实用性,这对已有虚拟试衣系统中试衣型号推荐技术的优化具有重要的参考价值。

参考文献

[1]韩娜, 陈东伟, 钟卓成, 等. 基于 Kinect 的虚拟试衣系统设计与实现[J]. 信息技术, 2015(7):59-61.

[2]赵海媚, 林振生, 彦虹羽, 等. 基于 Kinect 的 3D 实时虚拟试衣系统的研究[J]. 电子技术与软件工程, 2015 (20):69-71.

[3]胡焰. 基于Kinect的虚拟试衣系统的设计与实现[D]. 武汉:华中科技大学, 2013.

[4]万艳敏, 付莹. 增强现实技术在服装领域的应用[J].毛纺科技, 2018, 46(5):57-61.

[5]安妮. 线上店铺虚拟试衣技术的实现方式对比分析[J].丝绸,2014,51(2):40-46.

[6]CONNELL L J, ULRICH P, KNOX A, et al. Body scan analysis for fit models based on body shape and posture analysis[R]. Nottingham Trent :National Textile Center Annual Report[NTC Project:S01-AC27], 2004.

[7]赵刚, 雷金华. 服装尺码推荐方法与系统:中国,CN103793826A[P]. 2014-05-14.

[8]李智超. 基于 Kinect 的虚拟试衣系统的设计与实现[D]. 南京:东南大学, 2016.

[9]潘璐. 基于层次分析法的服装推荐专家系统[D]. 上海:东华大学, 2016.

[10]东苗. 面向个性化服装定制的体型分析与智能修订[D]. 上海:东华大学, 2010.

[11]汝吉东,王颖.基于SVM女性服装型号推荐方法研究[J]. 丝绸, 2015, 52(6):27-31.

[12]胡潮江, 贺义军, 王宏付. 不同人体厚度状态下贴体上装的衣身结构[J]. 纺织学报, 2015, 36(1):141-146.

[13]王莹莹, 种衍文, 潘少明, 等. 基于 Kinect 深度数据的人体胸围测量方法[J]. 计算机工程与设计, 2015, 36(8):2138-2142.

[14]de WINTER J C F, GOSLING S D, POTTER J. Comparing the Pearson and Spearman correlation coefficients across distributions and sample sizes:A tutorial using simulations and empirical data[J]. Psychological methods, 2016, 21(3):273.

[15]BIAU G, SCORNET E. A random forest guided tour[J]. Test, 2016, 25(2):197-227.

[16]TSOUMAKAS G, KATAKIS I. Multi-label classification:An overview[J]. International Journal of Data Warehousing and Mining (IJDWM), 2007, 3(3):1-13.

[17]HOSMER D W, LEMESHOW S. Applied logistic regression[M]. 2nd Ed. NewYork:Wiley-Interscience Publication,2000.

[18]CHANG C C, LIN C J. LIBSVM:a library for support vector machines[J]. ACM transactions on intelligent systems and technology (TIST), 2011, 2(3):27.

[19]WU Xizhu, ZHOU Zhihua. A unified view of multi-label performance measures[C]//Proceedings of the 34th International Conference on Machine Learning. [s.l.]:JMLR. org, 2017,70:3780-3788.

[20]WONG T T. Performance evaluation of classification algorithms by k-fold and leave-one-out cross validation[J]. Pattern Recognition, 2015, 48(9):2839-2846.

[21]SYARIF I, PRUGEL-BENNETT A, WILLS G. SVM parameter optimization using grid search and genetic algorithm to improve classification performance[J]. Telkomnika, 2016, 14(4):1502-1509.