基于局部线性嵌入极限学习机的人脸识别新方法
2020-03-13刘太安樊建聪孙小川刘欣颖
王 波 刘太安,2* 樊建聪* 孙小川 刘欣颖,2
1(山东科技大学计算机科学与工程学院 山东 青岛 266590)2(山东科技大学信息工程系 山东 泰安 271019)
0 引 言
近二十年来,识别技术快速发展。例如,Huang等提出了基于ELM算法的交通标志识别方法[1]。而人脸识别更是被广泛应用于安全验证系统、人机交互、视频监控系统、公共安全系统,机器人智能化等方面[2-4]。人脸识别的方法也成多样化发展,如高晴等提出基于模糊聚类的LLE和SVM的方法,将模糊聚类方法引入LLE算法,定义样本的近似重构系数,进行局部重建矩阵,并结合SVM算法实现人脸识别,提高了识别率[5]。Liu等提出将最小二乘法与稀疏矩阵算法结合表示人脸局部结构的方法,对面部分区后的局部区分类,通过LS和CRC计算局部区类别,综合结果后再对人脸分类,该方法对复杂图片的鲁棒性强[6]。周静等提出了新迭代规则的CNMF人脸识别,新迭代规则由引入的阈值稀疏约束获得,通过基于该规则的稀疏CNMF分解训练样本和测试样本,分别得到相应的权值矩阵,再由SVM分类识别,有效地提高了识别率和速率[7]。
此外,还有基于深度学习的方法,如余丹等提出的卷积神经网络与ELM相结合的人脸识别方法,固定卷积神经网络部分卷积核,再用其提取人脸特征,最后用ELM分类识别,减少了参数,提高了分类精度[8]。黄良辉等提出的轻量级卷积神经网络的人脸识别方法,利用基于MobileNet的轻量级卷积神经网络提取特征,用SSD目标检测器进行识别,提高了识别率[9]。陈响提出基于YOLO v2实时识别监控视频中的人脸,该方法通过YOLO v2算法提取视频中的关键帧,对人脸实时识别,提高了识别速率和准确率[10]。人脸识别经过不断的发展,准确率已经很高。NIST在2018年发布的成绩表明,现在全球最高水平的人脸识别技术为千万分之一误报下的识别准确率接近99%[11]。
人脸识别有四个步骤:图片预处理、提取特征、特征表达、分类识别。其中,特征提取和分类识别是两个关键步骤。现在,在训练识别模型时会提供大量的多姿态和表情的人脸图像,特征提取就是通过某种方法对原图片降维,而且降维后的特征向量能够准确地表示原始图像包含的某种信息[12]。降维方法包含线性和非线性两类,常用的有主成分分析(PCA)[13]、线性判别分析(LDA)、局部线性嵌入(LLE)[14]、拉普拉斯映射(LE)等。而分类识别是识别最后步骤,为了准确地识别人脸,提高人脸识别率,需要选择合适的分类识别算法。常用的方法有支持向量机(SVM)[15]、极限学习机(ELM)[16]、BP神经网络等。
本文提出基于LLE-ELM的人脸识别方法。将LLE和ELM结合起来应用于人脸识别。首先,利用LLE算法对原始人脸图像提取特征,通过寻找人脸图像中样本点的最近邻点,计算该点局部重建权值矩阵,将高维数据转换为保持了原有特征结构的低维数据,再将特征数据传递给ELM算法,通过单隐层的ELM网络快速计算降维后数据的输出权重,将该权重用于测试数据,最终实现人脸识别。输出识别准确率、识别时长。
1 LLE与ELM算法
1.1 局部线性嵌入(LLE)算法
LLE算法思想是:表示原数据的局部线性,并在降维空间中保持这种局部线性。算法步骤是:
(1) 在高维空间中寻找每个样本点的k个最近邻点。
通常最近邻点使用欧式距离公式表示,见式:
(1)
(2) 由每个样本点的近邻点计算出该样本点的局部重建权值矩阵。
假设有N个D维样本X={x1,x2,…,xN},可用均方差作回归问题的损失函数并矩阵化,有:
(2)
(3)
式中:Q(i)表示xi的k个近邻样本集合;wij为权重系数; 1k为全1向量。对式(2)、式(3)矩阵化后,通过拉格朗日子乘法,对W求导,可以得到式(4):
(4)
(3) 由样本点的局部重建权值W和其近邻点k计算出该样本点的输出值。
将样本点映射嵌入到低维空间中并矩阵化,有:
(5)
(6)
(7)
式中:J(Y)为损失函数;Ii、Wi表示矩阵I、W的第i列;M=(I-W)(I-W)T;Y=[y1,y2,…,yN];tr为迹函数。通过拉格朗日子乘法,对式(5)中Y求导,有2MYT+2λYT=0。输出M最小的d个非零特征值对应的特征向量,通常取2~(d+1)个特征向量Y=(y2,y3,…,yd+1)T。
1.2 极限学习机(ELM)算法
ELM算法可以随机初始化输入权重和偏置值,并得到相应的输出权重,是一种快速学习算法[18]。
假设有N个任意样本(Xi,Ti),其中Xi=[xi1,xi2,…,xin]T∈RN为输入,Ti=[ti1,ti2,…,tim]T∈Rm为输出,有L个节点的神经网络可表示为:
(8)
式中:Wi为输入权重,βi为输出权重,bi是偏置值,g为激活函数。Wi·Xi表示内积。可矩阵表示为:
Hβ=T
(9)
式中:H是求得的输出,β为输出权重,T为期望的输出。
(10)
(11)
(12)
(13)
当输入权重Wi和偏置bi被随机确定后,输出矩阵H就被唯一确定。单隐层神经网络训练可转化为求解式(11),输出权重β也可以确定:
(14)
H+是H的广义逆矩阵,可通过正交映射法得到。
ELM算法训练过程如图1所示。
图1 ELM算法训练图
算法步骤如下:
(1) 输入训练样本、隐层节点个数L、激活函数g。
(2) 随机初始化输入权值W、神经元偏置值b。
(3) 选择合适的激活函数g,计算隐层的输出H。
(4) 计算输出层权重β。
测试过程:
(1) 输入测试样本。
(2) 根据训练中求出的输出权值矩阵β及对应的Wi、bi估计测试数据的标签。
(3) 确定数据所属类别,求出识别率及识别时间。
2 基于局部线性嵌入的极限学习机
局部线性嵌入(LLE)算法在复杂图像处理方面有很大优势。它参数少,使用简单,且用局部的线性反映全局的非线性可以很好地表达数据内部的流形结构。算法中的优化不涉及到局部最小化,使数据能保持原有数据的拓扑结构[19],很好地保留原数据的特征。由于它的这种优点,LLE算法已经广泛应用于非线性数据的降维方面,尤其是对内容复杂的图像的降维[20]。
极限学习机(ELM)作为一种前馈神经网络的单隐层机器学习算法是由Huang等学者提出[21],在分类识别方面,它的优势在于只需要在进行样本训练前设置隐藏层神经单元的个数,输入权值和偏置向量为随机产生,最后得到唯一最优的输出权值。ELM学习速度快,泛化性能好,尤其是在人脸识别中,识别速度非常快。基于ELM的优势,本文选取ELM为分类识别算法。
但ELM对噪声鲁棒性不强,对于某些有遮挡、光照变化等情况的人脸图像,识别率会急剧下降。需要对复杂图像处理效果明显的降维算法加以弥补。为了解决这一问题,闫德勤教授及其学生王博林提出将SSLPP方法与ELM结合的方法[22],Li等在ELM的基础上提出以CNN为特征源,ELM为识别框架的图片识别方法[23]。
而本文在综合LLE算法的优点后,提出将LLE算法引入ELM算法中,用LLE算法提取特征,ELM分类算法为识别框架的LLE-ELM算法来解决这一问题。LLE-ELM算法综合了二者的优点:初始需要设置的参数少且简单,得到维数少且特征结构清晰的降维数据,单隐层学习速度快、泛化性能好,学习过程复杂性降低,并且ELM算法的精度提高。引入LLE算法后的LLE-ELM算法,弥补了ELM算法缺点的同时提高人脸的识别率和识别速度。
融合LLE算法后的LLE-ELM人脸识别过程如图2所示。
图2 基于LLE-ELM算法的人脸识别图
算法步骤如下:
(1) 输入原始数据,设置初始参数,用LLE算法将图片的高维空间数据点按维数映射到低维嵌入空间,构造图片新因子,输出原始数据的低维特征数据。
(2) 将新因子作为ELM算法的输入变量,设置ELM算法的初始输入权重和偏置值,建立基于LLE-ELM算法的图片分类模型。
(3) 输出识别准确率及识别时长。
LLE-ELM算法的参数选取主要包括两方面:一是LLE算法的合适的样本点的k个近邻点和降维后的输出维数d。若k值过大,会使LLE算法趋向于PCA算法,取值过小,则不能保持样本点在低维空间的拓扑结构。而d取值过大会使降维结果中含有过多的噪声,取值过小,会致使本来不同的点在低维空间可能会彼此交叠[24]。因此,综合后本文k值按照其他实验中的经验值6~18[25]选取,d值按文献[17]的欧式距离法选取。二是ELM算法中隐层节点个数L和激活函数的选择。激活函数选取常用的sig函数,而L通过以下实验选择,如图3所示,ORL人脸库为实验数据,隐层节点个数取10、20、30、40、50、60、70、80、90、100,激活函数选取sig函数,进行50次的平均结果分析最佳节点个数。
(a) 不同节点数的准确率(b) 不同节点数的识别时间图3 不同节点数时的实验结果
如图3(a)所示,隐层节点数从30开始,精度超过50%,在超过100后,增幅减小趋近100%。而图3(b)所示,隐层节点设置在30~80,较平稳,之后增幅加大,因此,综合考虑,隐藏节点在30~80之间选取。
3 实验结果及分析
实验环境:MATLAB R2016a为实验平台。计算机配置:Intel(R) CoreTMi5-6200U CPU @2.30 GHz 2.40 GHz为处理器,4.00 GB内存与Windows 10操作系统。通过与PCA算法、SVM算法及卷积神经网络(CNN)对比,得到LLE算法、ELM算法以及LLE-ELM算法的人脸识别结果。选取ORL人脸数据库、Yale人脸数据库、AR人脸数据库和部分CASIA-WEBFACE人脸数据库作为人脸数据集,数据集的详细信息如表1所示。
表1 人脸库信息表
实验的训练数据和测试数据分配情况如表2所示。
表2 实验数据集分配表
表2是选取的实验数据分配情况,每种数据的训练集、测试集的数量都是数据集的50%。四种数据集的数量各不相同,以此检验算法对不同数量数据集的识别效果。
3.1 LLE算法的对比实验
本文选取局部线性嵌入算法(LLE),k值为6~18,d值按欧式距离法选取。其对照选取应用广泛的主成分分析算法(PCA),以相同的ELM算法为降维后的数据的分类算法,ELM神经网络的隐含层的神经元个数从30~80中选取,激活函数为sig函数。选取ORL人脸库和Yale人脸库作为原始数据,训练集与测试集的数量如表2所示。实验结果如表3所示。
表3 ORL及Yale数据集上的人脸识别率
由表3中的数据可以看出,在ORL数据集中,使用LLE算法降维与PCA算法降维后,识别率几乎相同,都在90%以上,而在Yale人脸库上识别率较低,且二者相差5%。在识别速度上,无论是那种数据集,LLE算法降维的数据识别更快,识别速度是PCA算法的1.50~1.77倍。综上表明,通过LLE算法和PCA算法得到的数据在表现原始数据特征的能力上基本相同,但是LLE算法的数据识别更快。
3.2 LLE-ELM实验
本文选取ELM算法进行分类识别。旨在保证识别准确率的同时,减少识别的时间。实验证明ELM算法与SVM分类算法相比,能够提高准确率,而且能够减少识别时间。
3.2.1ELM算法的对比实验
ELM与SVM分类算法的对比,确定两种算法对数据进行识别的准确率和速度,实验结果如表4所示。
表4 ELM与SVM的人脸识别率及识别速度
由表4可以看出,在不降维的情况下,ELM算法的识别准确率比SVM高5.94%~6.60%。且ELM的识别时间短,识别速度是SVM算法的11.76~38.35倍。无论在哪种数据库上,ELM算法更有优势,但其识别精度较低,不到90%。
3.2.2LLE-ELM与ELM、SVM、CNN的对比实验
将基于LLE-ELM的人脸识别算法,与ELM算法、SVM算法对比,实验结果如表5所示。
表5 LLE-ELM、ELM、SVM算法对比
由表5可以看出,在本文所选的三种算法中,ELM算法在数据少、中、多的三种人脸数据库中,其识别率在85.27%~94.58%,时间在0.04~2.08 s之间。SVM算法识别率最低,在61.40%~82.50%之间,且识别时间较长,最短为0.44 s,最长为14.94 s,在三种算法中效果最差。而LLE-ELM算法其识别率较高,在90.80%~96.33%之间,时间在0.004 4~0.237 2 s之间。实验结果表明:LLE-ELM算法不管是在识别率上,还是在运行时间上都优于其他两种对比算法。
在简单人脸图片ORL和复杂人脸图片CASIA-WEBFACE上实验,对比实验结果,确定LLE-ELM算法对更接近日常环境中的人脸的处理能力,并与卷积神经网络对比,如表6所示。
表6 LLE-ELM算法与CNN对比
由表6可得,在两种数据集上LLE-ELM识别率为93.17%~96.33%,识别时间为0.005 9~0.488 0 s。而CNN识别率为90.00%~93.75%,一次迭代所用时间为0.872 5~1.113 3 s。实验结果表明,LLE-ELM算法的识别率与卷积神经网络都超过90%,且相差不大,只有2.58%~3.17%,并且对复杂图片的识别能力较好,识别时间远少于卷积神经网络。
4 结 语
本文将LLE算法与ELM算法相结合,设计了基于LLE-ELM的人脸识别算法,通过实验验证可以得出以下结论:
(1) LLE算法在对数据进行特征提取方面比常用的PCA算法,速度更快,而且识别精度较高。另外,由于影响人脸的因素较多,利用LLE算法处理非线性数据效果好的优点,能更好地挖掘图像中的人脸特征,提高分类精度。
(2) 由于ELM算法单隐层模式及其输入权值随机赋给,所以不需要提前设置输入权值,使得算法应用简单,计算速度快。但也说明其权值并非是最优值,因此,可能会对ELM算法精度有影响,有待改进。
(3) 基于LLE-ELM的人脸识别算法与ELM算法、SVM算法和CNN算法相比,不仅提高了识别率,而且大幅度缩短了识别所用的时间,提高了识别的速度。