复杂光线环境下局部二值模式的CNN人脸识别方法

2023-12-28 08:35张国祥孙运卓
关键词:均衡化直方图人脸识别

张国祥,孙运卓

(湖北师范大学 物理与电子科学学院, 湖北 黄石 435002)

0 引言

随着社会的发展和科技的进步,基准数据库的增大、高级网络结构和各种损失函数[1]的广泛使用,基于深度学习的人脸识别技术取得了显著的进步,在某些基准数据库上的识别能力已经超越了人类[2]。广泛的应用与日常生活中扫脸支付,火车站、机场入站口通过人脸识别进站乘车等。然而,现实生活中的人脸识别时复杂的光线环境,不同姿态与表情,使得采集到的人脸图像与注册图像存在极大差异,直接导致类内距离大于类间距离,从而影响最终识别结果。

通过光照归一化处理可以对不同光照图像中人脸的灰度进行归一[3],可以较好地解决光照问题。因此,文中提出基于局部二值模式(LBP)的卷积神经网络(CNN)人脸识别方法,定义为LBP-HE-CNN首先利用直方图均衡化[4](HistogramEqualization)将原人脸图片进行预处理,增强整幅图片的动态范围,提高局部对比度而不影响整体,然后利用旋转不变的LBP算子[5]对光照不敏感的优点对处理过的图片进行特征采集,同时减轻CNN特征提取压力,最后将采集到的特征作为CNN网络[6]的输入进行训练,修改每一个卷积层卷积核数量和网络层数,得到本研究的最优模型。通过与LBP、CNN、Fisherface[7]等方法在3组人脸数据集上进行分类对比实验,验证该方法的合理性。

1 基本原理

1.1 直方图均衡化

直方图均衡是一种增强图像对比度(ImageContrast)的方法,其主要思想是将一副图像的直方图分布通过累积分布函数变成近似均匀分布,从而增强图像的对比度。

(1)

其中ci指当前灰度级经过累积分布函数映射后的值,n是图像中像素的总和,nj是当前灰度级的像素个数。原图像与灰度均衡化后的图像分别如图1、图2所示。

图1 原图像

图2 直方图均衡化后图像

原图像和直方图均衡化后图像灰度直方图如图3、图4所示:

图3 原图像灰度直方图

图4 直方图均衡化后图像灰度直方图

对比图1和图2,可得经过直方图均衡化后的人脸图像阴影部分得到了改善,整体图像更亮,对比度更高,面部特征更清晰。对比图3和图4,可以看出原图像灰度直方图灰度分布范围更集中,而均衡化后的图像灰度分布更宽,更均匀。由此可得直方图均衡化在一定程度上改善了光照问题。

1.2 局部二值模式LBP

LBP是较为常用的特征提取算法之一,其主要优点为对光照有较强的鲁棒性,原理简单,容易实现。计算原理为给定一个3×3的正方形,以中心点的像素值为基准,将其邻域八个点的像素值分别和其进行比较,若大于中心点像素值则为1,反之则为零,将得到的值进行顺序组合得到一个8位二进制编码,转为十进制就是该点的LBP值。

(2)

(3)

式中,ic表示中心像素(xc,yc)的灰度值,in表示中心像素8邻域内的像素灰度值。图5为8邻域的LBP计算示例,将邻域值和中心值进行比较得到的二进制编码为10110110(顺时针排列),LBP值为182.

图5 LBP计算示例

传统LBP方法在面对旋转时鲁棒性较低,因此选用圆形LBP算子用像素点的圆形邻域来描述局部二进制模式[8],这样能够增强对不同尺度的图片进行纹理结构提取,如下面图6所示。

图6 圆形LBP算法邻域

图7 旋转不变LBP算法的编码方式

这样可对于给定的中心点(xc,yc),其邻域像素位置为(xp,yp),p∈P,(xp,yp)用如下公式计算:

(4)

其中,R是窗口半径,p是采集的中心像素点周围的第p个像素,P是采集的中心像素点周围的像素点个数。由于不同的起点所产生的二进制组合不同,得到的LBP值也各不相同,因此Maenpaa等人对传统的LBP模式进行了改进,提出了旋转不变的LBP算子[9],对圆形邻域进行旋转计算,对比此过程得到的每一组LBP值,将最小值作为该像素点的LBP值。

经过以上的运算后,旋转不变LBP算法不仅拥有灰度不变,同时对图像旋转有了良好鲁棒性。但由于计算过程中需要对每个像素点遍历后进行对比取最小值,因此面对较大数据量时,该方法特征计算所需要的时间较长,识别效率较低。

1.3 CNN模型

卷积神经网络[9](Convolutionl Neurl Networks,CNN)[10]是一个具有层次结构的多层感知器。如图8所示:基础的CNN网络组成单元分别是输入层、卷积层、激活层、池化层、全连接层以及输出层。

图8 卷积神经网络结构示意图

卷积层的主要作用是对图像进行特征提取;激活函数的目的是增强原本线性数据的泛化能力,使之能拟合各种曲线。常用的有sigmod函数、tanh函数和relu函数[11~14],sigmod函数和tanh函数在一定程度上提高模型的非线性表达能力,但都存在梯度消失的情况。而relu函数不仅能解决梯度消失的问题且能大大提高模型的训练速度。因此本文选用relu函数作为激活函数。

池化层的目的是降低数据维度,该文采用最大池化方法,用给定区域内的像素最大值代表该区域的整体特征,提高了计算效率;全连接层常见与最后一层,目的是把分布式特征映射到样本标记空间。全连接层的每一个节点的输入是前几层特征提取的结果值。添加损失函数是为了计算预测值的偏差大小,同时能够与真实值对比,不断调整网络训练的方向,使之更贴近于理想值。

为了优化损失函数,提高模型对人脸特征的辨识能力,该文采用λ系数来平衡softmax损失函数与centerloss损失函数的方法,由文献[15]结果知λ为0.03时不仅能够提高人脸类间差距,还能够降低人脸类内差距。

(5)

2 系统设计

人脸识别系统主要分为三大结构:人脸录入、人脸训练以及人脸识别。其整体的结构逻辑步骤如图9示,在人脸识别系统首界面上选择视频识别或者人脸录入后,便可进行对应选择的后续训练模式和人脸识别模式。

图9 人脸识别系统的整体逻辑步骤

首先,需要输入录入者的身份信息。信息录入成功后,调用本地摄像头进行人像采集。在此过程中,系统会将图像转换成灰度图进而简化矩阵,这将有利于提高运算的速度,进而更快地识别出图像中的人脸。随后将抓拍检测到的人脸图像,并与录入的信息保存到数据库中。完成录入后便可执行训练模式或继续进行人脸录入。

开始训练前,系统将采样的100张人脸图像作为数据进行图像训练。若收集到的图像少于100张,则训练失败。若被抓拍的人脸达到所对应的要求,则系统将进行训练模式。首先加载抓取成功的图像并进行灰度转化,将图像矩阵简化,从而提高图像的计算能力;再将其经过直方图均衡化调节灰度分布,增强图像对比度。然后通过旋转不变的LBP算法对数据进行特征采集,将采集到的特征送入CNN网络中进行训练,使机器更好地理解图像的人脸,从而强化机器对人脸的识别。最后将训练的结果保存在相应的文件中。

系统通过调用摄像头对识别者进行人脸匹配,识别出画面中的人脸后,再将其人脸图像与数据库中的人脸信息进行匹配,进而确定其身份。若识别成功,则用绿框框选人脸并标注出识别者的姓名;若识别失败,则用红框框选人脸并标注为陌生人脸。

3 实验结果与分析

3.1 实验数据

该文的实验数据集为三组不同人脸数据,共同测试该文所提出的方法可行性与有效性。实验在PC机上进行,配置为Intel Core i5-9500、Intel(R)UHD Graphies630和8 GB内存。Colorferet包含了1 000多人的10 000多张照片,每个人包括了不同表情、光照、姿态和年龄的照片。FERET数据是美国军方的FERET人脸数据库,共1 400幅图片。包括200个人,每人7幅,对应不同的姿态,表情和光照条件,图像大小80×80.ORL数据是由英国剑桥的Olivetti研究实验室创建,共包含40个不同人的400张图像,图像大小92×112,此数据集下包含40个目录,每个目录下有10张图像,每个目录表示一个不同的人。三个数据集部分数据样例如图10所示。

图10 Colorferet数据、FERET数据、ORL数据样例

3.2 网络模型调参

网络模型的性能影响因素主要包括学习率、卷积层中卷积核的个数和网络层数等重要的网络参数。合适的学习率能够提高反向传播时的模型的收敛速度,提高模型训练速度。根据已有研究[16],在实验中将Colorferet数据、FERET数据及ORL数据对应的CNN 模型的学习率分别设置为0.001、0.01及0.001.

1)卷积核数量。第一步对比同一层中卷积核数量的改变是否会对模型训练结果产生影响,同时确定最优卷积核数量。实验开始预设CNN模型的网络结构为2个卷积层、1个最大池化层和1个全连接层相组合,将第1个卷积层卷积核数量预设为4、8、16、32,逐一测试模型的识别准确率,实验结果如表1所示,3组数据集中最优测试结果加粗表示。从表1中可知,不同数据集最优卷积核数量不同,因此后续模型测试时分别把Colorferet数据对应的模型第一层卷积核数量设为8、FERET数据为16、ORL数据为8.

表1 不同卷积核数识别的准确率

2)网络层数。第二步调整不同网络层数,对比得出使模型分类精度最优网络层数,在第一步的基础上设定每组数据集卷积层所对应的最优卷积核的数量,改变网络层数为3、5、7,测试此时模型的识别准确率,3组网络层数的测试结果如表2所示。从表2中可得,网络层数并非越深越好,随着网络模型加深梯度消失的问题可能随之而来,影响模型的识别准确率,因此统一将Colorferet数据、FERET数据及ORL数据对应的模型网络层数设定为3.

表2 不同网络层数识别的准确率

3.3 实验结果与分析

为了更客观地考量LBP-EH-CNN方法的识别准确度,实验设计三种不同方法与之对照。将LBP-EH-CNN与传统LBPH算法做对比,验证该算法识别准确率。与传统CNN做对比,验证旋转不变LBP算子的特征采集能力。为了对比直方图均衡化是否降低了模型对光照的敏感性,添加LBP-CNN作为对比方法之一。同时还增加了Fisherface与SVM经典分类算法进行对比。评价指标采用20组人脸测试实验得到的准确率取平均值。

表3为不同方法在三组数据集上的识别准确率,最优准确率用加粗数字表示,由表可得LBP-EH-CNN的识别准确率要明显优于其余5种方法。综上所述,实验结论为:

表3 不同方法识别的准确率

1)LBP-CNN的组合识别准确率比单独LBP或CNN高,证明LBP与CNN组合后,能够提高对模型的分类精度。而LBP-EH-CNN方法在复杂光线下的识别准确率比LBP-CNN更高,证明了直方图均衡化后的图像可以提高模型对光照的鲁棒性。

2)LBP-EH-CNN方法在三个数据集上的识别准确率均优于其他对比方法。对于Colorferet数据,LBP-EH-CNN的平均识别准确率为99.71%,相比LBP-CNN提高3.3%,相比LBP与CNN分别提高6.5%、5.86%;针对FERET数据,LBP-EH-CNN的平均识别准确率为99.78%,相比LBP-CNN提高2.7%,相比LBP与CNN分提高6.6%、5.86%;针对ORL数据,LBP-EH-CNN的平均识别准确率为99.15%,相比LBP-CNN提高2.3%,相比LBP与CNN或分别提高6.3%、7.02%.

4 结论

本文提出一种复杂光线下的局部二值模式的人脸识别方法,利用直方图均衡化后改善灰度分布,降低了光照对特征提取的影响,旋转不变LBP对光照、姿态等变化同样具有良好的鲁棒性,将LBP采集到的特征作为CNN网络的输入进行训练。结合certerloss与softmax作为损失函数不断调整训练方向。在Colorferet、FERET、ORL数据集上进行验证,由实验结果可知,该方法对复杂光线下的人脸特征能做到有效提取,增强了对光照的鲁棒性,优于现有其他方法。下一步将提高旋转LBP的计算效率,深入改进特征提取方法。

猜你喜欢
均衡化直方图人脸识别
统计频率分布直方图的备考全攻略
符合差分隐私的流数据统计直方图发布
人脸识别 等
揭开人脸识别的神秘面纱
用直方图控制画面影调
制度变迁是资源均衡化的关键
基于直方图平移和互补嵌入的可逆水印方案
基于类独立核稀疏表示的鲁棒人脸识别
直方图均衡化技术在矢量等值填充图中的算法及实现
基于K-L变换和平均近邻法的人脸识别