APP下载

基于改进GA-BP-MC神经网络的人体三维尺寸预测*

2021-09-24胡新荣刘嘉文刘军平何儒汉

计算机工程与科学 2021年8期
关键词:马尔科夫适应度残差

胡新荣,刘嘉文,刘军平,彭 涛,何儒汉

(1.湖北省服装信息化工程技术研究中心,湖北 武汉 430200;2.武汉纺织大学计算机与人工智能学院,湖北 武汉 430200)

1 引言

随着时代的快速发展,在“互联网+”的影响下,传统服装领域与移动互联网已建立了广泛的联系。服装电商平台深入人心,并且已经成为绝大多数用户的购买渠道。但是,服装电商平台在为用户带来便捷的同时也带来了一系列的困扰,其中最普遍是由于服装尺寸不适合所造成的退换货问题。然而,远程人体尺寸测量可以有效解决此类纠纷,并且该技术在虚拟试衣[1]、国民体型研究和人体模型建立等技术领域中的应用也十分广泛。

目前,传统非接触式人体尺寸测量技术主要依赖于三维人体扫描设备[2],或者通过RGB-D摄像机(常见的如kinect)结合人体深度信息的方法获取人体围度信息。显然,这些方法都无法摆脱苛刻的实验环境以及高昂的测量仪器,导致该技术无法在市场上广泛普及。为了满足中小企业的需求,基于正交人体图像的非接触式人体测量方法[3 - 6]被提出。

胡新荣等[7]通过自适应人体结构分割ABSS(Adaptive Body Structure Segmentation)算法对人体关键区域进行分割,然后提取各个部位的特征点以获取各部位所占据像素点的个数,从而获取人体的平面尺寸信息。显然,在二维系统中,人体各个部位的高度、宽度和厚度可以通过算法直接获取。然而,人体的围度信息在通常情况下能给予用户更加直观的感受。所以近年来,针对人体围度尺寸预测的研究十分广泛,当前主要包括以下4种方法:椭圆傅里叶法、超椭圆曲线法、多元函数模型和模型重建法。

夏明等[8,9]采用椭圆傅里叶变换,将利用[TC]NX16三维扫描仪获取的胸围断面拟合点的坐标信息转换为一组不同频率椭圆的叠加,从而获取断面尺寸信息。显然,这些方法的建立都依赖于人体的截面数据,无法从根本上摆脱对三维扫描的需求。

胡新荣等[10]提出利用中心轴具有对称形状的超椭圆模型来拟合人体截面,虽然取得了一定的成果,但由于该模型没有考虑不同人体体型之间的差异性,导致在实际拟合过程中,获取的围度信息与实测值之间的误差值较大。

李晓久等[11]首先提出了基于多元函数模型的方法来拟合人体的三维尺寸信息,之后刘国联等[12 - 15]分别在此基础上,针对不同人体体型的差异性对算法进行了改进,但仅依据人体各部位的宽度和厚度之间的比值关系划分阈值区间。在实际拟合过程中,模型的鲁棒性不强,且拟合的围度信息为该阈值区间的均值信息,无法体现人体自身的异构性。

Alldieck等[16 - 18]提出使用深度相机获取人体深度信息,然后分别通过SMPL(Skinned Muti-Person Linear)模型[19]与Poisson方法[20]重建人体,以获取各个部位的围度信息。但是,由于深度相机的普适性较差,采样人体信息的条件十分苛刻,且重建单个人体模型的时间消耗超过3 min,导致该方法无法移植到移动端中使用,以致于传统算法难以满足在线测量系统所需要的精度与实时性需求。

为了解决上述问题,近年来,研究人员在处理非线性函数时使用最为普遍的是BP(Back Propagation)神经网络,并且将其广泛应用于预测工作中。然而,传统BP神经网络无法避免容易陷入局部最优、收敛速度慢和初始权值阈值赋予不当等问题[21]。因此,研究人员通过遗传算法GA(Genetic Algorithm)对BP神经网络进行优化。考虑到传统GA算法自身存在“早熟”和迭代后期局部寻优能力差的问题,研究人员通过改进自适应交叉、变异概率对其进行优化,然后基于改进的遗传算法UGA(Upgrade GA)确定BP网络的结构并优化初始权值和阈值,解决了传统GA-BP模型易陷入局部最优的问题。接下来,再利用马尔科夫残差模型对UGA-BP模型预测的围度信息进行优化,以获取更高的精度。

综上,本文提出了一种改进GA-BP-MC(UGA-BP-MC)的人体三维尺寸预测模型。通过混合UGA算法和马尔科夫链的方法,解决了BP网络连接权值、阈值和自身结构难以确定的问题,并且解决了传统GA-BP模型易陷入局部最优和预测精度差的问题。最后将该模型应用于实际案例中,通过与超椭圆曲线法[10]、多元函数模型[14]、GA-BP神经网络模型进行对比分析,验证了该模型的鲁棒性和预测的精确性。

Figure 1 Flow chart of the method for predicting human 3D size based on UGA-BP-MC model图1 基于UGA-BP-MC模型预测人体三维尺寸的流程图

2 UGA-BP-MC神经网络模型基本框架

UGA-BP-MC神经网络模型的基本框架如图1所示。从图1可知,人体三维尺寸预测主要分为以下几个步骤:体型分类、基于ABSS算法[7]对结构关键区域自适应分割、多特征尺寸提取、UGA-BP模型和马尔科夫模型训练 。

3 BP神经网络和遗传算法

3.1 BP神经网络结构

BP网络主要由输入层、输出层和一层或多层隐含层3个部分构成,如图2所示。其中,x1~x5为网络的输入,分别为性别S、身高H、X围的宽度、X围的厚度以及X围与身高的比例系数R(其中X表示为颈、胸、腰部等具有三维属性的人体部位),Y1为输出值即围度信息,ωni、ωnj和pij分别代表输入层与第一层隐含层、最后一层隐含层和输出层、隐含层之间的权值,其中n=1,2,…,5(ω1i为输入x1与第一隐含层之间的各权值)。αi、βi和χ分别代表输入层与第一层隐含层、最后一层隐含层和输出层、隐含层之间的阈值。

Figure 2 Multi-layer BP neural network model图2 多层BP神经网络模型

3.2 遗传算法

遗传算法GA是基于自然选择和遗传理论的随机优化算法,来源于生物界的自然选择和进化机制,主要通过编码、种群初始化,利用选择、交叉和变异等算子的操作[22]对所有个体进行筛选,根据适应度函数对每个候选个体的评估和选择来淘汰适应度较差的个体,从而保留优秀的个体。具体流程图如图3所示。

Figure 3 Flow chart of GA图3 GA算法流程图

4 改进GA-BP-MC网络模型

4.1 改进GA算法的自适应交叉和变异概率

遗传算法中的交叉算子主要用于产生新的个体,而变异算子的主要作用是增加种群的多样性,以达到扩大种群规模的作用,2种算子相互结合可以提升算法的全局寻优能力。在通常情况下,传统遗传算法交叉算子和变异算子中的概率被设置为一个固定值。显然,这一设定策略没有考虑到种群中个体初期适应性较差、变异概率高、后期适应度强、变异概率低这一动态变化的情况,以致于传统遗传算法在收敛后期的局部寻优能力较差。

目前,邢志伟等[23,24]分别单独依据个体适应度或算法迭代次数对传统算法中的交叉概率和变异概率进行了改进。本文将个体适应度值和算法迭代次数这两者作为限制因素,对传统GA算法的交叉概率和变异概率进行自适应调整。

对于交叉概率而言,考虑初始种群个体的适应性差,所以应设定较大的交叉概率,尽可能对个体的基因进行更新,以获取更多携带优良基因的个体。后期个体的表现较好(适应度高),大部分的优秀基因已经被确定,所以应该设定较小的交叉概率,以提升算法的局部收敛速度。具体设定表达式如式(1)所示:

(1)

其中,t为算法的当前迭代数;P(t)c为第t次迭代时的交叉概率;Pcmax与Pcmin分别为最大交叉概率和最小交叉概率,取值为0.8与0.2;Tmax为算法的总迭代次数;f(t)a,f(t)max,f(t)min和f(t)avg分别为第t次迭代时个体适应度、种群适应度的最大值、种群适应度的最小值和种群适应度的平均值。由式(1)可以看出,当算法迭代初期且个体适应度低于种群最小适应度时,交叉概率大,反之亦然,并且随着迭代次数的增加,也会使得交叉概率随之降低。

遗传算法中变异算子的主要作用是增加种群的多样性,以加强算法的全局寻优能力。种群个体前期变异概率较大,然而在迭代后个体基本趋于稳定(适应度高),相对应的变异概率也会降低。所以,变异概率的设计基本与交叉概率在变化趋势上是一致的,设定表达式如式(2)所示:

(2)

其中,Tmax,f(t)a,f(t)max,f(t)min,f(t)avg和t的含义与式(1)的一致,P(t)m为第t次迭代时的变异概率,Pmmax与Pmmin分别为最大变异概率和最小变异概率,取值为0.008与0.002。同样,根据式(2)设计的自适应变异概率在算法初期的值较大,随着迭代次数和个体适应度的增加,变异概率随之减小。

4.2 改进GA-BP模型

利用改进的自适应交叉概率和变异概率的遗传算法来确定BP网络的自身结构和优化初始权值阈值的具体步骤如下所示:

步骤1数据处理,对训练样本数据进行归一化处理。

步骤2对BP网络的隐含层神经元个数和权值阈值分别进行编码形成2层染色体结构[23]。本文BP网络为5个输入,1个输出,隐含层神经元节点个数为M,即单层BP网络为5-M-1结构。

第1层:参数基因处于下层,控制优化BP网络的权值与阈值,无需采用0/1机制,即权值阈值的编码长度为:

Length=5·M+M·1+M+1=7M+1

第2层:对照基因处于上层,控制BP网络的自身结构,采用0/1二进制编码机制决定隐含层的某个神经元是否有效,0代表失活即对应的隐含层神经元不产生影响,1代表活化。即BP网络隐含层神经元个数的编码长度应在权值阈值的基础上增加M,即编码长度为:

Length=M+5·M+M·1+M+1=8M+1

步骤3设置种群规模N和总迭代次数Tmax。

步骤4对步骤2进行解码,根据上层结构统计的活化基因即可确定BP网络的隐含层神经元个数,下层可确定BP网络的权值阈值,最后形成多种不同结构的BP神经网络作为待选结构。

步骤5将步骤1中处理的训练样本数据作为输入,测试得到的待选BP神经网络,并计算网络误差,若误差无法满足需求即转步骤6,否则转步骤9。

步骤6确定种群中个体的适应度函数,将实际输出值和期望输出值之差的平方和作为适应度函数F:

步骤7对种群进行选择操作、改进的交叉操作和变异操作,产生新的优秀个体,形成新的后代种群。

步骤8解码后代种群的2层染色体结构,获得BP网络的隐含层神经元个数和权值阈值,计算网络误差,并计算个体适应度,若个体适应度无法满足需求但仍处于遗传代数迭代范围内,转步骤4,否则转步骤9。

步骤10当I型与II型网络超出迭代次数或者误差满足设定需求时,对比I型与II型网络的误差,保留误差最小的BP神经网络。

改进GA-BP模型的具体流程图如图4所示。

Figure 4 Flow chart of UGA-BP model图4 UGA-BP模型流程图

4.3 马尔科夫残差模型

马尔科夫链MC(Markov Chain)[25]通过状态转移概率矩阵得到系统未来可能达到某种状态的概率,适用于随机波动性较大和受多种因素影响的样本序列。

利用马尔科夫链分析实测尺寸信息与预测值之间的相对误差比的波动规律,对UGA-BP神经网络模型的预测值进行修正。具体步骤如下所示:

步骤1根据状态划分:根据 UGA-BP 神经网络模型预测值的相对误差比,采用最值均方差法将相对误差区间分成q个状态[26],生成状态序列S1,S2,…,Sq。其中状态q的计算方法如式(3)所示:

q=EVEN(d/σ)

(3)

步骤2以前Ni次UGA-BP循环输出的预测值与实测值的残差数列作为基准数据,输入马尔科残差模型,用马尔科夫链对预测值进行优化,利用黄金分割率原理[27],按照式(4)计算残差值分割单位的长度:

(4)

步骤3计算马尔科夫链的状态转移矩阵,如式(5)所示:

(5)

步骤4选择离预测时刻最近的前3个时刻,合计概率最大的状态区间为下一个时刻可能出现的状态区间。其中时刻x的状态转移矩阵如式(6)所示:

(6)

步骤5确定该状态空间的中点值为马尔科夫链预测值,如式(7)进行:

(7)

其中,g(x)为通过马尔科夫残差模型优化的最终值,Δ为相对误差比,ΔU和ΔD分别为某一变动区间的上下限值,f(x)为UGA-BP神经网络的输出值。

Figure 5 Flow chart of UGA-BP-MC neural network model图5 UGA-BP-MC神经网络模型流程图

其中,UGA-BP神经网络的结构不变,在此基础之上,增加马尔科夫残差模型:(1)计算UGA-BP神经网络模型输出的预测值和真实值之间的残差。(2)将残差数列输入到马尔科夫残差网络模型中进行训练。(3)利用马尔科夫残差网络对UGA-BP的预测值进行优化,并输出最终结果。马尔科夫残差模型和改进遗传算法优化BP神经网络模型的过程如图5所示。

5 实验分析及模型对比

本次实验过程中,一共实地拍摄了210组实验样本(包括学生、警察、法院工作人员)。首先为了检验UGA-BP-MC模型的性能,将UGA-BP-MC与GA-BP和BP进行实例分析。

其次,为了验证该模型的鲁棒性和实时性,本文随机选取10组样本对训练好的UGA-BP-MC模型与GA-BP模型、超椭圆曲线法[10]和多元函数模型[14]进行预测结果分析和对比。

设定BP、GA-BP和UGA-BP模型训练迭代次数均为100次,目标误差均为0.003,并且设定遗传算法的种群规模为N=50,遗传代数为Tmax=100,最大变异概率Pmmax=0.008,最小变异概率Pmmin=0.002,最大交叉概率Pcmax=0.8,最小交叉概率Pcmin=0.2,选择概率为0.08。

实验环境为:Windows 10操作系统,E5-1620v4 3.5 GHz处理器,6 GB内存,NVIDIA 1080显卡。

5.1 UGA-BP神经网络模型的性能对比

将传统GA算法与UGA算法进行对比,利用改进的自适应交叉概率和变异概率来解决传统GA算法收敛速度慢和迭代后期局部寻优能力差的问题,并且利用UGA算法在优化BP网络初始权值和阈值的同时,确定BP网络的隐含层神经元个数。

由图6可以看出,UGA算法相对于传统GA算法寻优能力有着显著的提升。传统GA算法在66次迭代之后陷入局部最优,UGA算法在53次迭代后获得最优适应度,且相对于传统GA算法,UGA算法的收敛速度更快。如图7所示,当迭代到53次后,对应隐含层神经元个数为6,因此网络最佳隐含层神经元个数为6。

Figure 6 Fitness changes of UGA and GA algorithms图6 UGA与传统GA算法适应度变化

Figure 7 Change curve of the number of neurons in the hidden layer 图7 隐含层神经元个数变化曲线

基于隐含层神经元个数构建I型、II型BP神经网络,计算得到的网络误差曲线如图8所示。

Figure 8 Variation curves of type I and type II BP network training error图8 I型与II型BP网络训练误差变化曲线

图8对I型、II型BP神经网络的误差分析表明,II型BP神经网络在56次迭代之后的训练误差更低。所以,本文选定II型BP神经网络为该模型的最优网络结构,即为5-3-3-1结构的BP神经网络。

5.2 马尔科夫残差模型

从正常体型样本中随机抽取23组用户的颈围实测数据,通过UGA-BP-MC神经网络预测模型,利用前20组数据滚动式[28]地预测后3组数据,将1~7组用户数据信息作为神经网络的输入,第8组为网络输出,然后以2~8组预测第9组的数据信息,UGA-BP预测值如表1所示。最后将UGA-BP的预测值用马尔科夫残差模型进行修正,以获得UGA-BP-MC模型的预测值。

Table 1 Experimental data and state division表1 实验数据及状态划分

根据式(3)将人体实测的三维尺寸信息与UGA-BP模型输出的预测值之间的相对误差比的取值划分成4个状态,状态区间如表2所示。根据表2中的状态区间将实测值与UGA-BP模型预测值的相对误差比划分成不同的状态序列:[3,2,4,3,2,4,3,2,3,1,3,2,3,4],然后依据式(5)可得出一步、二步和三步的状态转移矩阵,如表3所示。

Table 2 State partition interval表2 状态划分区间

Table 3 State transition matrix表3 状态转移矩阵

以第22次测量为例,选取与之最近的3个样本预测其误差区间所处于的状态,结果如表4所示。

Table 4 Prediction of relative error state of the 22nd measurement表4 第22次测量相对误差状态预测

由表4可知,相对误差处于状态S3的可能性最大,对应的状态误差区间为[-0.063 14,0.015 44),根据式(7),可以得到通过马尔科夫残差修正模型输出的值为:

0.97615×32.315=31.544 cm

该值比表1中UGA-BP预测值的精度提升了0.771 cm。然后将状态S3加入原始样本序列中,并剔除第1个数据,添加新的数据构成样本序列再进行下一次状态预测。其中BP、UGA-BP和UGA-BP-MC模型对最后3个样本的预测误差分析如表5所示。

5.3 模型对比分析

传统超椭圆曲线法通过单一模板对人体围度数据进行拟合,在实际测量过程中发现拟合程度不高,并且在测量极端体型用户的过程中,拟合数据与实测值的偏差较大。

多元函数模型是目前运用最广泛的三维人体尺寸拟合模型,目前经过改良的多元函数拟合的方法针对人体体型的差异,基于身体各部位的宽厚比例作为分类的依据,虽然提升了拟合精度,但拟合的结果是该类体型用户的均值信息,无法表现人体自身的异构性。

对于传统BP神经网络模型而言,模型预测的精度较差,无法满足人体着装的需求。UGA-BP-MC神经网络模型通过改进GA算法优化BP网络的结构、初始权值和阈值,提升了传统GA算法在迭代后期的局部寻优能力,并且解决了BP神经网络自身结构难以确定和易陷入局部最优的问题。采用马尔科夫残差模型对UGA-BP神经网络模型输出的预测值进行优化,解决了传统模型预测误差较大的问题,使模型误差整体符合ISO 8559-1[29]中规定的人体着装围度尺寸最大误差需求(小于4 cm)。并且整个过程中无需手工操作,提升了模型的普适性。图9为超椭圆曲线法、多元函数模型、GA-BP神经网络模型和UGA-BP-MC模型针对随机抽取的10组各部位样本的预测结果分析。

Table 5 Comparative analysis of predicted values of different models表5 不同模型预测值对比分析

Figure 9 Prediction curves of different models图9 不同模型预测值曲线

5.4 预测结果评价标准

为进一步分析本文建立模型的预测精度,采用均方根误差(RMSE)、平均绝对百分比(MAPE)和误差绝对值均值(MAE)对模型的性能进行评价,如式(8)~式(10)所示。具体性能指标对比如表6所示。

(8)

(9)

(10)

通过图9和表6可知,虽然UGA-BP-MC增加了时间损耗,但是相对于超椭圆曲线法、多元函数模型、GA-BP模型,平均误差分别减少了2.8 cm,1.62 cm和0.94 cm。并且,UGA-BP-MC模型针对各部位的最大误差不超过4 cm,小于人体着装围度的最大误差。并且相对于传统算法,UGA-BP-MC模型各个部位的RMSE、MAPE和MAE都有着一定的提升,具体数值如表7所示。

Table 6 Performance analysis of different models表6 不同模型性能分析

Table 7 Comparison of prediction accuracy of each prediction model表7 各预测模型预测精度比较

6 结束语

本文提出了一种UGA-BP-MC神经网络模型并用于人体三维尺寸预测中,通过改进GA算法的交叉概率和变异概率解决了传统GA算法在迭代后期局部寻优能力差的问题;然后基于UGA算法确定BP神经网络模型的自身网络结构和优化初始权值和阈值;接下来,利用马尔科夫残差模型对UGA-BP的预测值进行修正,解决了传统GA-BP模型预测值误差较大的问题。

实验选取实地拍摄的210组样本(包括学生、警察、法院工作人员)对GA-BP-MC模型的精确性、鲁棒性和实时性进行了论证。实验结果表明,UGA-BP-MC神经网络模型预测的平均误差为±2.15 cm,最大误差为-3.88 cm,单个样本耗时不超过1.4 s。在满足移动终端对实时性要求的同时,相对于传统模型,UGA-BP-MC神经网络模型在尺寸预测的精度上有着显著的提升,使预测误差范围小于人体着装围度的最大误差要求。

BP神经网络虽然结构简单,时间消耗少,但相对于RBF或Elman神经网络,其全局稳定性较弱,并且粒子群优化算法和新提出的鲸鱼优化算法相对于传统GA算法有着更优的寻优能力,因此下一步将会对提出的2个改进方向进行实验研究,寻找更优的人体围度尺寸预测模型。

猜你喜欢

马尔科夫适应度残差
改进的自适应复制、交叉和突变遗传算法
基于双向GRU与残差拟合的车辆跟驰建模
基于叠加马尔科夫链的边坡位移预测研究
基于残差学习的自适应无人机目标跟踪算法
基于改进的灰色-马尔科夫模型在风机沉降中的应用
基于递归残差网络的图像超分辨率重建
一种基于改进适应度的多机器人协作策略
基于空调导风板成型工艺的Kriging模型适应度研究
马尔科夫链在教学评价中的应用
平稳自相关过程的残差累积和控制图