一种基于稀疏表示的快速人脸识别方法 下载: 669次
1 引言
人脸识别一直是计算机视觉、模式识别和生物识别领域中最热门、最具挑战性的研究课题之一。人脸识别的方法大致分为基于几何特征的方法、基于表象的方法和基于模型的方法等[1]。2008年 Wright 等[2]提出了基于稀疏表示的分类(SRC)法并将其应用于人脸识别,展示了SRC法对噪声等干扰的鲁棒性,但是不足之处在于该方法的计算复杂度较高,且要求每个样本对齐。只有数量足够多时,该方法的识别效果才好。
针对SRC计算复杂度高的问题,很多研究者做出了改进。目前主要分两个方向:一个方向是优化L1范数的计算方法,比如梯度投影、同伦、迭代收缩阈值、近似梯度、增广拉格朗日乘子等[3];另一个方向是将L1范数约束改为L2范数约束,比如Zhang等[4]提出了协同表示分类(CRC)法,他们认为在求解稀疏系数时起到识别作用的是协同表示而不是L1范数,采用L2 范数替代L1范数,运算速度提高了很多倍。Xu等[5]通过消除样本的相关性提出了一种新的基于L2范数的稀疏表示方法(DSRC法),该方法的运算速度也很快。
针对样本有限的问题,生成虚拟样本是一种行之有效的方法。Xu等[6]提出利用原始脸和对称脸的两阶段识别算法,首先利用人脸的对称性,将人脸图像分成左右两部分,然后将左右脸镜像翻转,之后再和原左右脸进行组合,扩展出两幅虚拟样本,再将虚拟样本作为单独的训练集和测试集,进行两阶段分类,最后将结果进行加权融合。Song等[7]提出了一种广义的SRC虚拟扩展字典,其虚拟样本的构造方式为选择同类的两个原始样本,然后把这两个原始样本加权组合成一个虚拟样本,最后以此方式得到多个虚拟样本。Tang等[8]提出了一种基于虚拟样本的稀疏表示方法,该方法是通过对原样本添加随机噪声得到虚拟样本,并将虚拟样本和原样本组合成新的训练集。该方法的实质是对图像的亮度进行随机缩放,所以对光照变化具有较强的鲁棒性。
为了提高识别率,Xu等[9]提出了一种由粗到精的人脸识别方法(CFFR法),其本质是用CRC的方法进行两阶段识别:第一阶段,识别选择离测试样本最近的M类训练样本;第二阶段,用第一阶段的M类训练样本组合成新的训练样本集,作第二次识别。虽然相对单独的CRC的方法来说,CFFR法花费了更多的时间,但是提高了识别精度。实际上,两阶段识别中第一阶段识别用的方法也可以不同于第二阶段,可以通过第一阶段选取速度快的算法来缩短整体时间。比如:鉴于求解L2范数约束的速度比求解L1范数约束快得多,Sun等[10]将L1范数和L2范数结合,提出第一阶段用L2范数进行快速求解M类训练样本 ,第二阶段再用SRC的方法。Mi 等[11]也提出一种两阶段识别法,以加快SRC的速度,其在第一阶段直接用每个类的样本线性表示测试样本,根据线性表示结果和测试样本之间的误差选取M个最近的类别,在第二阶段执行 SRC算法。Gou等[12-14]将两阶段进行了推广,将两阶段识别和其他稀疏表示方法进行结合,比如和线性重构测度结合,提出基于两相线性重构测度的分类,和概率协同表示结合,提出了两阶段概率协同表示的分类方法。
目前关于两阶段的文章都是从测试样本的角度出发,第一阶段用一个分类算法,把离测试样本近的M类训练样本筛选出来,再用这些训练样本进行第二阶段的识别。实际上如果不同类别的训练样本和测试样本距离很近时,他们应该分布在测试样本周围,所以他们互相之间的距离也应该比较近。本研究从训练样本的角度出发,首先对训练样本进行聚类,得到几个大类,因为每个大类都有自己的聚类中心,测试样本只需要计算其和聚类中心的距离,选取合适的大类进行组合,构成新的训练样本集即可。由于聚类和测试样本无关,故这个部分可以在训练阶段预先计算好,在测试阶段只需要根据计算的距离进行选择即可。最后利用新的训练样本集,结合目前比较快的基于L2范数的稀疏表示方法,实现了更快的识别速度。
2 相关理论
稀疏表示的分类方法是基于训练样本线性表示测试样本,然后通过每类的重构样本和测试样本间的欧式距离进行分类。假设训练样本组成的特征字典为X=[X1,X2,…,Xc],其中Xi表示第i类的训练样本,总共有c类样本。测试样本y可以通过训练样本的线性拟合来表示,y=Xa+ε,其中ε为误差;每类重构样本为yi=Xiai,i=1,2,…,c,其中只有a是未知的,而且有无数个解,所以需要对解进行约束。SRC的目标函数为
虽然L1范数能保证一定的稀疏性,但是求解复杂度较高。CRC 则将正则项的范数替换为L2范数,具体的目标函数为
故CRC稀疏系数[4]的求解表达式为
其中I为单位矩阵,λ为正则化参数。
虽然CRC加快了速度,但是降低了稀疏性,DSRC通过约束重构样本,消除样本的相关性,取得了不错的效果,其具体目标函数为
故DSRC的稀疏系数[5]的求解表达式为
其中M=
3 本文算法
Xu等[9]指出,如果一类训练样本离测试样本足够远,那么它对测试样本的分类决策影响很小,甚至有副作用,因此,在设计分类算法时,可以先排除离测试样本非常远的类,只依靠剩下的类来进行分类决策。通过消除远离测试样本类对分类决策的副作用,从而提高分类的精度。
但是如果对于每个测试样本,都用一个分类算法,计算它和所有训练样本类别的距离,然后排序,那么这一阶段花费的时间代价是很高的。实际上,离测试样本比较近的训练样本,他们互相之间的距离也应该比较近,通过聚类的话,很容易把这些训练样本聚合在一起。所以我们可以先对训练样本进行聚类,把训练样本聚合成几个大类,每个大类都有自己的聚类中心,第一阶段只需要计算测试样本和聚类中心的距离,选择合适的大类进行组合,构成新的训练样本集,最后再利用新的训练样本集进行第二阶段的识别。本文提出的新的第一阶段仅仅是计算了测试样本和聚类中心的距离,相比于普通的第一阶段,时间极大地缩短。
3.1 算法步骤
设训练样本共有c类,每类有ni(i=1,2,…,c)个样本,总共有
1) 用k均值聚类算法对训练样本进行聚类,选取k=5,得到5个大类和其对应的聚类中心。
2) 对于每个大类来说,它包含了不同类别的训练样本,而且每类训练样本的个数是不定的,将每个大类中包含若干个原始训练样本类别的所有训练样本组合起来,构成5个新的训练样本集,记为Xnewi(i=1,2,…,5),记每个训练样本集拥有的类别数为ci(i=1,2,…,5)。
4) 求参数r=ceiling(g/s),其中g为自定义的参数,用于控制筛选比例,ceiling(·)表示向上取整。
5) 根据r的值构造新的训练样本集。当r等于1的时候,不需要进行任何操作;当r等于2的时候,从步骤2)构造的5个训练样本集中任意选取两个样本集进行组合,构造出
6) 求解稀疏系数。 对于CRC来说,通过(3)式来求解。 (3)式中,对于每个测试样本来说,t=
7) 对于测试样本y,首先计算其与5个聚类中心的距离,然后对距离排序,再根据参数r,选择距离最小的r个大类组合成的训练样本集和其对应的t值。比如,当r=2,距离最小的两个大类为Xnew1和Xnew2的时候,只需要选择Xnew1和Xnew2组合起来的训练样本集及其对应的t就可以(当r=2的时候,步骤6)已计算了所有两两组合的训练样本集的t),记新的训练样本集的类别数为c', 然后用a=t*y,求出稀疏系数。
8) 利用稀疏系数重构样本,并求解出每类重构样本与测试样本的距离。 其中距离定义为
聚合度s是衡量能否有效使用本文算法的重要指标。当聚合度比较大时,代表类内差距大,该类样本不适合用聚类法进行分类。在步骤1)中k的选择越小,本文算法的总体时间就越少。但是第一阶段的本质是用聚类进行一个粗分类,当k太小的时候,第一阶段的分类错误率会显著提高。如当k=2时,步骤5)中进行组合的时候就只有
3.2 时间复杂度分析
CRC和DSRC的测试阶段的流程主要为三步。
1) 计算稀疏系数,用t×y 。对于CRC来说,由(3)式可以得出t=
2) 重构每类样本。用每类训练样本(m×ni维)乘以第一步求解的每类的稀疏系数(ni×1维),总共有c类,所以第二步的时间复杂度为O(C×m)。
3) 计算重构的每类样本(m×1维)和测试样本(m×1维)的距离,总共有c类,所以第三步的时间复杂度为O(c×m)。
所以测试阶段的总的时间复杂度为O(C×m)+O(C×m)+O(c×m)。
所以本文测试阶段的总的时间复杂度为O(C1×m)+O(C1×m)+O(c1×m)+O(5×m)+O(1),其中O(5×m)是计算测试样本与5个聚类中心的距离的时间复杂度,O(1)是距离排序所需的时间复杂度。
本文算法理论上比传统稀疏表示的测试速度快O([2×(C-C1)+(c-c1)-5]×m),其中C1≤C,c1≤c。C1和c1的具体大小,由定义的聚合度s和参数g决定。理论上c1最少可以缩减为原来的80%,这个只有在聚合度s比较小的时候才能取得,当s比较大的时候,缩减的比例会大大减小,甚至会导致识别率降低。
4 实验结果与分析
为了验证本文算法的性能,本文基于ORL(参见网址https://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html)、GT[15]、FERET[16]、AR[17],以及FEI(参见网址https://fei.edu.br/~cet/facedatabase.html)人脸数据库采用DSRC,CRC,CFFR以及本文算法进行实验。实验硬件条件为Intel(R) Core(TM) i5-9600K CPU与16.0 GB RAM 的MATLAB R2019a 软件平台。
4.1 ORL人脸数据集
ORL人脸数据集总共有400张人脸图像,包含40个人,每人10张人脸图像。 在本文实验中,将ORL数据集所有图像通过下采样将图像大小调整为56 pixel×46 pixel,随机选择每个人的2~6张人脸图像作为训练样本,其余的人脸图像作为测试样本。其中:DSRC的正则化参数设置为0.001,本文方法加上DSRC的正则化参数设置为0.001,g设置为0.6;CRC的正则化参数设置为0.1,本文方法加上CRC的正则化参数设置为0.1,g设置为0.6;CFFR第一阶段正则化参数设置为0.01,第二阶段正则化参数也设置为0.01,筛选的比例设置为0.3;本文方法加上CFFR的正则化参数和筛选比例设置和CFFR一样,g设置为0.6。平均100次的结果如
表 1. 0 FEI数据库中不同算法识别准确率
Table 1. 0 Recognition accuracy of different algorithms on FEI database
|
4.2 GT人脸数据集
GT人脸数据集总共有750张人脸图像,共50个人,每人15张人脸图像。在本文的实验中,将GT数据集的所有图像转换为灰度图,并通过下采样将图像大小调整为30 pixel×40 pixel,随机选择每个人的3~9张人脸图像作为原始训练样本,其余人脸图像作为测试样本。 其中:DSRC的正则化参数设置为1,本文方法加上DSRC的正则化参数设置为0.5,g设置为0.6;CRC的正则化参数设置为0.1,本文方法加上CRC的正则化参数设置为0.1,g设置为0.5;CFFR第一阶段正则化参数设置为0.01,第二阶段正则化参数也设置为0.01,筛选的比例设置为0.3;本文方法加上CFFR的正则化参数和筛选比例设置时和CFFR一样,g设置为0.5。
表 2. ORL数据库中不同算法识别准确率
Table 2. Recognition accuracy of different algorithms on ORL database
|
表 3. GT数据库中不同算法使用的总CPU时间
Table 3. Total CPU time used by different algorithms on GT database
|
表 4. GT数据库中不同算法识别准确率
Table 4. Recognition accuracy of different algorithms on GT database
|
4.3 FERET人脸数据集
本文使用FERET数据集中的一个子集,其中包含200个人,每人7张不同的人脸图像,总共1400张。所有图像通过下采样将图像大小调整为40 pixel×40 pixel。顺序取每个人的前2~5张人脸图像作为训练样本,剩余的人脸图像作测试样本。 其中:DSRC的正则化参数设置为100,本文方法加上DSRC的正则化参数设置为50,g设置为0.5;CRC的正则化参数设置为0.01,本文方法加上CRC的正则化参数设置为0.01,g设置为0.5;CFFR第一阶段正则化参数设置为0.01,第二阶段正则化参数也设置为0.01,筛选的比例设置为0.3;本文方法加上CFFR的正则化参数和筛选比例设置时和CFFR一样,g设置为0.5。
4.4 AR数据集
本文实验采用AR数据集的子集,共3120张图片来自120个人,每人有26张人脸图像。所有图像数据集通过下采样将图像大小调整为50 pixel×40 pixel。 顺序取每个人的6~16张图像作训练样本,其余的作测试样本。其中:DSRC的正则化参数设置为0.0001,本文方法加上DSRC的正则化参数设置为0.0001,g设置为0.7; CRC的正则化参数设置为0.001,本文方法加上CRC的正则化参数设置为0.001,g设置为0.7;CFFR第一阶段正则化参数设置为0.001,第二阶段正则化参数也设置为0.001,筛选的比例设置为0.3;本文方法加上CFFR的正则化参数和筛选比例设置时和CFFR一样,g设置为0.7。
表 5. FERET数据库中不同算法使用的总CPU时间
Table 5. Total CPU time used by different algorithms on FERET database
|
表 6. FERET数据库中不同算法识别准确率
Table 6. Recognition accuracy of different algorithms on FERET database
|
表 7. AR数据库中不同算法使用的总CPU时间
Table 7. Total CPU time used by different algorithms on AR database
|
表 8. AR数据库中不同算法识别准确率
Table 8. Recognition accuracy of different algorithms on AR database
|
4.5 FEI数据集
FEI人脸数据库,包含200人,每人有14张照片,共计2800张。本文选取了第一部分,共50个人的每人14张照片,并且所有的图像大小都调整为64 pixel×48 pixel。随机选择每个人的4~9张人脸图像作为原始训练样本,其余人脸图像作为测试样本。其中:DSRC的正则化参数设置为10,本文方法加上DSRC的正则化参数设置为10,g设置为0.5;CRC的正则化参数设置为0.001,本文方法加上CRC的正则化参数设置为0.001,g设置为0.5;CFFR第一阶段正则化参数设置为0.001,第二阶段正则化参数也设置为0.001,筛选的比例设置为0.3;本文方法加上CFFR的正则化参数和筛选比例设置时和CFFR一样,g设置为0.5。
表 9. FEI数据库中不同算法使用的总CPU时间
Table 9. Total CPU time used by different algorithms on FEI database
|
0 FEI数据库中不同算法识别准确率
0 Recognition accuracy of different algorithms on FEI database
Number of samples | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|
DSRC | 0.8734 | 0.9041 | 0.9233 | 0.9438 | 0.9459 | 0.9542 |
Our algorithm +DSRC | 0.8738 | 0.9047 | 0.9234 | 0.9430 | 0.9465 | 0.9539 |
CRC | 0.8300 | 0.8699 | 0.8852 | 0.9060 | 0.9135 | 0.9216 |
Our algorithm +CRC | 0.8532 | 0.8903 | 0.9031 | 0.9220 | 0.9282 | 0.9363 |
CFFR | 0.8709 | 0.8978 | 0.9153 | 0.9198 | 0.9274 | 0.9348 |
Our algorithm +CFFR | 0.8765 | 0.9022 | 0.9228 | 0.9290 | 0.9362 | 0.9372 |
4.6 实验结果分析
分析了本文算法和CRC算法测试阶段的时间复杂度,理论上本文算法相对CRC算法的速度提升比例为μ=
5 结论
两阶段算法的本质,是通过第一阶段识别,选取离测试样本距离近的M类训练样本,然后再用这M类训练样本,进行第二阶段识别。 因为对于不同的测试样本,其和训练样本的距离是不一样的,所以对于每个新的测试样本,都需要重新计算这一距离,这样会大大增加测试的时间负担。 而第一阶段的实质是选取离测试样本距离近的M类训练样本,故可以先将距离近的训练样本组合成大类,再将测试样本和大类进行比较选择即可。相比于普通的两阶段, 本文提出的第一阶段每次只需要计算测试样本和大类之间的距离,极大地缩短了第一阶段的时间。另外,基于ORL、GT、FERET、AR,以及FEI人脸数据库上,验证了该算法的有效性。
本文算法,通过缩短第一阶段的时间,整体上缩短了测试时间。另外,用本文算法得到新的训练样本集后,再基于普通的两阶段算法(CFCR)进行识别,也取得了不错的效果,但是在处理聚合度比较高的数据集时,后者的识别率可能下降。所以未来的研究方向是如何选取合适的方法,把每个类当成一个整体提出特征,然后以每个类的整体特征进行聚类,从而避免聚合度高的问题。
[1] XuY, FanZ, ZhangD. Face recognition based on sparse algorithm[M]. Beijing: National Defense Industry Press, 2014: 10- 22.
[2] WrightJ, GaneshA, Zhou ZH, et al.Demo: robust face recognition via sparse representation[C]∥2008 8th IEEE International Conference on Automatic Face & Gesture Recognition, September 17-19, 2008, Amsterdam, Netherlands. New York: IEEE Press, 2008: 1- 2.
[3] Yang AY, Sastry SS, GaneshA, et al.Fast l1-minimization algorithms and an application in robust face recognition: a review[C]∥2010 IEEE International Conference on Image Processing, September 26-29, 2010, Hong Kong, China. New York: IEEE Press, 2010: 1849- 1852.
[4] ZhangL, YangM, Feng XC. Sparse representation or collaborative representation: which helps face recognition?[C]∥2011 International Conference on Computer Vision, November 6-13, 2011, Barcelona, Spain. New York: IEEE Press, 2011: 471- 478.
[5] Xu Y, Zhong Z F, Yang J, et al. A new discriminative sparse representation method for robust face recognition via l2 regularization[J]. IEEE Transactions on Neural Networks and Learning Systems, 2017, 28(10): 2233-2242.
[6] Xu Y, Zhu X J, Li Z M, et al. Using the original and ‘symmetrical face’ training samples to perform representation based two-step face recognition[J]. Pattern Recognition, 2013, 46(4): 1151-1158.
[7] Shao CB, Yang XB, et al. Sparse representation-based classification using generalized weighted extended dictionary[J]. Soft Computing, 2016( 21): 4335- 4348.
[8] Tang D Y, Zhu N B, Yu F, et al. A novel sparse representation method based on virtual samples for face recognition[J]. Neural Computing and Applications, 2014, 24(3/4): 513-519.
[9] Xu Y, Zhu Q, Fan Z Z, et al. Using the idea of the sparse representation to perform coarse-to-fine face recognition[J]. Information Sciences, 2013, 238: 138-148.
[10] SunY, Tistarelli M. Robust coarse-to-fine sparse representation for face recognition[C]∥ Petrosino A. International Conference on Image Analysis and Processing. Berlin Heidelberg: Springer, 2013.
[11] Mi J X, Liu J X, Brusic V. Face recognition using sparse representation-based classification on K-nearest subspace[J]. PLoS ONE, 2013, 8(3): e59430.
[12] Gou JP, XuY, ZhangD, et al., 2018, 433/434: 17- 36.
[13] Cai SJ, ZhangL, Zuo WM, et al.A probabilistic collaborative representation based approach for pattern classification[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA.New York: IEEE Press, 2016: 2950- 2959.
[14] Gou J P, Wang L, Hou B, et al. Two-phase probabilistic collaborative representation-based classification[J]. Expert Systems with Applications, 2019, 133: 9-20.
[15] Navin G A, George B A, Ara N B. Face recognition experiments with random projection[J]. Proceedings of SPIE, 2005, 5779: 426-437.
[16] Phillips P J, Moon H, Rizvi S A, et al. The FERET evaluation methodology for face-recognition algorithms[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(10): 1090-1104.
[17] MartínezA, BenaventeR. The AR face database[Z]. CVC Technical Report, 1998: 24.
Article Outline
刘伟, 葛洪伟. 一种基于稀疏表示的快速人脸识别方法[J]. 激光与光电子学进展, 2020, 57(18): 181024. Wei Liu, Hongwei Ge. Fast Face Recognition Method Based on Sparse Representation[J]. Laser & Optoelectronics Progress, 2020, 57(18): 181024.