基于改进LBP的单样本人脸识别算法

2018-01-03 01:55
计算机应用与软件 2017年12期
关键词:邻域直方图算子

张 辉 刘 新

(湘潭大学信息工程学院 湖南 湘潭 411105)

基于改进LBP的单样本人脸识别算法

张 辉 刘 新

(湘潭大学信息工程学院 湖南 湘潭 411105)

针对人脸识别难题,提出一种基于改进LBP(Local Binary Patterns)算子的单样本人脸识别算法。采用Bernser算法与LBP算子结合的BLBP算子,最后利用Chi平方统计方法计算直方图的相似度。在识别时,采用的是核实式的一对一匹配,根据训练的阈值,判断两张比对的人脸图像是否为同一个人。所提出的算法在实际人脸图像和FERRET人脸数据库下的人脸识别中,与原LBP算法相比识别率有所提高。实验结果表明,改进后的LBP算子有较好的去噪能力,在实际的人脸识别中能获得更好的识别率。

人脸识别 局部二值模式(LBP) Bernser算法 单样本

0 引 言

目前生活中的身份识别主要采用号码、磁卡、口令等识别方法,这些都存在着易丢失、易伪造、易遗忘等诸多问题。随着科学技术的不断发展,传统的身份识别方法已经受到越来越多的挑战,可靠性大为降低,而基于生物体征的身份识别技术逐渐的进入到人们的视线中[1]。与其他人类的生理特征相比,人脸存在易采集、非接触、静态等优点,比较容易被大众所接受。随着社会的进步、发展,如何实现快速、精确的人脸识别变的日益迫切[2]。

当前的人脸识别算法可分为基于全局的方法和基于局部特征的方法。基于全局的人脸识别算法主要有:主成分分析法[3-4]PCA(Principle Component Analysis),判别邻域嵌入法[5]DNE(Discriminant Neighborhood Embedding),线性判别法[6]LDA(Linear Discriminant Analysis)等。这些方法从全局保留了图像的纹理、形状、轮廓等信息,但全局特征下的人脸照片对光照、姿态、表情的变化较为敏感,因此,当外部环境发生变化时,稳定性不高,识别率较低。针对这些问题,研究者提出了局部特征描述子提取人脸图像的局部特征集,作为人脸图像的特征,典型的算法有:局部特征析法[7]LFA(Local Feature Analysis)、弹性图匹配法[8]、Gabor小波法[9-10]等。

人脸识别技术分为两类,一类是基于多个训练样本的人脸识别技术,一类是基于单个训练样本的人脸识别。目前较为成熟的人脸识别系统都是多样本人脸识别,即每个人有多幅训练样本。在训练样本充足的情况下能取得不错的识别效果。相对的,单样本人脸识别是指在人脸数据库中有且仅有一张人脸样本,通过该人脸样本判断需要识别的人脸图像身份。在很多实际应用中,尤其是一些特殊场合,例如:护照验证、身份证验证、驾驶证验证等,往往只有一幅样本。再者,在大规模的人脸识别应用中,如果为每个人搜集更多的训练样本,势必会造成极昂贵的成本。

因此,基于多样本的人脸识别系统具有较大的局限性,而研究基于单样本的人脸识别技术则适应性更为广泛一些。但是传统的人脸识别算法在只有单样本的情况下,识别效果不够理想。针对单样本人脸识别,本文提出了一种基于改进LBP的人脸识别算法。

1 LBP算法原理

局部二值模式LBP一种用来描述图像局部纹理特征的算子,于1996年由芬兰Oulu大学的Ojala等提出[11],用来度量和提取图像的局部纹理信息。由于它在纹理分类中有较强的区分能力,且具有灰度不变性和旋转不变性等优点,现已应用到人脸检测、人脸识别之中。

原始的LBP算子定义为在3×3的邻域内,以邻域中心像素点的灰度值为阈值,将相邻的8个像素点的灰度值与其进行比较,若其像素值大于中心像素值,则该像素点被标记为1,反之标记为0。这样,3×3邻域内的8个点经比较可生成8位二进制数,将这个二进制数转换为十进制数,即为该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。如图1所示。

图1 基本LBP算子

其公式定义如下:

(1)

其中:(xc,yc)代表3×3邻域的中心元素,它的像素值为ic,ip代表邻域内其余像素点的像素值。s(x)是符号函数,定义如下:

(2)

2 本文方法

在理想条件下,当前的人脸识别技术相当可靠,但是现实条件下使用这些人脸识别技术时会不太可靠。目前的LBP技术对图像中的光照类型、光照和阴影方向、准确的人脸方位、面部表情等非常的敏感。如果样本照片中灯光来自左侧,用于识别的照片灯光来自右侧,这可能使得识别结果很糟糕。要改善样本质量,需要对人脸进行预处理,以减少外界干扰因素的影响,确保人脸图像中的左右脸有相似的亮度和对比度,人脸特征始终在同一位置。人脸识别系统的可靠性在很大程度上依赖人脸预处理的好坏。

2.1 图像预处理

人脸识别的正确率,一方面与人脸识别算法本身有关,另一方面与人脸样本图像的质量和数量有关。人脸图像预处理,对于改善样本的质量至关重要。在进行人脸取样的时候,人脸不可能在我们期望的水平位置,而人脸识别中,人脸对齐很重要,否则人脸识别算法可能会出现将鼻子与嘴巴进行比较的情形。这时,需要使检测到的两个眼睛在期望的位置保持水平对齐,由此来对齐人脸。

首先,用训练好的眼部探测器来检测眼睛的位置,若双眼位置在同一水平线上,则不需要旋转人脸图像;否则需要进行人脸倾斜矫正。利用仿射矩阵将检测到的眼睛位置变换到期望的位置,然后通过裁剪得到所需的尺寸和位置。仿射变换包括:旋转变换、缩放变换、平移变换等。仿射变换公式表示如下:

x=Ax0+bdet(A)≠0

(3)

其中:x,x0,b∈R2;A∈R2×2;x是对x0仿射变换后的结果。

旋转变换,是指平面上的每一个点P绕固定点旋转一个角度θ,变成另一个点P′。本文取双眼中点为固定点,θ为水平线到双眼连线之间的夹角。则其对应的变换矩阵如下:

(4)

缩放变换,是指把平面中某点的横坐标放大(缩小)sx倍,纵坐标放大(缩小)sy倍。本文中先预设了双眼间的距离,把检测到的双眼变换到我们预设的间距。其对应的变换矩阵如下:

(5)

平移变换,就是把平面中的点(x,y)的位置移动到(x+tx,y+ty)的位置。把检测到的双眼平移到我们预设的位置。其对应的变换矩阵如下:

(6)

通过仿射变换,旋转人脸,使检测到的两个眼睛保持水平;缩放人脸,使两个眼睛之间的距离始终相同;平移人脸,使眼睛总在所需的高度上水平居中;再裁剪人脸的外围(包括图像背景、头发、额头、耳朵等),将样本进行适当缩放,使得样本变成我们预设的尺寸。预处理的效果如图2所示。

图2 仿射变换效果

2.2 光照处理

在实际的人脸图像的采集中,经常是半边脸是强光照,半边脸是弱光照。这样对于电脑来说,本来是同一个人的左右脸,看起来像是来自不同的两个人,这将会大大降低人脸识别算法的准确率,因此需要标准化两侧人脸的亮度和对比度。

根据Xie等[12]提出的局部归一化技术LN(Local Normalization),将复杂光照下的人脸图像转换成正常光照下的人脸图像,从而降低由于光照变化对人脸识别带来的不利影响。其思想是:对于人脸图像f′=(x,y),(x,y)∈W,局部归一化处理后,它的像素值f(x,y)的方差为1,期望值为0。其转换表达式用公式表示如下:

(7)

其中:E(f′(x,y))和Var(f′(x,y))分别是人脸图像W内像素点的期望和方差。光照处理的效果如图3所示。

图3 光照处理效果

2.3 BLBP算子

在原始LBP的描述下,由于LBP是根据邻域内的像素确定的,所以容易发生跳变,对噪声非常敏感,那么提高算子的鲁棒性,对于特征值的提取有非常重要的意义。为了降低光照、噪声等原因造成的像素灰度值的突变,不以中心像素作为阈值,而是采用改进的Bernsen算法得到阈值。

Bernsen算法[13]是一种典型的局部阈值算法,其思想是在灰度图(2ω+1)×(2ω+1)的窗口中,计算中心像素点(i,j)的阈值T(i,j)。

T(i,j)=0.5(maxf(i+m,j+n)+minf(i+m,j+n))

(8)

其中:|m|≤ω,|n|≤ω,将Bernsen算法应用到3×3的窗口中,则改进后的BLBP算子的公式如下:

(9)

其中:(xc,yc)代表3×3邻域的中心元素,ip代表邻域内其他像素的值,T(i,j)是3×3邻域的阈值。

2.4 直方图相似度计算

首先,图像通过预处理,再经过LBP算子运算后,得到一张LBP的响应图,将该图像响应图的直方图作为比较的输入参数。然后通过计算两张图片直方图的相似度的数值[14],得到两张图片的差距。

直方图相似度的计算公式:

(10)

d(H1,H2)的范围是[0,+∞),差值越小,说明两张图片的相似度越高,越有可能是同一个人;反之,则很可能不是同一个人。

2.5 单样本

人脸识别的比对方式分为核实式和搜索式两种。核实式是对指定的人脸图像与数据库中已登记的某一对图像作比对核实,确定其是否为同一人;搜索式的比对是将人脸图像与数据库中所有的人脸图片进行比对,识别结果为数据库中差值最小的那个。

本文采用改进的LBP算子提取图像特征,然后通过公式计算两幅图像直方图的相似度,得到两幅人脸图像间的差值,且采用的是核实式人脸比对模式,不需要独立训练集包含模板图像,因此该方法可以应用到单样本人脸识别中。

3 实验结果与分析

首先,对输入的样本进行预处理,得到统一的大小(72×72),然后进行光照处理,降低光照变化带来的不利影响。由于本实验采用核实式的人脸比对模式,首先,我们需要进行大量的样本训练来确定阈值,再通过阈值判断是否为同一个人。其过程分为离线训练和在线匹配两个部分,如图4、图5所示。

图4 离线训练

图5 在线匹配

通过大量的数据训练得到同一个人的人脸差距范围[0,t0],与非同一个人的人脸差距[t1,+∞),可以用阈值t0、t1来判断两张图片是否是同一个的人,即如果两张图片的直方图的相似度差Δt值小于t0,则认为一定是同一个人,如果Δt大于t1,则一定不是同一个人,Δt介入t0和t1之间,则无法确定是否为同一人。

(11)

将本文所提的方法与原LBP算法进行比较,其中LBP算子采用的是Uniform LBP。

某个人的LBP特征的直方图与自己的特征的直方图的相似度差值统计如图6所示。

图6 LBP特征直方图相似度

用改进后的BLBP算子计算,使用同一个人,做相同的实验,得到的直方图相似度的差值如图7所示。

图7 BLBP特征直方图相似度

通过图6与图7的比较可以看出,改进后的算法在一定程度上缩小了同一个人特征值直方图相似度的差值,更有利于阈值的确定。

实验结果:实际人脸图像所用的数据,来自项目中采集的二十个人,每个人15张照片,这些图片包含不同的角度,不同的性别。FERET数据库的所用的数据,来自其中的一个子集,包含200个人,每人7张人脸,这些人脸图片包含不同的光照、表情、姿态。结合不同的算子和预处理对不同测试集进行测试,其正确识别率如表1所示。

表1 不同情况下正确识别率比较

根据表1可以看出,在识别正常光照,且正面的样本时,改进的LBP算子与原LBP算子在识别率上差距不大,但在识别带有噪声、倾斜、不同光照下的人脸样本时,改进的LBP算子明显提高了人脸识别率。实验表明,本文提出的与Bernsen算法结合的阈值提取方法,提高了特征的鉴别能力,提高了人脸的识别正确率。

4 结 语

通过分析局部二值模式特征提取的过程,为了提高鲁棒性,改进了LBP特征值的计算过程,提出了与Bernsen算法结合的局部二值模式人脸识别算法,使得改进后的LBP算子有更强的去噪能力。通过对FERET数据库和实际人脸的实验,改进后的算法与原局部二值模式人脸识别算法相比,在一定程度上缩小了同一个人脸图像之间的差值,确实提高了原算法的鲁棒性和正确识别率。

[1] Hanna K J.Method and system for biometric recognition:U.S.Patent 8,953,849[P].2015-2-10.

[2] 覃岚.生物识别:全身都是密码[J].计算机与网络,2016,42(9):16-16.

[3] Turk M,Pentland A.Eigenface for recognition[J].Journal of Cognitive Neuroscience,1991,3(1):71-86.

[4] 谢佩,吴小俊.分块多线性主成分分析及其在人脸识别中的应用研究[J].计算机科学,2015,42(3):274-279.

[5] 王国强,欧宗瑛,王海燕,等.基于判别邻域嵌入的人脸识别[J].光電子·激光,2008,19(5):700-703.

[6] Izenman A J.Linear discriminant analysis[M]//Modern Multivariate Statistical Techniques.New York:Springer,2013:237-280.

[7] 杨军,张瑞峰,林岩龙.融合全局和局部特征的人脸识别算法[J].计算机工程与应用,2015,51(24):176-179.

[8] 俞燕,李正明.基于特征的弹性图匹配人脸识别算法改进[J].计算机工程,2011,37(5):216-218.

[9] Priya K J,Rajesh R S.Selective local texture features based face recognition with single sample per class[J].Journal of the Brazilian Computer Society,2012,18(3):229-235.

[10] 杨燕,樊林庆.基于光照变换的Gabor小波人脸识别[J].计算机工程与应用,2016,52(5):220-224.

[11] Ojala T,Pietikainen M,Maenpaa T.Multiresolution gray-scale and rotation invariant texture classification with local binary patterns[J].IEEE Transactions on pattern analysis and machine intelligence,2002,24(7):971-987.

[12] Xie X,Lam K M.An efficient illumination normalization method for face recognition[J].Pattern Recognition Letters,2006,27(6):609-617.

[13] 曾凡锋,王战东,郭正东.非均匀光照文档图像快速二值化方法[J].计算机应用与软件,2015,32(11):185-188.

[14] 邹承明,薛栋,郭双双,等.一种改进的图像相似度算法[J].计算机科学,2016,43(6):72-76.

ASINGLESAMPLEFACERECOGNITIONALGORITHMBASEDONIMPROVEDLBP

Zhang Hui Liu Xin

(CollegeofInformationEngineering,XiangtanUniversity,Xiangtan411105,Hunan,China)

For the single sample face recognition problem, this paper proposes a face recognition algorithm based on improved LBP operator. We used BLBP operator combined with Bernser algorithm and LBP operator; we calculated the similarity of histogram by using Chi square statistical method. During the recognition process, we used the verification type of one to one match. According to the training threshold, our algorithm could identify determine whether the two face images were the same person. Compared with the original LBP algorithm, the proposed algorithm could improve the recognition rate of face recognition in real face image and FERRET face database. The experimental results show that the improved LBP operator has a better denoising ability and can achieve better recognition in the actual face recognition.

Face recognition Local binary patterns (LBP) Bernser algorithm Single sample

2016-12-31。湖南省“十二五”重点学科开放课题(2015IM12)。张辉,硕士生,主研领域:信息安全。刘新,副教授。

TP391

A

10.3969/j.issn.1000-386x.2017.12.042

猜你喜欢
邻域直方图算子
符合差分隐私的流数据统计直方图发布
基于混合变邻域的自动化滴灌轮灌分组算法
含例邻域逻辑的萨奎斯特对应理论
基于FPGA的直方图均衡图像增强算法设计及实现
Domestication or Foreignization:A Cultural Choice
用直方图控制画面影调
尖锐特征曲面点云模型各向异性邻域搜索
一类算子方程的正算子解问题的研究
QK空间上的叠加算子
中考频数分布直方图题型展示