APP下载

SSPO:一种部分遮挡单样本人脸识别算法

2022-04-08

湖北工业职业技术学院学报 2022年1期
关键词:分块识别率人脸识别

杨 庆

(汉江师范学院 数学与计算机科学学院,湖北 十堰 442000)

0 引言

由于全球新型冠状病毒的爆发,全民戴口罩出行日益成为一种趋势。随着人脸被大面积遮挡,传统的人脸识别算法的识别率达到了瓶颈。如何提高部分遮挡人脸的识别率是当前国内外学者普遍关注的课题。作为人脸识别的一个分支,单样本人脸识别在实际应用中扮演着非常重要的作用。在机场,火车站等场合,身份证、护照、驾照等的识别属于单样本人脸识别的范畴。在样本数比较多的情况下,传统的人脸识别算法识别率很高。单样本人脸识别场景下,由于样本数不足,人脸识别算法识别率受到严重影响。部分遮挡的单样本下人脸识别是当前的一个挑战,这是新时期的一个重要的研究课题。

现有的单样本人脸识别方法可以分为三类:虚拟样本生成、通用学习和基于分块的思想。Bodini M等[1]提出了一种基于深度学习线性判别法来解决单样本人脸识别问题。首先对人脸进行翻转、放大等操作,利用DCNN算法进行特征提取,最后基于k-LiMapS算法进行人脸识别。Liu F等[2]提出了一种基于自组织映射(SOM)的二进制编码(SOM-BC)方法。首先使用SIFT描述符提取局部特征,其次,利用SOM神经网络获得能够在语义空间反映面部特征内在结构的视觉词典,利用二进制编码方法将局部特征映射到语义空间,最后进行人脸识别。董艳花等[3]指出通过利用人脸图像的结构及遮挡固有的结构来表示、抑制或消除遮挡,并对遮挡人脸进行鲁棒特征提取,以此降低遮挡对人脸识别的影响,提高了有遮挡人脸识别的健壮性和精确性。孙雨浩[4]利用主成分分析法得到低秩训练样本Gabor特征字典所在低秩线性子空间的变换投影矩阵,并将原始训练样本和测试样本分别对应的Gabor特征字典,通过这个变换矩阵投影到同一线性子空间中,进行自适应稀疏编码。最后,通过自适应稀疏表示分类的方法,实现最终的分类识别。孙跃伟[5]消除了遮挡人脸图像中由遮挡部分带来的错误信息参与投票分类的影响,结合稀疏集中指数(SCI),提出了“SCI与投票加权的遮挡人脸识别算法”,将SCI低于阈值的子块剔除,对其余子块加权,提高了遮挡人脸图像的识别率。闫硕[6]首先分别使用SIFT算法和SURF算法获得训练图像和测试图像对之间的SIFT匹配特征点和SURF匹配特征点,通过关键点簇块获取方法合并每张图像中匹配特征点的邻域,通过加权描述符策略来获取两个图像块集的匹配,通过计算所有匹配块对之间的平均距离,来获得人脸图像对之间的相似度。Ye Meng Jun等[7]提出了基于正稀疏系数的 ESRC(PESRC),计算单个训练样本的表示残差,ESRC 的稀疏系数为正。统计分析稀疏系数比率,求解大的正稀疏系数的 ESRC (LESRC),最后计算单个训练样本的表示残差。PESRC 和 LESRC 可以显著提高ESRC 的计算效率。Al-Obaydy W等[8]将正脸图像旋转一定角度,提取定向梯度特征直方图,然后将特征连接起来,使用主成分分析方法进行降维,使用典型相关分析进行融合,能提高姿态变化的单样本人脸识别率。

鉴于此,本文创新性地提出了一种SSPO算法来解决部分遮挡的单样本人脸识别问题。首先对所有图片进行遮挡(遮挡比例为15%,25%,35%,45%)。然后通过MSEP算法对所有图片进行分块并剔除遮挡的分块。最后通过SSPO算法对人脸进行识别。通过在AR人脸数据库和CMU Multi-PIE人脸数据库上各个算法的实验对比来验证本算法的切实有效性。

1 部分遮挡人脸识别算法

1.1 MSEP:分块算法

所有图像全部用Matlab自带的imresize函数设置成80*80(height=80像素,width=80像素)大小。根据分块算法MSEP进行分块。如图1所示。分块大小为20*20(ph=20像素,pw=20像素)大小,步长s为10像素。

图1 分块图

(1)

所有图片都进行了分片,如公式(1)所示,每张图片被分成了49个分块。

为了剔除遮挡的子块,本文引入了均方差的概念。如图2所示,一个c*c区域的一个分块A,起点坐标为(p,q),终点坐标为(p+c-1,q+c-1)。

图2 均方差

(2)

(3)

1.2 SSPO:部分遮挡人脸图像算法

为了模拟口罩遮挡人脸的情况,本文对所有图像进行了遮挡,遮挡比例分别为15%、25%、35%、45%,如图3所示。对比了不同算法在部分遮挡情况下的人脸识别率。

图3 人脸遮挡的比例

待测样本z可以表示为公式(4)所示。其中,X为样本集,D为变化字典,ε为表示残差。

z = Xα+Dβ+ε

(4)

(5)

如公式(5)所示,求得α和β,使得公式(5)取得最小值。当每个分块的权重ω固定时,根据公式(6)求得A。

(6)

当A固定时,通过公式(7)对分块权重ωi进行更新。当分块的残差大时,该分块权重ωi就会小,以降低错误分类的可能性。

(7)

通过不断地迭代更新A和ωi,直至其收敛。最后通过公式(8)对样本进行分类。对于所有分块,对s块分块的表示残差求和,选择残差最小的分类k。

(8)

一种部分遮挡单样本人脸识别算法SSPO算法如表1所示。根据遮挡比例对所有图像进行遮挡,分块算法MSEP对图像进行分块。根据公式(2)(3)进行遮挡块的剔除。对每一个分块,初始化权重ω=[1, 1, …, 1]。根据每个人脸m种可能的变化与每个人的平均人脸之差,计算字典D。通过(6)、(7)式更新A和ω,直至收敛。最后输出每个样本的分类。

表1 SSPO算法

2 实验验证

2.1 实验描述

为了验证所提算法SSPO的有效性,本文将在AR[9],CMU Multi-PIE[10]数据库上进行实验。实验在Microsoft Windows 10 专业版 Version 10.0 (Build 19043)操作系统下进行,环境如表2所示。CPU是Intel(R) Core(TM) i7-7700K,主频4.20 GHz;RAM为8.00GB,Matlab为8.5.0.197613 (R2015a)。

表2 实验平台

(1)AR数据库:实验中有100个人脸,每人7张图像,共700张人脸。随机选取80个人脸作为标准样本库,待测人脸。其余20个人脸作为通用训练集。测试集分为三类,glass(太阳镜),illumination(光照),illumination+disguise(伪装和光照)。所有图像统一处理为80*80像素。

(2)CMU Multi-PIE数据库:CMU Multi-PIE数据库包含姿势、光照和表情变化等图像。本文实验选取不包含姿势变化的人脸作为训练集,三类数据集作为测试数据集,分别是s1_smile(微笑),s2_squint(眯眼),s2_surprise(惊讶)。实验选取160类,随机选取75%的数据作为训练集,其余用作生成变化字典。所有图像统一处理为80*80像素。

为了验证本算法SSPO的有效性,我们对比了当下比较流行的人脸识别算法。通过比较NNC算法(Nearest neighbor pattern classification)[11]、SRC算法[12]、改进的SRC算法[13]、SSPO算法的人脸识别准确率,验证本算法的有效性。

2.2 常用的人脸识别算法识别率对比

(1)AR人脸数据库在太阳镜,光照,光照和伪装情况下不同算法在不同遮挡率的情况下的识别率如表3至表5所示。实验对比了NNC算法、SRC算法、改进的SRC算法、SSPO算法的人脸识别准确率。

表3 AR人脸库在glass下,不同遮挡率各个算法的识别率 (单位:%)

表4 AR人脸库在illumination变化下,不同遮挡率各个算法的识别率 (单位:%)

表5 AR人脸库在illumination+disguise下,不同遮挡率各个算法的识别率 (单位:%)

(2)CMU Multi-PIE人脸数据库各个算法在不同表情下的识别率如表6至表8所示。实验对比了NNC算法,SRC算法,改进的SRC算法、SSPO算法在s1_smile(笑脸)、s2_squint(眯眼)、s2_surprise(惊讶)这三种表情下的识别率。

表6 CMU Multi-PIE人脸库在s1_smile下,不同遮挡率各个算法的识别率 (单位:%)

表7 CMU Multi-PIE人脸库在s2_squint下,不同遮挡率各个算法的识别率 (单位:%)

表8 CMU Multi-PIE人脸库在s2_surprise下,不同遮挡率各个算法的识别率 (单位:%)

表3至表5在AR数据库上的识别率结果表明,随着遮挡率的提高,各个算法的识别率普遍下降。在光照变化下的各个算法的表现最好,在太阳镜下各个算法的识别率最低。这是因为随着人脸的部位被遮挡,识别的困难加大。太阳镜下人的眼睛这一关键部位被遮挡,导致各个算法的识别率下降。本文的SSPO算法在各个场景中均取得了最高的识别率,在15%遮挡率下,SSPO分别在太阳镜、光照变化、伪装+光照变化场景下比第二好的算法分别提升13.75%,6.25%,11.88%。

表6至表8在CMU Multi-PIE人脸库上各个算法的识别率结果表明,在笑脸集上各个算法表现更好,在眯眼情况下各个算法识别率下降。并且随着遮挡率的提升,各个算法识别率均出现下降趋势。因为眯眼表情,人的眼睛这一主要特征受到影响,其识别率下降。总的来说,本文提出的SSPO算法在各个场景下的识别率最优,在session1笑脸、session2眯眼、session2惊讶场景下,分别比第二好的算法识别率提升0.83%,3.12%,12.29%。这是因为SSPO算法通过识别并剔除遮挡的块,屏蔽了遮挡带来的影响,提升了算法的识别率。

2.3 运行时间对比

本文通过实验比较了SRC、SRC(AW-KPatch)、NNC和SSPO识别一张图片平均所花的时间。在AR数据库上,调用Matlab自带的计算时间函数,各个算法执行前后的时间差即为运行时间。如表9所示,识别一幅图像各个算法的平均计算时间。

表9 识别一幅图像的平均计算时间

通过对比表中各个算法的运行时间以及上文中各个算法的识别率可知,SSPO算法无论在识别率和识别时间上都具有很大的优势。因此,本算法适用范围更加广泛。

3 结束语

针对部分遮挡的单样本人脸识别问题识别困难的问题,本文创新性地提出了SSPO算法。通过MSEP分块算法识别遮挡,剔除遮挡的分块,通过SSPO算法对样本进行识别。在AR人脸库和CMU Multi-PIE人脸库对各个算法进行了识别率和运行时间的对比,结果表明,SSPO算法在部分遮挡单样本人脸识别中不仅效率高,而且识别率高,更具有实际意义和实践价值。

猜你喜欢

分块识别率人脸识别
人脸识别 等
揭开人脸识别的神秘面纱
基于类图像处理与向量化的大数据脚本攻击智能检测
分块矩阵在线性代数中的应用
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
提升高速公路MTC二次抓拍车牌识别率方案研究
反三角分块矩阵Drazin逆新的表示
高速公路机电日常维护中车牌识别率分析系统的应用
基于自适应中值滤波的分块压缩感知人脸识别
基于多分辨率半边的分块LOD模型无缝表达