郝 刚,梁 鹏
(广东技术师范学院 计算机科学学院,广东 广州 510665)
伴随着世界科技的不断进步以及各方面对于有效且快速的人员身份验证的迫切需求,生物特征识别技术在近些年得到了蓬勃发展。目前,人体生物特征识别技术主要有虹膜识别、指纹识别、步态识别、人脸识别等。与其他识别技术相比,人脸识别无需使用者做出特别的动作,具有直接、便于交互等特点,容易被使用者接受,在公司安保、考勤、金融安全、档案管理、刑事侦查等方面均已得到广泛地应用。
数十年来,基于全局特征提取的子空间降维方法在人脸识别领域取得了巨大成功,主要包括:主成分分析(PCA)、线性鉴别分析(LDA)、独立分量分析(ICA)等。其中PCA方法是基于K.L变换实现的,被认为是最成功的线性鉴别方法之一。该方法由KIRBY M[1]与TURK M[2]等人提出,首先通过K-L变换将指定的每一幅人脸图像降维至特征子空间中的一个点,生成特征子空间后,任一幅图像均可向其做投影,获得一组投影系数,该组投影系数即可作为人脸匹配的依据[3-4]。
由于传统PCA算法较易受到人物表情、光线等因素影响,设计者往往着重研究如何改进减少随机样本对算法的影响,例如,将样本按照姿态进行分块训练[5]、对样本进行预处理[6]等。但针对多类分类问题时,还应考虑测试样本具体属于哪类样本,甚至可能是未知样本。文献[4]、[7]中通过设定阈值的方式实现对未知样本的分类,但针对多目标已知样本,却采用同样的分类阈值,致使每个二分类问题无法获得最优效率(即识别率和误识率到达一个平衡[8-10])。针对上述问题,本文提出一种基于自适应阈值PCA的多目标人脸识别方法。
假设训练样本中共有M幅灰度人脸图像,每幅图像像素大小均为m×n,若将其从左至右,每列首尾相连,则构成一个D=m×n维的列向量。设第i幅人脸图像形成的一维列向量为Ri,则全部训练样本集的均值μ为:
(1)
接着计算每个人脸向量Ri与平均人脸向量μ的差值图像向量:
Ai=Ri-μ(i=1,2,3,…,M)
(2)
其中,一维列向量Ai表示一个规范化的训练样本,则矩阵A=[A1,A2,…,AM]与AT的乘积即为所有训练样本的协方差矩阵:
C=AAT
(3)
根据K-L变换的原理可知,该训练样本集的特征脸空间将由公式(3)所求出的协方差矩阵C的部分正交特征向量组成。又因协方差矩阵C=AAT,故特意构造矩阵:
L=ATA∈RM×M
(4)
依据奇异值分解原理,计算出矩阵L的特征值λi以及其相应的正交归一特征向量vi(i=1,2,…,M),便可计算出协方差矩阵C的正交归一特征向量ui为:
(5)
将特征值λi及其对应特征向量ui按λ1≥λ2≥…≥λM>0 的顺序排列,利用公式:
(6)
选择前d个特征向量组成特征脸空间,以达到降维效果。其中,α表示特征向量的贡献率,当α的取值确定后,便可求出所需的特征脸空间U=[u1,u2,…,ud],最后将规范化后的训练样本矩阵A投影在新空间U上,求得新的投影系数矩阵作为人脸匹配依据。
进行多目标人脸识别时,所用训练样本集由多个人的人脸图像构成,多目标分类问题转化为多个二分类问题。传统分类方法对每个二分类器采用同样的分类阈值,这使得每个二分类器无法获得最优的效率(即识别率和误识率到达一个平衡)。因此,为了取得在当前训练集下的分类效率最优,针对每个二值分类器,需计算出一个最佳临界点阈值,用来进行结果判定,最佳临界点阈值判定如图1所示。
图1 ROC曲线和它相关的比率
图1中,图(a)为ROC曲线,理想情况下,真阳性率TPR应接近1,假阳性率FPR应接近0,极限情况下对应于左上角的点(0,1);对于某个特定的分类器,阈值最小时,TP=FP=0,对应于原点,阈值最大时,TN=FN=0,对应于右上角的点(1,1)。图(b)中,随着阈值θ的增减,TP和FP均产生相应变化。
由此可见,若想实现算法的真正优化,不能单纯地提高算法的识别率,而应该选择一个使识别率(TPR)和误识率(FPR)达到理想的平衡点,即在ROC曲线上找到距离左上角最近的一点作为正常值的最佳临界点。
自适应阈值计算方法具体描述如下:
输入部分:
训练样本集中的人数:personNum;
算法部分:
//计算所有二值分类器的最佳阈值
Fork=1至personNum,步长为1;
求出人员编号为k的所有测试人脸样本的最小欧式距离,分别存于最小欧式距离数组thred_temp对应的数组元素中;
以最大最小值方式将最小欧式距离数组thred_temp进行归一化;
Forthred = 0至 1,步长为 0.01;
TP = 0;为真阳性样本总数
FP = 0;为假阳性样本总数
TN = 0;为真阴性样本总数
FN = 0;为假阴性样本总数
统计出此thred值所对应的归一化后的thred_temp数组中的TP、FP、TN、FN的数值,计算出相应的TPR与FPR的值,作为一组坐标值记录下来;
End
利用上一循环计算出的若干(FPR,TPR) 的坐标值绘制相应ROC曲线;
计算出该曲线上斜率为1的切点的坐标;
找出该坐标点对应的thred值;
利用反向归一化,计算出该thred值所对应的原始阈值,作为该人员编号k所对应的二值分类器的最佳阈值;
将此最佳阈值存入最佳阈值数组thred_all的相应位置,即thred_all(k)中;
End
输出部分:
存储所有参与训练人员所对应二值分类器的最佳阈值数组:thred_all;
最后,依据此最佳阈值数组对测试样本进行逐一二值分类器的判定,通过所有二值分类器共同投票决定此测试样本是否为正样本。
实验环境采用Windows 10 64位操作系统(Intel Core i7-6500U CPU,8 GB内存)与MATLAB R2016b语言平台;数据库采用英国剑桥大学的ORL人脸库,该人脸库包含40个人,每人10幅人脸正面图像,每幅图像大小为92×112,分别为不同时间、不同面部姿态(如睁/闭眼,笑/不笑,有/无眼镜等)以及轻微光线变化的条件下拍摄,总共400幅图像。
在实验过程中,首先随机取出10个人不参与训练,针对剩余的30个人,选定特征向量贡献率α=90%保持不变,针对算法的训练情况,从每个人的人脸图像中随机抽取5、6、7、8、9张人脸图像作为训练样本,将剩余人脸图像作为测试样本的一部分,另外再从不参与训练的10个人中,每人随机抽取与上述每人剩余人脸图像数相等的数量作为测试样本的另一部分,然后对基于自适应阈值的PCA人脸识别算法以及传统PCA算法分别进行试验。实验结果如表1所示。
表1 ORL人脸库中两种算法的识别率及汉明损失
从实验结果可得以下两点结论:
(1)以算法识别率作为数据分析可知,当训练样本较少时,传统PCA算法占据优势较大,但随着训练样本的不断增加,基于自适应阈值的PCA算法的识别率提升明显,当训练样本数为8时,识别率可实现98.33%,明显高于传统PCA算法。
(2)以汉明损失(Hamming Loss)作为数据分析可知,当训练样本数为5时,传统PCA算法的汉明损失略低于基于自适应阈值的PCA算法,但从训练样本数为6开始,基于自适应阈值的PCA算法的汉明损失逐渐减少,且一直保持低于传统PCA算法,优势明显。
由以上两点证明,本文所涉及的两种分类器,在训练样本较少的情况下,传统PCA算法略优于基于自适应阈值的PCA算法,但当训练样本足够多时,基于自适应阈值的PCA算法明显优于传统PCA算法。
本文针对人脸识别中多种分类问题,提出了基于自适应阈值PCA的多目标人脸识别方法,该方法的原理是将多目标分类问题转化为多个二分类问题,通过ROC曲线确定每个二分类器的最佳阈值,以此作为该二分类器的判定依据,最终识别结果由全部二分类器投票决定。经过与传统PCA的多目标人脸识别方法进行比较,实验结果表明,当训练样本足够多时,基于自适应阈值PCA的多目标人脸识别方法明显优于传统PCA的多目标人脸识别方法。
本算法解决了以上技术问题,但在人脸库的选择上还存在很大限制,因为现实生活中的人脸成像还会受到很多因素影响,例如:光线、遮挡物等。未来还可以考虑通过神经网络算法结合PCA的分析方法来进行人脸识别,进一步提高算法的鲁棒性。