人脸识别[1]是生物识别技术的一个重要分支,对警用以及涉及国家安全的军事用途很重要,如人脸识别技术可以用来支持像智能眼镜、可穿戴人脸识别系统对人的识别[2-3]。近年,虽然人脸识别技术有了很大进步,但仍然面临着许多挑战,如处理低质量的图像或照明不充分的图像。理想情况下,人脸识别系统应解决以下问题:处理非受控环境、含有多种族面孔的数据库和老化效应[4]等。
人脸识别方法中,比较具代表性的有主成分分析(principal component analysis, PCA)[5]、线性成分分析(linear discriminant analysis, LDA)[6]、独立主成分分析(independent component analysis, ICA)[7]等,这些方法在解决带有光照、姿态、表情和场景变化的人脸识别问题时,效果不理想。也有很多人脸识别依赖Gabor变换,文献[8]将Gabor变换的人脸识别分为分析和综合两类。分析方法如基于图和基于非图的增强方法,即使用最优Gabor参数的Gabor算法以及AdaBoost算法[8];综合方法包括下采样Gabor、LDA、PCA、局部二值模式等。
文献[9]使用基于高阶局部衍生变化的衍生模式(local derivative pattern, LDP)来编码方向图的特征,包括FERET、CAS-PEAL、CMU-PIE、扩展Yale B和FRGC的数据库,识别率在78.9%~97.9%变化。然而,较高的识别率只能在手动调整和裁剪的帮助下实现。
文献[10]提出了结合快速离散曲波变换(fast discrete curvelet transform, FDCT)和二维主成分分析方法(2 dimensional-principal component analysis, 2D-PCA)的人脸识别方法(FDCT-2DPCA)。其中,FDCT作为特征提取器,2D-PCA可来降低计算复杂度,但要求是二维正脸或近似正脸的需求。
由于深度学习可以比较好地描述图像的局部和全局特性,文献[11]使用深度学习(deep learning, DL)算法进行训练,一定程度上提高了面部表情识别率。然而,该方法训练耗时较长。
文献[12]通过使用图像预处理技术,即分辨率变换、直方图均衡和边缘检测来增强脸部识别,提出了一种改进正则化超-分辨率重建方法(improved regularization super resolution reconstruction, IRSRR)来进行特征选择,超分辨率(super resolution, SR)算法可从一个或多个低分辨率图像重建高分辨率图像,但SR算法重建的效果很大程度上取决于较多假设前提,即使基于学习的SR算法构建字典也比较困难,而且运行时间较长。由于SR技术的应用,文献[13]提出了一种基于高频小波子带字典的方法,该方法利用超分辨率来增强人脸识别。然而,该方法除了使用非常大的图像之外,还依赖于手工校准和裁剪。
综上,许多传统的方法都不能完全实现自动化处理,且有些方法运行效率不高。为此,提出一种AdaBoost人脸检测结合自组织映射(self-organizing map, SOM)的自动人脸识别方法(AdaBoost-SOM)。
1 AdaBoost结合SOM的自动人脸识别算法AdaBoost-SOM方法由三个主要部分组成:预处理、训练器和测试部分。
预处理:使用AdaBoost人脸检测算法对图像中的人脸进行检测,如果人脸存在,则进行自动裁剪。输出通常是不同大小的人脸。因此,预处理器的下一个子步骤是调整检测到的人脸大小到相同大小。然后,所有图像都转换为灰度图像,并分成两个子集:训练子集和测试子集;
训练:图像的训练子集用于训练自组织映射(self-organizing map, SOM)分类器,其中,每个人都有一定数目类的分级模型,所有人的模型都将用于测试在测试子集中的图像。
测试:使用在先前步骤中创建的分级模型,对图像的测试子集进行识别测试。构建特征值,利用相似性度量确定测试图像的相似性,与测试图像相关值最高的子类确定为输出。
1.1 预处理器预处理器使用Matlab实现以下任务:
人脸检测:输入图像的人脸可定位在该图像的任意位置。使用AdaBoost人脸检测算法来定位和获取输入图像中的人脸,并进行人脸剪裁[14]。
减小图像尺寸:训练和测试需要图像中包含人脸的分区域,上一步的输出是原始图像的一部分,因此,需要重新调整尺寸到标准的人脸大小。
转换为灰度图像:为了便于处理,在灰度图像上进行处理。
一个成功的人脸识别系统的三个主要特点是高识别率、高计算性能和实现简单。其中预处理器的目的是生成需要的人脸图像。
1.2 自组织映射在神经网络中,有两种方法可以训练网络。第一种是监督训练,即每个输入图像都有一个目标,通过网络学习改变其权重,表示输入和输出图像之间的关系。第二种是无监督训练,在没有先验信息的情况下,改变目标权重,对输入图像进行分类[15]。
AdaBoost-SOM方法是基于无监督神经网络学习,神经元通过竞争来激活,以便在任何时候都只有一个神经元激活[15]。通过这种激活过程,神经元进行了自我组织。因此,这种网络又称为“自组织映射”。
自组织映射的主要目标是自适应地执行一个非线性变换,或者把数据映射到一维或二维空间,因此,网络必须基于以下几点进行训练[15]:
1) 初始化:所有神经元的连接权重向量{ wj, j∈[1, M],M是神经元数}随机初始化。
2) 采样:对输入图形x进行采样。
3) 匹配:确定获胜神经元i(x),获胜神经元是权重向量最接近输入图像的神经元。
4) 更新:获胜神经元的权重向量及其相邻神经元的权重向量通过以下公式进行更新:
$ {\mathit{\boldsymbol{w}}_j} = {\mathit{\boldsymbol{w}}_j} + \eta {h_{j,i\left( x \right)}}\left( {\mathit{\boldsymbol{x}} - {\mathit{\boldsymbol{w}}_j}} \right) $ | (1) |
式中:η是学习率,h是高斯邻域函数,其定义如下
$ {h_{j,i\left( x \right)}} = \exp \left( { - \frac{{d_{j,i}^2}}{{2{\sigma ^2}}}} \right) $ | (2) |
式中:dj, i是获胜神经元和神经元j之间的横向距离,σ是高斯邻域函数的宽度。
5) 迭代:返回步骤2)并重复进行,直到权重不再变化。
1.3 训练器假设N代表数据库中人的总数,Pi代表第i个人可用的图像数量。若所有的人都有相同数量的图像,则
$ {P_1} = {P_2} = \cdots = {P_N} = P $ | (3) |
在数据库中可用的图像总数为Tl_DB=N×P,具有Tl_DB幅图像的数据集可分为两个子集:训练子集和测试子集,训练子集的大小为
$ {T_r} = f \times {\rm{Tl\_DB}} $ | (4) |
式中:f直在训练中使用的图片部分,范围在0~100%变动,其余的图像用于测试,其中测试子集的大小是:
$ {T_s} = \left( {1 - f} \right) \times {\rm{Tl\_DB}} $ | (5) |
设定f=65%,即65%的图像用于训练,35%的图像用于测试。提出的利用SOM的人脸识别系统采用K-类的方法。因此,训练器为每个人建立一些参考图像类R, R指每个人的参考图像数,其中R≤Tr,Tr指训练集中的图片总数,对应的测试集中的图片总数用Ts表示,类的总数量是TC=N×R。
接着,讨论每个参考图像的构造,使用SOM把每个人的Tr图像分成R类。经验表明:R的最优值为4,分类后,只需要保证每个类至少有一个图像。第k类的参考图像是属于第k类的所有图像的平均图,即参考图像k的Pixeli, j值,其中i, j∈[1, A],可定义为
$ {\rm{Pixe}}{{\rm{l}}_{i,j}}\left( {{R_k}} \right) = \frac{{\sum\limits_{l = 1}^m {{\rm{Pixe}}{{\rm{l}}_{i,j}}\left( {{\rm{Pictur}}{{\rm{e}}_l}} \right)} }}{m} $ | (6) |
式中:Rk表示第k类的参考图像,是离线构造的。
得到参考图像Rk后,利用优化程序对每个参考图像进行简单优化,令dj∈Rm为Rk的第j个原子项,j∈[1, M]假设xj*∈R1×N的行向量为Rk的第j行,固定Rk和所有原子项,构建下面的优化问题:
$ \begin{array}{*{20}{c}} {\mathop {\min }\limits_{{d_j}} H\left( {{d_j}} \right) = \left\| {\mathit{\boldsymbol{Y}} - \sum\limits_{k \ne j} {{\mathit{\boldsymbol{d}}_k}{\mathit{\boldsymbol{x}}_{k * }} - {\mathit{\boldsymbol{d}}_j}{\mathit{\boldsymbol{x}}_{j * }}} } \right\|_F^2 + }\\ {\lambda \left\{ {\sum\limits_{i = 1}^N {x_{ji}^2\left\| {{\mathit{\boldsymbol{y}}_i} - {\mathit{\boldsymbol{d}}_i}} \right\|_2^2} + \sum\limits_{i = 1}^N {\sum\limits_{k \ne 1}^K {\left[ {x_{ki}^2\left\| {{\mathit{\boldsymbol{y}}_i} - {\mathit{\boldsymbol{d}}_k}} \right\|_2^2} \right]} } } \right\}} \end{array} $ | (7) |
设置
$ \begin{array}{*{20}{c}} {\mathop {\min }\limits_{{d_j}} H\left( {{d_j}} \right) = {T_r}\left\{ {\left( {\mathit{\boldsymbol{E}} - {\mathit{\boldsymbol{d}}_j}{\mathit{\boldsymbol{x}}_{j * }}} \right){{\left( {\mathit{\boldsymbol{E}} - {\mathit{\boldsymbol{d}}_j}{\mathit{\boldsymbol{x}}_{j * }}} \right)}^{\rm{T}}}} \right\} + }\\ {\lambda \sum\limits_{i = 1}^N {\left[ {x_{ji}^2{{\left( {{\mathit{\boldsymbol{y}}_i} - {\mathit{\boldsymbol{d}}_j}} \right)}^{\rm{T}}}\left( {{\mathit{\boldsymbol{y}}_i} - {\mathit{\boldsymbol{d}}_j}} \right)} \right]} } \end{array} $ | (8) |
由于H(dj)为凸,H(dj)关于dj的梯度设为零,得到最优解:
$ {\mathit{\boldsymbol{d}}_j} = \frac{1}{{\left( {1 + \lambda } \right)\left( {{\mathit{\boldsymbol{x}}_{j * }}\mathit{\boldsymbol{x}}_{j * }^{\rm{T}}} \right)}}\left( {\mathit{\boldsymbol{Ex}}_{j * }^{\rm{T}} + \lambda \mathit{\boldsymbol{Y\alpha }}} \right) $ | (9) |
给出一张测试图像,测试阶段需要测试每一个参考图像,并通过下式计算测试图像和参考图像之间的特征值φ:
$ \varphi = \frac{{\frac{1}{A}\sum\limits_{i = 1}^A {\left( {{I_R}\left( i \right) - {m_{{I_R}}}} \right)\left( {{I_T}\left( i \right) - {m_{{I_T}}}} \right)} }}{{{\sigma _{{I_R}}}{\sigma _{{I_T}}}}} $ | (10) |
式中:IR(i)和IT(i)是在字典顺序向量中分别代表参考图像和测试图像的像素点i的灰度值,A为图像中像素的数量,mlR、mlT、σIR和σIT分别是参考图像和测试图像的平均值和标准差。
对某个对象而言,利用相似性度量,选择φ最大的类作为识别结果,测试阶段的操作算法如下所示:
输入:测试图像
数据库中N×R的参考图像
输出:人的识别输出(人的指数)
初始化决策=1;
φHighest=0;
for Personi,1≤i≤N,Do:
φAccreditted(Personi)=0;
for Classk, 1≤k≤R,Do:
计算φk;
if φk>φAccreditted(Personi),then
φAccreditted(Personi)=φk;
end if
end for
if φAccreditted(Personi)=φHighest, then
φHighest=φAccreditted(Personi)
结果Decision=i;
end if
end for
返回结果Decision
2 实验结果与分析实验使用如下配置的计算机:英特尔酷睿Ⅱ双核CPU,2.1 GHz主频,4 GB RAM,64位微软Windows7操作系统,编程工具为Matlab 11。
2.1 测试度量使用结构相似度量(structure similarity measures, SSIM)进行结果测试。SSIM是用来衡量两张图像之间相似度的一个指标,比较局部图像的像素强度,比较符合人眼的评价标准,两幅图像(x和y)的相似性定义如下:
$ {\rm{SSIM}}\left( {x,y} \right) = \frac{{\left( {2{\mu _x}{\mu _y} + {C_1}} \right)\left( {2{\sigma _{xy}} + {C_2}} \right)}}{{\left( {\mu _x^2\mu _y^2 + {C_1}} \right)\left( {\sigma _x^2 + \sigma _y^2 + {C_2}} \right)}} $ | (11) |
式中:常量C1和C2满足C1=(K1L)2, C2=(K2L)2,K1是一个小的常数(0.01),K2也是一个小的常数(0.03),L是像素值的动态范围(0~255),μx是图像x的平均值,μy是图像y的平均值,σx2是图像x的方差,σy2是图像y的方差,σxy是图像x和y之间的协方差。SSIM的值在0~1变化,SSIM的值越大表示相似程度越高。
2.2 Libor Spacek人脸图像数据库使用Libor Spacek人脸图像数据库[16]来评价AdaBoost-SOM。Libor Spacek数据库包含四个数据库,这四个数据库包含不同年龄不同种族的395位女性和男性的图像,分别是:Faces94、Faces95、Faces96和Grimace,这些类别从最容易识别到最难识别进行分类,Face94是最容易识别的,Grimace是最难识别的。该数据库中的每个人都具有20张不同姿势和不同的面部表情的图像,总共有7 900张图像,且光照条件也不同,使用数据库中362个人的7 240张图像。AdaBoost-SOM的目的是提出一个全自动人脸识别系统,避免任何人工裁剪。AdaBoost算法能够检测和剪裁的图像总数是362个人的7 240张图像。实验中,方形预处理图片区域为625像素,数据库中包含362名对象,每个人图片数量为20张,训练数据中使用的图片部分比例占比为0.65,训练集中共有4 706张图片,测试集中共有2 534张图片,系统中分类为1 448类。
如表 1所示,f=0.65,对一个人而言,13张图像用于训练,剩下的7张图像用于测试,表 1所示为7个测试图像的结果。在训练阶段中使用的图像是随机选取的,经过人脸检测和剪裁后的13张图像的尺寸不同,捕获的平均面部尺寸大约是100×100像素,图像大小重置为25×25像素后按相应顺序排列的图像,图 1所示为4阶SOM类的图像。
![]() |
表 1 7个测试图像的SSIM结果 Tab.1 SSIM results for 7 test images |
![]() |
图 1 计算获得的4张SOM图像 Fig.1 Calculate the four SOM images obtained |
测试阶段所使用的图像总数为2 534,AdaBoost-SOM成功识别了2 457张人脸,测试所有图像的总时间为28 733.72 s,即平均需要约11.3 s来识别2 534幅图像之间的任一图像。这个时间与其他系统差不多。实现的识别率在97.00%~99.50%变化。图 2所示为提出的利用SOM的人脸识别方法使用从0.001~1变化的错误接受率所实现的验证率,从图中可以看出,所实现的验证率在83%~100%。
![]() |
图 2 得到的ROC值 Fig.2 The resulting ROC value |
一般情况,优秀的人脸识别算法应具有以下特点[10]:
1) 全自动:不需要人为干预;
2) 工作在一个由大量的个体组成的大型数据库中:用于测试人脸识别方法的图像数量越大,该方法越好;
3) 高识别率和高验证率;
4) 速度快:快速识别人脸,预处理、训练和测试应具有最小的延迟;
5) 图像尺寸和运行速度的平衡:图像的尺寸越大,正确识别人的概率就越大。然而图像尺寸越大,识别速度就越慢,需要一个平衡。
2.3.1 Libor Spacek数据库上的比较FDCT-2DPCA[10]、DL[11]、IRSRR[12]及AdaBoost-SOM都使用了Libor Spacek数据库中的Face94部分进行实验,识别结果如表 2所示。从表 2可以看出,FDCT-2DPCA和IRSRR在Face94上的识别率分别为94.04%、95.01%,而AdaBoost-SOM识别率可高达97.05%,略低于DL,表明AdaBoost-SOM与目前较为先进的深度学习方法所得识别率相当。从时间方面可以看出,DL需要23.94 s,IRSRR需要16.30 s,而AdaBoost-SOM仅需11.32 s,略多于FDCT-2DPCA,利用深度学习算法进行训练耗时较多,IRSRR采用超分辨率重建,也在一定程度上增加了耗时,而FDCT-2DPCA使用2DPCA进行特征提取,降低了计算复杂度,故耗时较短。综合识别率和执行时间可见,AdaBoost-SOM更具优越性。
![]() |
表 2 Libor Spacek数据库的Face94实验结果比较 Tab.2 Comparison of Face94 experiment results of libor spacek database |
扩展Yale B数据库[17]是耶鲁大学人脸识别Yale数据库的一个扩展库,包含16 128幅图像,28岁以下,9种姿态,64种光照条件,图 3为示例图像。LDP[9]算法使用了一些高分辨率的图像来测试该方法,有38个个体被识别,每个个体有9个图像。每个图像都有84×96像素的分辨率。该算法在扩展Yale B数据库上的识别率略高于AdaBoost-SOM,但所有用于测试和训练系统的图像都经过手动对齐和裁剪,LDA[6]算法和文献[13]的加权稀疏表达算法(weighted sparse representation,WSR)都是相似情况,它们的个体总数都比较少,只有38个,训练图像总数都多于AdaBoost-SOM,且都对图像进行了手动对准和裁剪,从而达到高分辨率。故这些算法能取得较高的识别率,但在运行时间上明显多于AdaBoost-SOM。
![]() |
图 3 扩展Yale B数据库中人脸图像实例 Fig.3 Extends the face image instance in the Yale B database |
![]() |
表 3 扩展Yale B数据库上的实验结果比较 Tab.3 Extended comparison of experimental results on the Yale B database |
FERET数据库[18]是美国国防部发起的人脸识别工程,包括一个通用的人脸库以及测试标准,同一个人包括不同表情、光照、姿态和年龄的照片,包括1 000多人数万张照片,并且一直在不同扩充,FERET中的人脸图像示例如图 4所示。LDP[9]在FERET数据库上测试一张图像的时间为0.5 4 s,这个时间看起来很小。然而,它是一对一图像匹配的测量时间,即如果在测试阶段包含所有的测试图像,那么这一时间将成倍增加。图像大小为88×88像素,这比AdaBoost-SOM中的图像尺寸大得多,该算法的识别率也只有90.15%,WSR取得的识别率为91.73%,而AdaBoost-SOM实现的识别率最高,可高达96.59%。
![]() |
图 4 FERET数据库中的人脸图像示例 Fig.4 An example of a face image in the FERET database |
![]() |
表 4 FERET数据库上的实验结果比较 Tab.4 Comparison of experimental results on FERET database |
1) 使用AdaBoost人脸检测算法可有效定位和获取输入图像中的人脸;
2) 在不需要人为干预的情况下,AdaBoost-SOM可取得较高的识别率和运行效率;
3) 使用SOM迭代训练,即使在小尺寸图像中,也可以实现优越的识别结果。
[1] |
崔鹏, 张汝波. 半监督系数选择法的人脸识别[J]. 哈尔滨工程大学学报, 2012, 33(7): 855-861. CUI Peng, ZHANG Rubo. A semi-supervised coefficient selection method for face recognition[J]. Journal of Harbin Engineering University, 2012, 33(7): 855-861. ( ![]() |
[2] |
李月龙, 靳彦, 汪剑鸣, 等. 人脸特征点提取方法综述[J]. 计算机学报, 2016, 39(7): 1356-1374. Li Yuelong, JIN Yan, WANG Jianming, et al. Face feature points extraction:a review[J]. Chinese journal of computers, 2016, 39(7): 1356-1374. DOI:10.11897/SP.J.1016.2016.01356 ( ![]() |
[3] |
WRIGHT J, YANG A Y, GANESH A, et al. Robust face recognition via sparse representation[J]. IEEE transactions on pattern analysis & machine intelligence, 2009, 31(2): 210-227. ( ![]() |
[4] |
唐守军, 吴洪武. 基于Snake模型和协作表示分类的鲁棒人脸识别方法[J]. 湘潭大学自然科学学报, 2016, 38(2): 104-108. TANG Shoujun, WU Hongwu. A robust face recognition method based on snake model and collaborative representation classification[J]. Natural Science Journal of Xiangtan University, 2016, 38(2): 104-108. ( ![]() |
[5] |
王亚星, 齐林, 郭新, 等. 基于稀疏PCA的多阶次分数阶傅里叶变换域特征人脸识别[J]. 计算机应用研究, 2016, 33(4): 1253-1257. WANG Yaxing, QI Lin, GUO Xin, et al. Fusion of complementary discrete fractional Fourier features extracted through sparse PCA in generalized frequency domains for face recognition[J]. Application research of computers, 2016, 33(4): 1253-1257. ( ![]() |
[6] |
VINAY A, SHEKHAR V S, MURTHY K N B, et al. Performance study of LDA and KFA for gabor based face recognition system[J]. Procedia computer science, 2015, 57(3): 960-969. ( ![]() |
[7] |
PEDDIGARI V R, SRINIVASA P, KUMAR R. Enhanced ICA based face recognition using histogram equalization and mirror image superposition[C]//2015 IEEE International Conference on consumer electronics. [S. l. ], 2015: 625-628.
( ![]() |
[8] |
张娟, 詹永照, 毛启容, 等. 基于Gabor小波和稀疏表示的人脸表情识别[J]. 计算机工程, 2012, 38(6): 207-209. ZHANG Juan, ZHAN Yongzhao, MAO Qirong, et al. Facial expression recognition based on gabor wavelet and sparse representation[J]. Computer engineering, 2012, 38(6): 207-209. ( ![]() |
[9] |
ZHANG B C, GAO Y S, ZHAO S Q, et al. Local derivative pattern versus local binary pattern:face recognition with high-order local pattern descriptor[J]. IEEE transactions on image processing, 2010, 19(2): 533-544. DOI:10.1109/TIP.2009.2035882 ( ![]() |
[10] |
ZHAO J, ZHOU Z, CAO F. Human face recognition based on ensemble of polyharmonic extreme learning machine[J]. Neural computing & applications, 2013, 24(6): 1317-1326. ( ![]() |
[11] |
ZHAO X, SHI X, ZHANG S. Facial expression recognition via deep learning[J]. Iete technical review, 2015, 32(5): 347-355. DOI:10.1080/02564602.2015.1017542 ( ![]() |
[12] |
程建. 基于改进正则化超分辨率重建方法的人脸识别研究[D]. 西安: 西安电子科技大学, 2014. CHENG Jian. Research on face recognition based on improved regularization super-resolution reconstruction[D]. Xi'an: Xidian University, 2014. http://cdmd.cnki.com.cn/article/cdmd-10701-1014325021.htm ( ![]() |
[13] |
LU C Y, MIN H, GUI J, et al. Face recognition via weighted sparse representation[J]. Journal of visual communication and image representation, 2013, 24(2): 111-116. DOI:10.1016/j.jvcir.2012.05.003 ( ![]() |
[14] |
SCHROFF F, KALENICHENKO D, PHILBIN J. FaceNet: A unified embedding for face recognition and clustering[C]//Computer Vision and Pattern Recognition. IEEE: NY, USA, 2015: 815-823. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=7298682
( ![]() |
[15] |
CHOWDHURY M I H, ALAM F I. A probabilistic approach to support self-organizing map (SOM) driven facial expression recognition[C]//International Conference on Computer and Information Technology. IEEE: NY, USA, 2014: 210-216. http://ieeexplore.ieee.org/document/7073131/
( ![]() |
[16] |
BHASKAR B, ANUSHREE P S, SHREE S D, et al. Quantitative analysis of kernel principal components and kernel fishers based face recognition algorithms using hybrid gaborlets[J]. Procedia computer science, 2015, 58(8): 342-347. ( ![]() |
[17] |
VIPPARTHI S K, MURALA S, GONDE A B, et al. Local directional mask maximum edge patterns for image retrieval and face recognition[J]. Iet computer vision, 2016, 10(3): 182-192. DOI:10.1049/iet-cvi.2015.0035 ( ![]() |
[18] |
卢桂馥, 林忠, 金忠. 基于核化图嵌入的最佳鉴别分析与人脸识别[J]. 软件学报, 2011, 22(7): 1561-1570. LU Guifu, LIN Zhong, JIN Zhong. Optimal discriminant analysis based on kernel extension of graph embedding and face recognition[J]. Journal of software, 2011, 22(7): 1561-1570. ( ![]() |