APP下载

基于小波变换和LBP算子的人脸识别研究

2022-07-12李鹏

微型电脑应用 2022年5期
关键词:算子人脸灰度

李鹏

(广州华立科技职业学院, 计算机信息工程学院, 广东, 广州 511325)

0 引言

人脸是一种与生俱来的人体生物特征,与其它人体生物特征如:虹膜、指纹一样,具有唯一性,因此人脸识别是一种重要身份认证技术。相对于其它人体生物特征,人脸采集不需要接触,不但人们容易接受,可以隐蔽操作,而且方便,快捷,在许多领域得到了广泛的应用,如视频监控、安全防范、逃犯抓捕等[1-3]。

近几十年来,人们对人脸识别问题进行了深入的研究,出现了许多有效的人脸识别方法,这些人脸识别方法均将人脸识别看作是一种模式识别的多分类问题,在理想环境下,人脸识别技术很成熟,人脸识别精度相当高[4]。但是在不理想的环境下,如光照变化比较强烈,人脸表情变化频繁,状态变化以及部分人脸出现部分遮挡时,这样人脸识别效果不太理想,因此,不理想环境下人脸识别已经成为人们关注的焦点,如文献[5]提出一种基于语义对齐的多区域模板融合三维人脸识别算法,将所有三维人脸模型与预定义标准参考模型做稠密对齐,根据人脸表情具有区域性的特点,提出基于多区域模板的相似度预测方法,但是该方法光照变化十分敏感,抗光照变化干扰能力差。文献[6]针对人脸识别方法在光照变化,表情变化及噪声干扰等情况下识别率下降的问题,将主成分分析、小波包分解和稀疏表示分类等算法结合起来进行人脸识别研究分析,提出了一种融合小波包细节子图及稀疏表示的人脸识别方法,其人脸识别效率较高,对于人脸图像的暗点、亮点及边缘等部分细腻模式与分散状况及鲁棒性部分纹理特征能够进行详细的描绘,因此不理想环境下人脸识别效果有待进一步提升。

针对复杂光照条件下人脸识别问题,为了提高人脸识别精度,本文提出了基于小波变换与LBP算子的人脸识别方法,结合小波变换的多分辨率和LBP算子细化特征的优点,并通过具体的仿真对比实验,验证了小波变换与LBP算子的人脸识别的优越性。

1 基于小波变换和LBP算子相结合的人脸识别方法

1.1 小波变换的人脸图像预处理

(1)

(2)

式中,a、b分别表示收缩因子与平移因子。

小波变换系数定义如下:

(3)

那么小波变换的逆变换为

(4)

由于人脸图像是一种离散信号,为了增强人脸图像处理效果,对连续小波需要进行离散化处理,离散化小波定义如下:

(5)

离散化小波变换系数定义如下:

(6)

离散化小波变换重构形式为:

(7)

对一人脸图像,通过分解可以得到低频人脸图像和高频人脸图像,高频人脸图像包括:水平、垂直和对角线方向的人脸图像,分别采用LL、LH、HL、HH进行描述,具体如图1(a)所示,然后对低频人脸图像LL进行进一步小波分解,得到结果如图1(b)所示。

(a) 一层分解

(b) 二层分解图1 人脸图像的小波变换示意图

由于光照变化部分处于高频部分,因此用矢量量化方法除去小波变换后的高频分量,并通过小波重构得到无光照变化的人脸图像。

1.2 LBP算子提取人脸识别特征

在人脸图像识别过程中,人脸特征提取十分重要,根据特征可以对人脸图像的类别进行分类,从而实现人脸识别。当前人脸图像识别特征很多,其中纹理特征可以描述人脸图像的部分灰度变化,对光照变化鲁棒性强,因此本文选择局部二值模式(LBP)算子提取人脸识别特征。在人脸图像中,L表示一个像素LBP特征,该特征与该像素灰度值pf和其邻域内像素点的灰度值直接相关,可以描述为[9]

L=e(pf,p1,p2,…,pN)

(8)

式中,N表示邻域内像素点数,第i个邻域像素点的灰度值表示为pk。

当邻域内像素点数为4和8时,那么中心像素与邻域内像素之间的位置关系可以采用图2进行描述,其中红色点表示中心像素,黑色点表示邻域内像素。

(a) 邻域内像素数为4

由于中心像素与邻域内像素之间的灰度值有一定的差别,可以用灰度差更好描述人脸图像纹理特征,那么LBP特征可以变为

L=e(pf,p1-pf,p2-pf,…,pQ-pf)

(9)

由于中心像素点和邻近像素点之间相互独立,这样式(8)可以变为

L=e(pf)e(p1-pf,p2-pf,…,pQ-pf)

(10)

通常情况下,可以忽略中心像素点的纹理特征,这样可以得到中心像素点的灰度值:

L≈e(p1-pf,p2-pf,…,pQ-pf)

(11)

由于灰度差的值可能是正的,也可能是负的,这样可以得到:

L=e(u(p1-pf),u(p2-pf),…,u(pQ-pf))

(12)

其中:

(13)

根据式(11),得到一个1和0组成的序列,人脸图像像素点的LBP特征为

(14)

综合上述可知,人脸识别的LBP特征提取过程具体如图3所示。

1.3 小波变换与LBP算子的人脸识别原理

针对当前人脸识别方法存在的缺陷,利用小波变换的多尺分解功能和LBP算子的优点,以改善人脸识别效果为目标,提出了基于小波变换与LBP算子的人脸识别方法,该方法的工作原理具体为:首先采集待识别的人脸图像,并采用小波变换对人脸图像作多尺分解,通过对低频子图像进行去噪预处理,消除光照变化对人脸识别的干扰,然后采用LBP算子提取人脸图像纹理特征,将特征连接组合在一起产生特征向量,最后采用k近邻算法根据特征向量建立人脸识别的分类器,如图4所示。

2 仿真实验

2.1 人脸识别的数据集及仿真实验环境

为了测试小波变换与LBP算子的人脸识别方法有效性,选择当前标准人脸数据集Yale-B与AR人脸库作为实验对象。其中Yale B包含了10个人的人脸图像,总共5760幅人脸图像,按光照变化条件,所有图像可以划为5个子集,第1个子集的光照方向为(0~12°),第2个子集的光照方向为(13~25°),第3个子集的光照方向为(26~50°),第4个子集的光照方向为(51~77°),第5个子集的光照方向为78°以上,部分人脸图像如图5(a)所示。AR人脸库有10个人人脸,每一个有15幅人脸图像,部分人脸图像如图5(b)所示。人脸识别的实验环境为:4核 Intel 2.70 GHz的CPU,16 GB RAM,Win 10。为了使人脸识别结果具有可比性,选择Retinex算法的人脸识别方法[11]和支持向量机的人脸识别方法进行对照实验[12]。

(a) Yale-B

(b) AR图5 人脸仿真识别的实验对象

2.2 Yale-B数据集的人脸识别精度

对于Yale-B人脸库,以第1组人脸图作为训练样本集合,其它组作为测试样本集合,采用3种方法对训练样本进行学习,建立人脸分类器,然后对测试样本进行测试,统计它们的人脸识别精度,具体如表1所示。对表1的人脸识别精度进行对比和分析可以发现,在光照变化较小的条件下,3种方法的人脸识别精度没有太多的差别,随着光照变化越来越大,支持向量机、Retinex算法的人脸识别精度下降幅度亦变得越来越大,而本文方法的人脸识别精度变化较小,十分稳定,对比结果表明本文方法的光照变化鲁棒性强。

表1 3种方法的Yale-B人脸库识别精度对比 单位:%

2.3 AR数据集的人脸识别率精度

对于AR人脸库,随机将150幅人脸图像划分为5个组,选择第1个组作为训练样本集合,建立人脸分类器,其它5组人脸图像作为测试样本集合,验证建立人脸分类器的有效性,统计它们的人脸识别精度,结果如表2所示。对表2的人脸识别精度进行对比分析,相对于支持向量机、Retinex算法的人脸识别方法,本文方法的人脸识别精度同样得到了不同程度的提升,降低了人脸识别误差,再次验证了本文方法的优越性。

表2 3种方法的AR人脸库识别精度对比 单位:%

2.4 人脸识别效率对比

由于人脸识别效率也十分关键,因此分别从Yale-B人脸库和AR人脸库中随机选择100幅人脸图像作为测试对象,这样共得到200幅人脸图像,将它们平均划分为5组,统计每组的人脸平均识别时间,结果如图6所示,对图6的人脸识别时间进行对比和分析可以发现,支持向量机、Retinex算法的人脸识别耗时长,而且十分不稳定,而本文方法的人脸识别时间少,而且很稳定,提高了人脸识别效率。

图6 不同方法的人脸识别效率对比

2.5 人脸识别效果的比较

随机抽取1幅人脸图像,采用3种方法进行识别,结果如图7所示。从图7可知,本文方法的人脸识别效果要优于支持向量机、Retinex算法。

(a) 待识别人脸图像

(b) 支持向量机

(c) Retinex算法

(d) 本文方法图7 不同方法的人脸识别效果比较

3 总结

人脸识别由于受到光照变化、采集设备、操作人员的水平等多种因素的影响,加以人脸图像复杂多变,当前方法无法获得理想的人脸识别效果,为了获得理想的人脸识别结果,本文提出了小波变换和LBP算子相融合的人脸识别方法,并选择标准人脸数据集Yale-B与AR,在相同测试环境下,与当前经典人脸识别方法进行了对比实验,结果表明,相对于经典人脸识别方法,小波变换和LBP算子的人脸识别精度得到了大幅度得升,减少了人脸识别时间,加快了人脸识别速度。由于人脸识别结果与多种因素密切相关,本文只对照变化条件的人脸识别进行研究,对于遮挡人脸、多姿态人脸没有进行相应研究,这将是下一步要深入研究内容。

猜你喜欢

算子人脸灰度
采用改进导重法的拓扑结构灰度单元过滤技术
有界线性算子及其函数的(R)性质
有特点的人脸
一起学画人脸
玻璃窗上的人脸
天津港智慧工作平台灰度发布系统和流程设计
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
Domestication or Foreignization:A Cultural Choice
Arduino小车巡线程序的灰度阈值优化方案
QK空间上的叠加算子