基于特征脸-灰度变换融合的人脸识别方法
2019-02-15王忠民
王忠民,王 星,李 刚
1(西安邮电大学 计算机学院,西安 710121) 2(西安邮电大学 陕西省网络数据智能处理重点实验室,西安 710121)
1 引 言
人脸识别一直是图像识别领域的重要研究内容,随着深度学习的广泛应用,人脸识别的研究也从传统的基于主成分分析(Principal Component Analysis,PCA)[1]、基于隐马尔可夫模型方法(Hidden Markov Model,HMM)[2]、基于几何特征[3]等识别算法转向基于神经网络的识别算法如DeepFace[4]、FaceNet[5]、DeepID[6]等.由于人脸识别的主要难点在于识别环境的复杂多变,光照、姿势、表情、角度的变化,加大了信息处理的复杂度,使得神经网络越加越深,计算量越来越大,使其向计算能力差的嵌入式设备迁移难以实现.本文重点关注人脸识别在嵌入式应用中存在的关键问题.
在实际的应用中,引发人脸识别网络加深、复杂度加大的原因有很多,归纳起来有以下几点:
1)由于姿态、光照、表情、年龄等原因,识别过程中可能会将同一人的多张图像识别为不同的人,大大的提升了人脸识别的难度;
2)深度网络可以通过增加网络层数,学习更多更细致特征,提高识别率,因而引起学者广泛关注并引入人脸识别.
近年来,学者们开始进行大量研究,主要方法为压缩网络模型与增加图像预处理模块[7,8].Dally等人[9]针对深层神经网络计算量巨大、训练后的模型特别消耗内存、难以应用到嵌入式设备系统等问题,通过对训练后的网络进行裁剪、编码等方式实现压缩;Courbariaux等人[10]针对神经网络中大量的数学运算引起计算量巨大、浮点型权重值和激活值对内存的占用问题,提出了二值化模型,对图像、权重、激活值进行二值化处理以降低内存占用,将数学操作变为位操作降低计算复杂度.网络压缩的方法虽然可以降低参数规模、空间占用、计算时间、能源消耗,但目前的网络压缩所做的是将权重小的连接置为0,并引入稀疏表示法组织其余权重,这不仅没有改变网络结构、降低计算复杂度,还引入新的数据结构,增加网络复杂度.
对于人脸图像处理方面,特征脸被广泛应用,它是基于主成分分析(PCA)的特征识别方法,它可以在减少需要分析的指标的同时,尽量减少原指标包含信息的损失,从而达到使用少量的特征信息进行全面分析的目的.Turk等人使用特征脸算法,描述数据之间相关性,消除冗余数据,筛选出K个最具代表性的特征,并使用稀疏表示组成新的特征矩阵用于网络输入,以降低输入复杂性,但是K为多少可以描述全部信息与怎样确定主成分的组成为特征脸算法需要解决问题.实验表明,良好的主成分可以得到较高的识别率.
尽管已经取得了长足的发展,但基于深度学习的人脸识别在嵌入式上广泛应用仍然面临巨大的挑战.
1)现有网络压缩并不是真正意义降低网络复杂度,而是通过编码、剪枝等方法,消除无意义的连接权重,降低每一权重的空间占用,从而达到压缩的目的.
2)人脸图像因姿态、光照、表情、年龄等极易导致特征识别不清、并富含大量冗余数据,这将导致嵌入式设备无法负荷巨大的运算.
鉴于人脸识别在嵌入式应用中存在的关键问题和挑战,本文从图像处理的角度提出解决该问题的思路:
1)使用特征脸识别方法,区分人脸主要特征,并使用主要特征制作残差脸,降低类内差异;
2)使用灰度变换算法,增加残差脸之间的对比度,增大类间差异;
3)并使用运行于树莓派3上的三层神经网络进行人脸识别测试.
2 融合特征脸与灰度变换的图像处理方法
基于特征脸-灰度变换的人脸识别模型,如图1所示,主要由特征脸-灰度变换处理模块、网络建模模块、分类识别模块3个部分组成.特征脸-灰度变换处理为本识别算法的处理核心,主要包括:
图1 基于特征脸-灰度变换的人脸识别模型Fig.1 Face recognition model based on eigenface-gray-scale transformation
1)对一组人脸图像使用Dlib标注人脸68个关键点,并应用于人脸对正;
2)对对正后的图像使用PCA算法计算人脸图像主成分,并获取特征脸图像;
3)将人脸图像与特征脸图像做基于像素点的减法运算,获得人脸的残差脸图像.
网络建模将残差脸图像输入神经网络进行训练学习.人脸识别部分是将人脸图像送入网络,并输出识别结果.
2.1 特征脸计算
特征脸指机器视觉领域中应对人脸识别问题时生成的一组特征向量,将特征脸引入人脸图像预处理阶段可以有效降低类内差异、增大类间差异[11-13].特征脸识别算法主要有基于加权平均的特征脸算法与基于人脸关键检测点的特征脸算法,本文采用第二种特征脸计算方法,具体方法如下:
2.1.1 人脸关键点检测与坐标变换
通过人脸特征点检测与坐标变换可以实现人脸图像特征点位置的统一.
1)获得人脸关键点坐标:使用Dlib模型识别人脸关键点,获得人脸68个关键点在图像中的位置.
2)坐标变换:将人脸区域大小不同、尺寸不同的图像进行归一化处理,调整人脸在图像中的位置,更利于准确的求得特征脸.检测过程中,为了将人脸中心可以置于图像高度1/3处的位置,所以首先选定左外眼角(0.3×width,height/3)和右外眼角(0.7×width,height/3)作为检测的参考点.利用左右眼角的两个点可以进行图像的变换矩阵,该矩阵是一个2×3的矩阵,如下:
(1)
其中Sx,Sy表示沿着x、y方向的缩放,θ表示旋转的角度,tx和ty表示在x、y方向的平移.该矩阵中第1列和第2列表示对图像的缩放和旋转,第3列表示对图像的平移.
变换矩阵可以通过构造最优仿射变换矩阵得到,且需要3对二维坐标,则第3个点计算如下:
(2)
通过类似方法对其他特征点进行对正处理,得到的新的人脸图像是特征脸计算的基础.
2.1.2 获取特征脸
特征脸的获取是通过基于PCA改进算法实现的.主要为计算每一维上数据的均值,通过协方差矩阵进行矩阵变换,计算变换后矩阵的特征值与特征向量,获取特征矩阵.本文为了解决特征选择对识别率的影响,并未使用特征矩阵进行输入,而是将主成分特征进行加强,其余特征进行降低,人脸图像的部分数值降低至0值,这样在网络学习时,为0值的特征对运算和空间的占用影响都是极低的.具体计算过程如下:
2) 获取S之后,利用加权平均方法获得人脸的平均图像向量V:
(3)
图2 人脸图像处理前后对比Fig.2 Face image processing
根据残差脸算法流程,以图2中5幅人脸为例,图2(a)是来自于FERET数据集中的人脸,对其进行特征脸计算后再与原图进行残差计算,最后获得图2(b)中5幅残差图像.相比图2(a)可以看出,图2(b)中图像相似内容明显降低,相异特征的轮廓明显增强.
2.2 使用灰度变换进行图像增强
在信息采集过程中,人脸图像易受到外界因素影响,造成图像特征不清晰、消失或变形,从而降低识别准确率与执行效率[14].为了解决此类问题,通常使用更加复杂、更深层次的网络[15-17],但此类网络的缺点是运算量巨大、内存占用严重.针对以上问题,将在特征脸处理的基础上进一步使用灰度变换处理方法进行图像特征调整.
本文采用直接空间域线性灰度变换方法,通过变换矩阵对原始图像进行像素级操作,表示如下:
N(x,y)=O(x,y)T(x,y)+b
(4)
其中,N(x,y)表示调整后的像素图像矩阵,O(x,y)表示原始图像的像素矩阵,T(x,y)表示转换矩阵,b表示偏置值.当T(x,y)的元素大于1,将会增大图像对比度;T(x,y)的元素小于1,将会降低图像对比度.
(5)
通过(6)将获取到的图像I转化为I-,重新调整图像,增强对比,凸显特征.
2.3 人脸识别网络
本实验选用的浅层神经网络模型[24],主要结构如下:
输入:64×64大小图片,单通道;
第1卷积层:3×3大小的卷积核32个;第1层max_pooling:2×2的核;
第2卷积层:3×3大小的卷积核64个;第2层max_pooling:2×2的核;
第3卷积层:3×3大小的卷积核64个;第3层max_pooling:2×2的核;
第1全连接层:4096维,将第3层max_pooling的输出连接成一维向量作为该层的输入;在测试阶段,随机选取人脸库中20%的数据作为输入,在softmax层最大概率F(xi)则为对该样本的预测,并将其与自身标签进行对比,验证识别是否准确[9,10].
(6)
3 实验结果及分析
3.1 数据集
实验选用人脸识别领域应用最为广泛的两个数据集FERET和ORL.FERET数据集是1993年,美国国防部高级研究项目署和美国陆军研究实验成立了FERET项目组,建立了FERET人脸数据库,用于评价人脸识别算法的性能.数据库中包括200个人,每人7幅图片,对应不同的姿态,表情,和光照条件[25,26],是最为广泛和最权威的人脸数据库之一.ORL数据集由英国剑桥大学Olivetti实验室建立的,共有40个不同年龄、不同性别和不同种族的对象.每个人10幅图像共计400幅灰度图像组成,图像尺寸是92×112,图像背景为黑色[27].
3.2 实验设备
本实验中所使用的实验设备为树莓派3b,具体参数如下:
CPU:700MHz,ARM1176JZF-S核心;
GPU:BroadcomVideoCoreIV,OPenGL Es2.0;
内存:256MB;扩展储存卡:16GB.
3.3 使用特征脸-灰度变换进行图像预处理
针对上述数据集中人脸角度变化,光照变化等问题,使用一种基于分层和Radon变换相结合的矫正方法根据射影几何知识,将人脸图像矫正为满足仿射变换的图像,再将仿射变换矫正为相似变换的图像,接着使用Radon变换矫正为与正面图像相差缩放因子的标准图像.
人脸的畸变矫正为特征脸-灰度变换的图像预处理方法提供了基础.在特征脸-灰度变换处理时,首先使用包含人脸68个特征点的dlib模型,检测关键点并进行坐标变换使图像的所有特征点处于相同坐标,进而对提取的图片进行灰度变换处理.
3.4 特征脸个数对准确率的影响
实验之前,对数据集进行8:2划分,生成实验的训练集与测试集.对于FERET数据集所包含的200个类,共1400张图片,在制定测试集时采取10%来自8:2划分的测试集,10%来自训练集,均为随机选取;对于ORL数据集所包含的40类,共400张图片,在制定测试集时采取10%来自8:2划分的测试集,10%来自FERET数据集,均为随机选取.如表1所示,列出了FERET数据集合成一张特征脸的人脸个数,分别设定为2人/张,4人/张,…,40人/张等,并统计10次实验结果;如表2,列出了ORL数据集合成一张特征脸的人脸个数及其识别率.
表1 在FERET数据集用于合成不同个数的特征脸的10次实验准确率Table 1 FERET dataset was used for 10 experiments with different numbers of eigenfaces
该实验针对两个数据集选取不同人脸组成个数进行10次实验,得出特征脸与用于合成的人脸个数的关系如图3所示,数据采用10次实验平均数.
从实验结果可以看出,特征脸与人脸的关系呈现明显的变化趋势,在FERET与ORL数据集变化趋势一致,开始随着特征脸数的增加,即合成人脸个数的减少,准确率呈现上升趋势,FERET数据集在合成人脸数为8时达到最高准确率95.1%,在人脸数为9时略微下降为94.09%,随后准确率快速下降.在ORL数据集具有相同规律,当人脸数为6时达到最高准确率96.14%,在人脸数为5与7时准确率分别为93.71%,94.04%.如图3所示,当合成人脸数过多,如FERET数据集中40人/张时准确率仅为75.11%,这是因为当合成人数过多,人脸之间会产生强烈噪声干扰,反而达不到较高的识别性能;而当合成人脸数过少,如FERET数据集中2人/张时准确率为 78.36%,这是因为人数过少时准确率受到自身影响增大,导致特征表示能力减弱,准确率降低.实验表明,合成特征脸的人脸数目对识别率影响巨大,达到合适数目时可以发挥特征脸-灰度变换的最佳性能.
图3 特征脸与合成人脸数的关系Fig.3 Relationship between eigenfaces and composite faces
3.5 差异消除与增强能力分析
文中方法通过对图像的预处理操作可以改善图像特征分布及特征对比程度.本实验主要分析文中方法对特征的改变能力.以ORL数据集为例,共包含40类,400个对象.根据表2实验数据可知最佳平均脸个数为6人一组,即可分为7组(差的两人从ORL随机选择补充).为了分析两组对象的相似程度,首先获得两幅图像的直方图,然后引入公式(7)进行计算.
(7)
其中,N表示直方图抽样个数,g、s分别为两幅图片的直方图.
3.5.1 类内差异消除能力分析
因为ORL数据集包含对象较多,此处只能列出部分对象相似度数据,如表3所示.
表3 类内差异消除能力Table 3 Elimination of differences within the class
从表3中可以看到给出的5个对象均提高了类内相似程度.另外根据实验结果,ORL数据集的40个对象的平均改变程度为6.413%,FERET的200个对象平均改变程度为5.328%.这与算法理论,合成同一对象的平均脸,并用原始脸与平均脸进行计算获得残差脸后可以提高同一对象的相似程度的猜想一致,本实验调整后的人脸相似度就是计算残差脸的相似程度.由此可以看出,通过本方法可以有效提高同一对象的相似度.
3.5.2 类间差异增大能力分析
依据表2实验数据,ORL数据集最佳6人分为一组,可分为7组,具体类间相似度实验结果如表4所示.
表4 类间差异的增大能力Table 4 Class differences between the ability to increase
从表4中可以看出,所获得的7个分块均获得了良好提高,平均改变率为7.993%.同样的实验在FERET数据集获得了4.626%的平均改变率,有效的加大了各类之间的差距,为分类学习提供了更好的区分属性.
由此可以看出通过文中方法无论在类间差异与类内差异均表现良好.
表5 网络空间占用及识别率对比Table 5 Occupancy comparison of network space, recognition rate comparison
3.6 基于特征脸-灰度变换融合方法的人脸识别性能
基于灰度变换-特征脸的人脸图像识别方法通过调整人脸图像特征的显著性、对比度及数据的复杂性,降低了神经网络学习时的复杂度.为了验证特征脸-灰度变换模型在人脸识别的性能,筛选出多种算法分别从内存占用和识别准确率两个方面进行实验.借鉴上组实验结论,FERET选取合成人脸数为8张,ORL选取人脸数为6张,10次实验结果分别如表6、表7.
3.6.1 内存占用对比
嵌入式设备面临的两个重要问题就是空间占用和能源消耗.现有的大多数研究在追求高准确率的目标下,不断增加网络的深度和复杂度,这将导致其难以向计算能力差,内存空间小的嵌入式设备迁移.为了解决此问题,在网络压缩方面开始大量研究,并已取得成功,但因为网络压缩的目标是权重的数据类型与网络的有效连接,并未根本改变网络结构,没有改变网络的复杂度.本次实验使用基于特征脸-灰度变化的人脸识别方法、基于VGG-16的人脸识别方法、基于AlexNet的人脸识别方法,从网络内存占用、层数及对FERET与ORL数据集的识别准确率三个方面做出对比.对比结果如表5.
表6 在FERET数据集上不同识别效能对比Table 6 Comparison of different recognition performance on FERET datasets
表7 在ORL数据集上不同识别效能对比Table 7 Comparison of different recognition performance on ORL datasets
3.6.2 与典型方法识别率对比
参照以上识别效能,FERET数据集采用8人合成一张特征脸,ORL数据集采用6人合成一张特征脸,并与PCA、Fisherfaces、LaplacionFaces、LaplacionFace、VGG-16等识别算法进行对比,10次实验结果如表6、表7,实验平均准确率对比如图4、图5.
从图4可以看出,与文中方案最为类似的三种传统算法PCA、Fisherface、LaplacionFace准确率均在90%左右,而基于特征脸-灰度变换的方法的识别率均超过这些方法.分析具体原因在于基于PCA的方法存在模糊性,不像原始变量那么清晰,在降维的过程中不得不损失图像特征,而文中方法可以通过特征脸明确消除部分信息,并使用灰度变换加强被平均脸削弱的部分特征;Fisherface算法对图像的要求较高,对人脸的偏转角度、遮挡情况均要求严格,因此在本次实验中效果不佳,而文中方法可以通过残差脸直接弱化人脸图像中的遮挡物从而提高识别准确率;LaplacionFace是Fisherface的改进算法,虽然在偏转角度做出了巨大改进,但是对遮挡处理不足,因而不能充分展现其识别能力.
从图5可以看出,相比深层网络,基于特征脸-灰度变换的识别率稍低,但识别率较为接近.分析原因,经典的深度神经网络AlexNet包含8层、VGG-16包含16层,它们可以通过复杂的网络充分学习图像特征,从而实现高识别率;而文中方法对图像进行预处理后,增加了图像的对比度,消除了部分特征,虽经过浅层神经网络学习可以获得较好识别率,但因网络层数和图像分辨率的限制降低了其识别性能.
通过以上实验表明,基于特征脸-灰度变换的人脸识别方法在识别人脸主要特征时,能够在保留图像信息的同时,增加类内相似性,消除类间相似性.灰度变换-特征脸的预处理方法通过对图像特征进行筛选与增强对比操作后明显改善图像信息,并提高识别准确.鉴于小型嵌入式设备的内存问题,本方案所采用图像分辨率不高,这也是引起本方法识别率低于深度神经网络的主要原因;但相比于类似方案,文中方法准确率最高.本方法也被应用于树莓派3b,经试验运行平稳,该方案确实可行.
图4 基于人脸特征的人脸识别算法性能对比Fig.4 Performance comparison of face recognition algorithm based on face feature
图5 基于神经网络的人脸识别算法性能对比Fig.5 Performance comparison of face recognition algorithm based on neural network
4 结 语
本文针对深度学习网络向嵌入式设备或移动应用迁移所引起的计算量增大、内存不足等问题,提出基于特征脸-灰度变换的图像预处理方法.依据研究和实验可以看出,随着网络加深,虽学习到的特征更加细致,但也增加了计算量与设备负载,使其难以广泛应用.文中提出的特征脸-灰度变换图像预处理方法能够有效调整同一对象之间、不同对象之间的相似程度,并且可以轻松与浅卷积神经网络相结合.并且该方法具有计算量小,识别速度快,识别率高的特点,通过在树莓派3b上进行验证,该方法确实可行.
本文识别方法主要瓶颈在于为减小设备内存占用而采用低分辨率图片,其自身携带特征信息较少,对图像遮挡敏感度高,通过特征脸-灰度变换预处理之后保留的特征不足,进而引起识别率不足的问题.因此下一步的研究方向是优化特征学习方法、提高特征学习能力,进而提升人脸识别性能.