李丽娟,于威威
(上海海事大学计算机系,上海 262500)
基于改进LBP人脸识别方法研究
李丽娟,于威威
(上海海事大学计算机系,上海262500)
在我们日常生活中经常用到身份识别技术,国家安全、公安、司法、电子商务、保安监控等领域都用到身份认证和鉴别[1]。基于生物特征识别技术的身份验证的方法在过去几十年已得到很大的发展。生物特征识别技术内容广泛,主要有:指纹识别、虹膜识别、步态识别、静脉识别、人脸识别、耳廓识别、签名识别等[2~8]。由于人脸本身形态的差异性和所处环境的复杂性使得人脸识别变得十分困难。在多种因素的影响下,同一人脸在不同的图像中也有很大的差异。因此,人脸识别的研究具有较高的实际应用价值和理论研究。
局部二值模式(Local Binary Pattern,LBP)是一种线性特征提取方法,它是一种纹理局部特征描述。主要表现为局部灰度纹理描述方式。LBP算法能够有效地描述局部纹理特征,并且有算法简单快速的优点。O-jala、Ahonen等人成功地将LBP作为人脸特征提取的一种重要的技术手段[9~10],在人脸识别中取得了明显的效果。现阶段研究LBP算法的人越来越多,对LBP算法的改进也很多,例如在使用LBP前先进行小波变换[11],LBP金字塔算法等[12]。
原始的LBP算法主要存在图像信息使用不够充分的问题,在原始LBP算法的研究基础之上,本文提出一种分层的LBP算子(Hierarchical LBP,HLBP),改进后的LBP算子主要有以下的特点:①描述方法充分准确;②识别过程数据应用充分。
通过改进,使得提取的局部特征更具有判别分析能力,更适用于人脸识别。
原始的LBP算子主要是提取边缘轮廓局部区域的变化特征。它首先计算图像中每个像素与其局部邻域点在灰度上的二值序列关系,然后对二值序列关系进行编码形式形成局部二值模式,最后采用多区域直方图作为图像的特征描述。
Ojala最早提出的LBP算法是在一个选取3×3的矩形方块内[9],如图1所示,共9个像素点,分别对应的是9个点的灰度值,包括一个中心灰度值和8个周边灰度值,设定中间像素点的灰度值为阈值,将周边的8个像素点的灰度值跟阈值进行比较,如果比阈值大或者相等的标识为1,小于阈值的标识为0。选取一个像素点顺时针读出8个点的二进制值作为该矩形方块的LBP值,最后以统计直方图的方式给出整个图像的LBP特征,用来描述该区域的局部细节特征。
图1 基本的LBP算子演示
每个像素LBP数学计算公式如下:
其中LBP为中间像素点的lbp值,gc表示中心点的像素值,gi表示环绕8个点对应的像素值,S(x)为二值化函数:
数字图像经过LBP算子处理后,通过窗口中的LBP编码获得窗口的LBP直方图,再将所有的窗口LBP直方图进行联合获得整个图像的LBP联合直方图。不同大小的窗口统计的LBP编码不一样,所得的图像的直方图表示也是不一样的。并且将此直方图作为识别图像的特征值。
由于原始的LBP算法存在图像数据使用不充分的问题,因此本文提出一种分层的LBP算子的改进方法。采用多级LBP直方图序列特征识别方法。方法首先求取LBP的3×3扫描窗口区域中九个像素点的最大值和最小值,然后将其均分为若干个等级。分别将等分点值作为对应的阈值对图像进行LBP直方图序列化处理。最后将获得的LBP直方图序列进行联合获得HLBP直方图。本实验中采用n级的LBP直方图序列来完成特征信息的描述。具体的实验步骤如下:
将整幅图像分为m×m块进行LBP序列化扫描,其中LBP扫描窗口为3×3。
LBP值计算时所使用的阈值gc为区域内中心点的像素值。所得到的LBP直方图可表示为 Hi,c=[Hi,c,1,其中Hi,c表示对应第i种分层的以中心像素c为阈值的对应的LBP直方图。
每块计算LBP值时所使用的阈值gi为窗口中像素的最大值 gmax和最小值gmin的1/n等分点,即,分别得到对应的LBP直方图序列为:其中Hi,p,j(p=1,2,…n-1;j=1,2,…,m2)表示n级图像分割成m× m块的第p等分点的对应的第j个子块的直方图。
最后统计联合直方图Hi=[Hi,c,Hi,1,Hi,2,…,Hi,n-1],其中的i表示分层数,Hi,c,Hi,1,Hi,2,…,Hi,n-1是第一步第二步计算出的直方图,然后进行联合获得整个图像的LBP直方图。此直方图既可以作为局部特征又可以作为整体特征来描述整幅图像并用以识别。
为了验证算法的准确性,实验采用YALE和ORL两个人脸数据库进行识别。其中YEAL人脸库包括15位共165张不同姿态、光照和大小的面部图像,ORL人脸数据库包括40人共400张面部图像,部分图像包括了姿态、表情和面部装饰物的变化。为了消除图像中大小、灰度等无关信息的影响,恢复有用的真实信息,首先对图像进行归一化处理,使得图像具有相同的64×64大小,手工对鼻子和嘴巴的位置进行定位,并采用最近邻分类器进行识别。每人选择3幅作为训练样本,2幅作为测试样本。
首先对HLBP不同的分层程度进行测试,经典的LBP算法是HLBP算法的一种特殊形式,相当于1层的HLBP。1-5层分级的HLBP算法的识别率如图2所示。其中经典的LBP算法在ORL和YALE上的识别率分别为0.841和0.852,而3层的HLBP序列化的识别率最高。
在多次的实验过程中发现,等级的级别过多,就会出现很多的冗余信息,导致信息数据量过大,对后面的识别也带来一些困难,同样的如果对应的等级级别过少,会使得很多有效的细节信息被忽略,不能完整地表现出图像的局部与完整信息。层次区分过多或过少多会降低识别率。只有适当的分层才能得到较好的识别效果。经比较,本文采用3层的HLBP算法。
图2 HLBP不同分层数的识别率对比
图3 图像为三层3×3块的HLBP直方图联合示意图
其次,考虑到一幅人脸图像中并不是所有的区域都是重要的,为了突出图像中重要的人脸信息,将图像分别为分成1、4、9或16块。手工确定分块权值。其中分为4块的上面两块的权重为1,下面两块权重为1.2。分为9块的外面8块的权重分别为1,中间一块权重为1.5。分为16块的外面12块权重为1,中间四块权重为1.5。其中权重图3为3层3×3块的多尺度LBP直方图联合示意图。不同分块情况下的识别率如图4所示。
图4 3层HBLP在不同分块情况下的识别率对比
实验结果表明不同的分块对于人脸的识别率也有影响。分块对特征值进行不同的加权有很好的识别效果。在多次的实验过程中发现,分块多,就会出现很多的冗余信息,导致信息数据量过大,对后面的识别也带来一些困难,同样的如果分块少,突出数据信息不能很好的表达,也会对识别率有一定的影响。
本文针对LBP中图像数据使用不充分的问题,提出了一种多层次LBP的人脸识别算法,该方法首先获得局部区域内灰度的最大值和最小值,将最大值和最小值之间分成若干等级,分别将等级值作为对应的阈值对图像进行LBP直方图序列化处理。根据最近邻准则得到人脸识别结果。通过跟传统的LBP算法相比,本文提出的算法有较强的鲁棒性和较高的识别率。另外实验结果表明将图像进行分块加权,识别率也会升高。
[1]Zhao W,Chellappa R,Phillips P J,et al.Face Recognition:a Literature Survey[J].ACM Computing Served,2003,35(4):399~458
[2]Hietmeyer R.Biometric Identification Promise Fast and Secure Processing of Airline Passengers.The International Civil Aviation Organization Journal,2000,55(9):10~11
[3]孙冬梅,裘正定.生物特征识别技术综述.电子学报,2001,29(12):1744~1748
[4]X.Qing,Y.Jie,D.Siyi.Texture Segmentation Using LBP Embedded Region Competition[J].Electronic Letters on Computer Vision and Image Analysis,2005,5(1):41~47
[5]L.Ma,L.Zhu.Integration of the Optimal Gabor Filter Design and Local Binary Patterns for Texture Segmentation[C].In:Proc.of the 2007 IEEE International Conference on Integration Technology.Shenzhen,2007:408~413
[6]Chine J T,Wu C C.Discriminate Wavelet Faces and Nearest Feature Classifiers for Face Recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,24(12):1644~1649
[7]David D2.Automated Biometrics:Technologies and System.Kluwer Academic Publishers,2000
[8]Castrillon S M,Deniz S O,Guerra A C,et al.Real-Time Detection of Multiple Faces at Different Resolutions in Video Streams.Journal of Visual Communication and Image Representation,2007,18(2):130~140
[9]Ojala T,Pietikanen M,Harwood D.A Comparative Study of Texture Measures with Classification Based on Feature Distributions[J]. Pattern Recognition 1999,29(1):51-59.Pattern Recognition,1999,29(1):5l~59
[10]Ojala T,M.Pietikainen,T.Maenpaa.Multiresolution Gray Scale and Rotation Invariant Texture Classification with Local Binary Patterns[J].IEEE Trans.on Pattern Analysis and Machine Intelligence,2002,24(7):971~987
[11]高涛,何明一等.多级LBP直方图序列特征的人脸识别[J].中国图象图形学报,2009,14(2):202~207
[12]黄非非,李见为,王玮.结合小波分析和LBP算子的人脸描述与识别[J].重庆工学院学报,2009,23(1):102~109
HLBP;Face Recognition;Pattern Recognition
Research on the Face Recognition Based on Improved LBP Algorithm
LI Li-juan,YU Wei-wei
(Department of Computer Science,Shanghai Maritime University,Shanghai262500)
1007-1423(2015)17-0068-04
10.3969/j.issn.1007-1423.2015.17.015
李丽娟(1989-),女,湖北仙桃人,硕士,研究方向为模式识别
2015-04-17
2015-06-15
局部二值模式(LBP)是一种对灰度图像的纹理进行描述的方式。然而经典的LBP算法存在数据使用不充分的问题,因此提出一种分层的LBP算子(HLBP)。HLBP选取多层阈值对图像进行LBP序列化,然后将序列化后的LBP直方图进行联合。并在人脸识别中应用改进后的HLBP算子提取特征。基于YALE和ORL人脸数据库的实验结果表明,HBLP算法比经典的LBP算法的识别率高。
HLBP;人脸识别;模式识别
于威威(1978-),女,山东人,博士,副教授,研究方向为图像处理、模式识别
LBP is defined as a texture description method demonstrated in a certain gray scale.There is a problem of insufficient data use in the classic LBP algorithm,so proposes a hierarchical LBP algorithm to solve the problem.In the new method,selects multiple threshold values to serialize the images into LBP,then unions them and applies the improved HLBP algorithm to the face recognition.Based on YALE and ORL face databases,the experiments show that the recognition rate of HLBP algorithm is higher then that of classical LBP algorithm.