张庶 李子月,2 刘玉超,3 李琳 韩文
随着人工智能技术的发展,人脸识别技术也得到了前所未有的关注.目前,人脸识别技术已经广泛应用于安防、金融、数码相机、门禁系统、身份识别、网络应用等场景中.人脸识别技术包括基于几何特征的方法(Geometrical Features Based,GFB)、局部特征分析方法(Local Face Analysis,LFA)、基于动态链接模型的方法(Dynamic Link Architecture,DLA)、卷积神经网络算法(Convolutional Neural Networks,CNN)和主成分分析(Principal Component Analysis,PCA)算法.其中,PCA是由Turk和Pentland在20世纪90年代初期提出的[1],是目前最流行的算法之一.
PCA方法核心是基于K-L变换[2]对人脸图像进行降维和特征提取.该方法先对人脸库中人脸向量归一化并求得平均脸,然后求得每张人脸图像与平均脸图像插值的协方差矩阵,最后利用奇异值分解(Singular Value Decomposition,SVD)来达到降维.降维后,需要通过分类器来决策分类,利用高斯核函数的支持向量机(Support Vector Machine,SVM)分类器能够向高维空间进行映射,对非线性问题效果良好,具有很好的泛化能力.本文基于PCA方法和SVM方法来对图像识别,并用K折交叉验证法验证SVM分类器的性能,并首次将该人脸识别技术应用在实验室开发的无人巡逻车中.实验结果表明该技术与其他传统方法相比具有较高的识别率和识别速度;与CNN方法相比,识别精度虽然不占有明显优势,但具有更快的识别速度,具备更好的实时性能.
PCA本质是找出一组投影空间,使得在投影空间的数据能最大限度地代表原始数据.PCA法能够降低数据的维数,减少图像中冗余的信息和噪声并且使降维后的数据不能失真[3].其中,冗余信息指数据中与其他数据线性相关的数据,这些数据被其他数据线性表示;噪声代表矩阵较小的特征根对应的特征向量,常见的噪声包括光照、阴影等.而通常的方法是通过保留数据的低阶主成分去除高阶主成分,从而能够保留数据中的核心部分去除冗余和噪声[4].
设集合S包含m张图片,集合S可以表示为:
其中,Ti=[Ti1,Ti2,···,Tin]T为第 i张图片灰度值组成的列向量,n为矩阵的维度.集合S的平均向量为:
向量Ti与平均向量Ψ的差值为:
图1为从ORL人脸数据库选取的10张人脸图片所得到的结果,其中,左侧为原始图人脸图片,中间为获取的平均脸,右侧为去均值后的偏差脸.
图1 平均脸与偏差脸
得到的去中心化的图片向量组成的集合:
PCA降维的数学原理是求解样本集合在新的坐标系下的投影之和最大,以二维数据集压缩为一维数据集为例,求解方程为数据集在单位向量u的投影最大[5]:
其中,左奇异矩阵 U=[U1,U2,···,Un]是 n× n矩阵, 奇异值矩阵 Σ =diag(σ11,σ22···,σnn). 假设降维后维度为k,则降维后的映射矩阵Ureduce=[U1,U2,···,Uk]是 n× k 矩阵.向量 Φi在标架{U1,U2,···,Uk}的投影为:
而Zi在原坐标系下的近似值为:
从而得到向量Φi在映射矩阵Ureduce的误差为:
Φi−Φi_approx.
定义样本集的投影误差满足门限值ε:
式(9)可以转化为:
因此,维度k的选择为:选组最小值k,使其满足式(10).
图2为对上述10张人脸原型图进行降维得到的特征脸图.
图2 降维后反投影特征人脸图像
SVM是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器[6].支持向量机模型采用非线性核函数,可将输入数据向非线性空间投影,从而使得支持向量机能够成为一种非线性分类器.支持向量机的学习策略是间隔最大化,可形式化为一个求解凸二次规划的问题,其学习算法是纠结凸二次规划的最优化算法[7].
SVM的凸二次规划问题为:
其中,C为惩罚参数,ξi为松弛因子.
构造拉格朗日函数:
其中,αi、µi为拉格朗日乘子.
式(12)对ω、b及ξi求偏导并令偏导为0,最终求得式(11)的对偶问题为:
最优超平面分类器表达式为:
对于线性不可分的训练样本,可用核函数将样本投影到高维空间,从而使样本在高维空间内线性可分[8−9].
核函数定义为:
其中,Φ(x)为投影函数,可将向量x向高维投影.本文采用的核函数为高斯核函数:
采用高斯核函数的支持向量机称为径向基函数(RBF)分类器[1],从而对偶问题式(13)转化为:
最优超平面为:
本文将ORL人脸数据库中400张人脸图片,获取在投影空间Ureduce下的降维特征向量,并采用随机排序方法生成训练集和测试集,其中,训练集和测试集各为200张.支持向量机的核函数采用高斯核函数,模型的最优参数采用网格搜索法获取,采用交叉验证法验证该SVM模型在测试数据集的性能.式(17)的最优规划求解采用序列最小最优(Sequential Minimal Optimization,SMO)法.SMO算法是一种启发式算法,其基本思路是:如果所有的变量的解都满足此最优化问题的KKT条件,则得到了该最优化问题的解[11-12].
采用高斯核函数的SVM模型有两个非常重要的参数:C和γ.其中,C是罚函数系数,表征对误差的容限度.较大的C表征对误差具有较小的容限,往往容易导致数据分类过拟合;较小的C表征能容许较大的误差,容易导致数据分类欠拟合.较大或较小的C都将导致模型不具备良好的泛化性能.
γ是核函数的参数,该参数决定了数据投影到新的特征空间后的分布.γ值越大,支持向量越少,γ值越小,支持向量越多.支持向量的个数影响训练与预测的速度[13].
高斯核函数中σ和γ的关系如下:
即:
C与γ一般通过网格搜索法[14−15]来确定.
针对训练集,采取不同的log2C和log2γ的精度ε绘制的等高线图如图3所示,最终获取支持向量机模型的参数为:γ=0.5;C=1.0,训练集的精度为0.975(195/200),该模型对测试集的精度为0.965(192/200).
图3 log2C-log2γ等高线图
K折交叉验证法先将数据集D划分为K个大小相似的互斥子集[16],即:
子集Di从D中分层采样获取,从而保持子集与原始数据分布规律的一致性.在实际验证过程中,每次以K-1个子集的并集作为训练集,剩下的一个子集作为测试集,因此,可以获取K组训练、测试集,最终返回的是K组测试结果的平均值.
本文采用10折交叉验证,每个子集的样本数量为40,验证结果如表1所示:
表1 10折交叉验证结果
测试结果表明,该SVM分类器在整个训练样本空间的精度为98.10%,在测试样本空间的精度为97.78%,具备较高的识别率.
为验证PCA+SVM人脸识别技术在真实场景中的性能,将其搭载于图4所示无人巡逻车中进行测试,并与其他方法进行比对.图4为一体化指挥调度技术国家工程实验室研发的搭载高清摄像头及其他感知设备的无人巡逻车,该无人巡逻车采用5G通信,可实现人脸识别、障碍物感知、车辆识别、高精度定位、路径规划及超高清视频传输等功能,主要用于小区治安巡逻.巡逻车人脸识别模块采用上述PCA+SVM方法,可实现对小区内出入人员精准识别.
图4 搭载PCA+SVM人脸识别技术的无人巡逻车
对无人巡逻车分别采用PCA+SVM法、CNN法、DLA法、LFA法进行识别并比对结果,其识别精度及单张图片识别速度如表2和图5所示.实验结果表明,PCA+SVM法与DLA和LFA相比,在识别精度和速度上都具有一定优势,与CNN方法相比,识别精度不相上下,但是识别速度较快,可以满足无人巡逻车场景实时识别的要求.
表2 无人巡逻车人脸识别结果比对
图5 无人巡逻车人脸识别结果比对
本文阐述了PCA降维原理及采用高斯核函数的SVM原理,并给出了降维后维度K及基于RBF的支持向量机的参数C和γ选择方法;基于ORL人脸数据库对400张人脸图片样本进行数据降维,降维后的人脸向量作为SVM的输入样本,采用分层取样法将样本分成训练集和测试集,并用训练集训练SVM模型,利用网格搜索法确定SVM的参数.该SVM模型在测试集的精度为97.78%,用10折交叉验证法验证了该分类器的性能,测试表明该分类器的精度达到98.1%.
PCA结合SVM方法在无人巡逻车的实验结果表明,相对于传统的DLA和LFA方法相比,在精度与速率上都具有一定的优势,相对于CNN方法,在精度持平的情况下,同样具有识别速率上的优势.
下一步将在该方法的基础上对图片进行降噪滤波,以提高模型在强光照及阴雨天气下的识别率.