付浩海,赵鹏飞,侯月武,赵梦梦,巩玉影,刘 伟
(长春工程学院计算机技术与工程学院,长春 130012)
通过计算机对人脸进行分析,从而确定身份的技术统称为人脸识别,是近40年来学术界一直关注的一个焦点。它广泛应用于自动识别系统、人机交互系统、身份防伪识别系统、安全验证系统和休闲娱乐系统等。相对于依赖人体其他特征,如常见的指纹、掌纹、虹膜、步态和语音等识别技术,人脸识别由于采用非接触式的自动图像采集方式,使参与者比较容易接受。
人脸识别的基本步骤包括图像预处理、特征选择和提取、分类。
步骤1:图像预处理。人脸图像预处理是指降低人脸关键信息受噪声、遮挡、旋转和光照强度等的影响,降低人脸特征无关信息的干扰,降低人脸关键特征提取的难度和计算复杂度。图像预处理手段有去噪、增强、尺度缩放等。
步骤2:特征选择和提取。人脸的典型特征一般包括数值特征、几何特征、拓扑结构特征和变换系数特征等,相对于直接对人脸原始数据进行处理,特征提取能有效降低人脸图像的复杂度,降低人脸图像的维数,提高了识别速度。
步骤3:识别。指的是借助算法将输入人脸与人脸数据库中的数据特征进行对比,确定人脸所属类别。选择合适的分类算法是提高分类精确度的关键,从根本上决定了分类结果的优秀与否。伴随着机器学习研究的开展,业界先后提出了人工神经网络、支持向量机、最小二乘支持向量机等算法。
本文着重研究基于最小二乘支持向量机的人脸识别算法。在对人脸图像进行预处理的基础上,采用奇异值分解扩展算法提取人脸图像奇异值特征,然后再利用最小二乘支持向量机对人脸图像的特征进行分类。
1995年,Vapnik等人率先提出了支持向量机(Support Vector Machine,SVM)思想。它具有升维、线性化和对小样本分类的优点。一个支持向量机构造一个超平面,在高维或无限维空间,其可以用于分类、回归,或其他任务中设定的超平面,具有较好的泛化能力。
最小二乘支持向量机(Least Square Support Vector Machine,LS-SVM)是支持向量机的一种改进算法。LSSVM和SVM的区别在于,LSSVM把原方法的不等式约束变为等式约束,从而大大方便了Lagrange乘子的求解,原问题是QP问题,而在LSSVM中则是一个解线性方程组的问题。使得在满足极值条件的情况下,降低了计算的复杂性,提高了泛化能力和求解速度,能有效应用于模式识别和函数估计。
假设训练样本Ti={Xi,yi},i=1,2,…,n,其中Xi∈Rm,是m维输入向量,yi∈{+1,-1}为样本类别,n为训练样本的容量,对标准支持向量机优化问题的约束条件进行改造,并将经验风险函数改为二次函数,问题模型描述如公式(1)所示。
(1)
s.t.γi·[ωT·φ(xi)+b]=1-eii=1,…,n,
式中:ω为超平面方向向量;φ(xi)为从样本输入空间到特征空间的映射函数;ei为xi的松弛系数;γ为边际系数。对偶问题可通过构造其对应的Lagrange函数并求解得出。本问题的Lagrange函数式见公式(2)。
yi[ωT·φ(xi)+b]=1-ei,
(2)
式中ai为Lagrange乘子。
算法1:最小二乘支持向量机算法。
1)输入训练样本。
2)计算核函数类型。
3)计算核矩阵核Ω。核矩阵的推导需要借助训练数据、核函数以及核参数等数据。
4)数据标准化,求解α与b的值。由训练数据(或测试数据)矩阵,构造系数矩阵,解线性方程组(公式(3)),得系数向量α=(α1,…,αn)和b。
(3)
式中:I为n维单位矩阵;E为值为1的n维列向量;Ω为n维对称方阵,其元素Ωi,j=yiyj(xi)T·φ(xj),φ(xi)Tφ(xj)=k(xi,xj),k(xi,xj)为核函数;γ为惩罚因子。
5)计算分类超平面和判别函数。得到α与b的值后,通过式(4)计算分类超平面。然后可以通过训练出的分类超平面公式(5)的判别函数决定被分类向量X的类别。
(4)
(5)
式中sgn(·)为符号函数。
人脸识别本质上是一个多类分类任务。支持向量机是针对分类为两类任务的样本而设计的,必须对支持向量机进行组合才能解决多类分类问题。组合策略一般分为两种:“一对多”策略,即通过一个分类器将每一类与剩下所有类别区分开来;“一对一”策略,即通过一个分类器将两个类别对区分开来,进而构成多个LS-SVM分类器来完成分类。我们采用“一对一”算法组合LS-SVM的思想,然后对分类结果进行投票计数,得票最多的类即为样本点所属的类。
算法2:基于LS-SVM的人脸识别算法。
1)构造训练人脸库并进行预处理。
2)计算每幅图像的协方差矩阵。
3)计算特征值和特征向量。
4)重新排序特征值,取部分特征向量构成特征子空间。
5)设计分类器。针对不同的人脸图像,构造出两类最小二乘支持向量机分类器。分别用每个分类器进行计算类别,并将相应类别计数加1,直到所有分类器分类完成,得票最多的类为测试样本所属的类。
算法对应分类框架如图1所示。
图1 基于LS-SVM的人脸分类框架
本文实验的硬件平台是普通的PC,Intel Core i5 CPU,8G内存。使用Matlab对以上算法进行仿真验证,并采用了LS-SVM工具箱。测试集和训练集采用ORL(Olivene Research Lab)训练和测试数据库,ORL数据库一共采集了40个人不同时期的脸部图像,每个人都包括有着不同程度变化的脸部表情和脸部细节的10幅图像,同一个人在面部表情和面部细节上都有着或多或少的差异,每幅图像的分辨率为112×92。
根据对SVD特征数据集的分类测试,同时为确保实验的合理性和完整性,本实验分为4组,具体内容与实验步骤如下:
实验1:随机抽取人脸数据库中的一组人脸中一半数量的图像(5幅)作为训练数据,然后再用同样的人脸图像(5幅)作为测试数据,识别准确率为100%。
图2 ORL数据库中某个人脸图像
实验2:随机抽取人脸数据库中的一组人脸中一半数量的图像(5幅)作为训练数据,然后用同组人脸中另外一半人脸图像(5幅)作为测试数据,识别准确率为80%。
实验3:随机抽取人脸图像数据库中任意10组,每组选择一幅图像,将此10幅图像同时作为训练数据和测试数据,识别准确率为100%。
实验4:随机抽取人脸图像数据库中任意10组,每组选择一幅图像作为训练数据,然后再在上述10组中各抽取一幅与训练数据不同的图像作为测试数据,识别准确率为70%。
本文首先介绍了支持向量机和最小二乘支持向量机的基本思想和数学模型,推导了最小二乘支持向量机的算法步骤,接着介绍了基于LS-SVM的多类分类方法,设计了基于LS-SVM的人脸识别算法。最后,在以上理论和算法基础之上,使用Matlab以及LS-SVM工具箱基于ORL人脸数据库进行了实验仿真,对实验结果进行分析表明基于最小二乘支持向量机的算法可以对人脸图像的代数特征进行有效分类,对解决小样本分类问题是有效的、可行的。
[1] 徐静妹,李雷.基于稀疏表示和支持向量机的人脸识别算法[J].计算机技术与发展,2018,28(2):59-63.
[2] 何晨光,贺思德,董志民.最小二乘支持向量机在人脸识别中的应用[J].云南大学学报:自然科学版,2008,30(3):239-245.
[3] 田海军.基于支持向量机的人脸识别技术研究与实现[D].长沙:国防科学技术大学,2009.
[4] 王玉德,张学志,封玲娟.基于支持向量机的人脸识别算法研究[J].科学技术与工程,2011,11(34):8624-8626.
[5] Pelckmans K,Suykens J A K,Van Gestel T,et al.LS-SVMlab Toolbox User’s Guide[J/OL].[2018-01-20].http://www.esat.kuleuven.ac.be/sista/LS-SVMlab.
[6] 李方方,赵英凯,颜昕.基于Matlab的最小二乘支持向量机的工具箱及其应用[J].计算机应用,2006,26(12):358-360.
[7] 张学工.关于统计学习理论与支持向量机[J].自动化学报,2000(1):32-42.
[8] 刘遵雄,马汝成.基于特征脸和LS-SVM分类器的人脸性别分类[J].华东交通大学学报,2007,24(5):85-88.
[9] 朱家元,陈开陶,张恒喜.最小二乘支持向量机算法研究[J].计算机科学,2003,30(7):157-159.
[10] 刘静.基于小波分析的支持向量机车牌识别技术研究与实现[D].西安:西北大学,2010.