基于局部二值模式与K-均值的人脸识别
2014-12-23薛红,李晗,王瑜
薛 红,李 晗,王 瑜
(北京工商大学 计算机与信息工程学院,北京100048)
0 引 言
近年来,基于局部二值模式 (local binary pattern,LBP)的人脸识别算法以其具有很好的旋转不变性和光照鲁棒性,受到了广大研究者的关注,取得了显著的成果,并涌现出很多新的改进方法[1-3]。例如,He等[4]提出了多元结构局部二值模式 (multi-structure LBP,MSLBP)的纹理分析方法,Zhang 等[5]提出了单基因局部二值模式(monogenic LBP,MLBP)的纹理分类方法,Guo等[6]提出了Fisher判 别 学 习 的 局 部 二 值 模 式 (FSC-based learning LBP,FBL-LBP)纹理分类方法等。但大多改进方法仍然只是对3×3局部邻域的基本LBP算子进行强化,这样会损失掉大邻域的结构信息,或采用均匀模式的LBP算子提取大尺度的图像纹理信息,但在在很多情况下,这种均匀模式并不是最优的,甚至是失效的。针对上述问题,本文提出一种融合LBP与K-Means的人脸识别算法,利用大尺度LBP算子提取图像纹理特征,同时针对大邻域出现的二值模式种类剧增的缺点,利用K-Means聚类算法对LBP特征进行降维,使其在减少模式种类的同时最大限度地保留具有代表性的模式。实验结果表明,本文提出的方法具有更强的人脸图像表达能力,能够显著提高人脸识别率。
1 LBP算子
LBP是Ojala在1996 年提出的一种局部纹理描述算子[2]。其基本思想是:以中心像素的灰度值为阈值,将其与邻域像素灰度值相比较,若邻域像素灰度值大于该阈值,则标记为1,否则为0,将得到的二进制码转换成十进制数值来取代中心像素。LBP算子的定义如下
式中:gc——中心像素点(xc,yc)的灰度值;P——近邻点个数,R——纹理基元的半径;gp——近邻点的灰度值。图1为3种不同P 和R 所对应的LBP算子。
图1 几种LBP算子
使用LBP纹理特征进行人脸识别时,利用LBP的统计直方图来表达图像信息,直方图的计算公式如下
对于一个LBPP,R算子,会产生2P种模式,P 值越大,越能统计到更多的人脸图像结构信息,图像损失越小,但同时,随着近邻点个数增加,二值模式的种类是呈指数急剧增加的。例如,若近邻点为16,则二值模式的种类会增加到65,536 (=216)。相应地,LBP 直方图的维数也会骤增,这无论对于纹理的提取、识别,还是信息的存取,都是十分不利的。为了解决上述问题,Ojala提出了一种“均匀模式”的LBP 算子,它可以视作纹理的基本属性,包含了大部分的纹理模式,并可将模式的数量从2P减少到P (P-1)+2种。虽然均匀模式可以有效地降低维数,但邻域采样点范围过大时,数据维数还是增长迅速。而且,当图像发生较大光照或表情变化时,均匀模式所占的比率不到60%,甚至更低,这会严重丢失有价值的信息。
2 融合LBP与K-Means的人脸识别算法
针对上述问题,本文引入K-Means聚类算法,对LBP直方图进行降维,使之在数据减少的情况下更好的表达图像信息,以达到提高人脸识别率的目标。
K-Means是一种快速的聚类方法,目标是将n个对象聚为K 类,使每个类内差异渐小、类间差异渐大,从而得到一个较理想的聚类[7]。该算法首先随机选取K 个对象作为初始的聚类中心,然后计算其余对象到聚类中心的距离,把每一对象分配到与之距离最近的类中,接下来计算调整新类的聚类中心,若相邻两次聚类中心未发生变化,则聚类完成。该算法框架如下:
(2) 计算每一数据对象到聚类中心的距离D (xi,zj(t) ), 如 果 满 足 D (xi,zl(t) )=,则xi∈zl(t) ,其中i∈ {1 ,2,…,n} ,l∈ {1 ,2,…,K };
通过K-Means算法我们可以把大数据量的LBP二值模式进行聚类,使其在不损失主要信息的情况下,大大降低LBP 特征的维度,这样LBP 直方图就降维到K 维 (K2P),不仅增强了LBP直方图的人脸鉴别能力,而且节省了计算和存储成本。具体步骤请见第3节。
3 算法步骤
融合LBP 与K-Means的人脸识别算法过程如图2 所示,具体步骤如下:
图2 LBP与K-Means的人脸识别融合算法流程
(1)利用LBP16,2算子计算所有训练样本的局部纹理特征值,统计所有LBP值出现的频次,用K-Means聚类算法将其聚为K 类,这里我们仅考虑频次大于10的情况,可以有效忽略掉异常值;然后把每个LBP值与其聚类中心联系起来离线建立一个查找表。
(2)将测试人脸图像进行分块,同样利用LBP16,2算子计算每块人脸图像的LBP值,然后将每块中LBP值通过事先建立好的查找表映射到相应的聚类中心,快速统计出子区域LBP直方图,计算公式如下
(3)将所有人脸子块的直方图依次连接起来,建立完整的人脸特征直方图。算法完整的特征提取过程如图3所示。
图3 特征提取流程
(4)最后采用最近邻分类器分类识别。
4 实验结果及分析
本文选用AR 标准人脸库[8]对算法进行比较和测试。AR 人脸库包含126人,每人26幅不同时期、光照、表情及姿态条件下的正面图像。实验中,我们选取20名男性及20名女性,每人10幅图像作为训练样本,另外16幅图像作为测试样本,每幅图像均裁剪成50×40大小。具体实验结果如下。
4.1 不同参数对识别结果的影响
本节首先讨论参数对算法性能的影响。
(1)聚类中心数K 的选取
聚类中心个数的选取直接关系到LBP 直方图特征维数,从而影响人脸识别率。这里,我们选取半径为2,邻域点数为16的LBP算子,分块数固定为3×3,聚类中心K分别选取50、100、150、200、250、300、350、400,实验结果如图4所示。
图4 聚类中心数K 对人脸识别率的影响
从图4可以看出,在其它参数固定的情况下,随着聚类中心K 的增多,人脸识别率会先增加后降低,K 取150时识别效果最好。这是因为K 越小,直方图的维数也会越小,过小的维数不易表达人脸局部特征的差异性;而K 越大,LBP特征直方图的维数也会越大,直方图过于稀疏不利于表征人脸,会严重影响人脸识别率。因此,本文算法中的聚类中心数K 取值为150。
(2)图像分块数的选取
对人脸图像进行分块可以有效地提取局部纹理特征,有助于提高识别的性能,不同的分块大小对识别率会有一定的影响。我们将人脸图像分别分成1×1、2×2、3×3、4×4、5×5的子块,实验结果如图5所示。
从图5可以清楚地看到,人脸图像在分块情况下的识别率要比不分块时高,且在4×4分块时识别率最好,随着分块数的增多,识别率又开始下降,这是因为:过多的分块既无法提取到较大区域的局部特征,又会破坏全局特征,反而不利于识别。只有分块适当,才能够得到较好的识别效果。
(3)LBP算子尺度的选取
LBP算子可以描述出邻域像素相对于中心像素的灰度值分布规律,所以LBP算子尺度的选取至关重要。我们通过选取不同的采样点个数P 和半径R 的值,来测试LBP尺度对人脸识别率的影响。实验结果如图6所示。
从图6可以看到,随着采样点和半径的逐渐增加,识别率同样呈现一个先增后降的过程,采样点和半径取 (16,2)时要高,这是因为大邻域范围能描述更多的结构信息,但如果尺度过大,就会丢失掉局部信息,反而降低识别率。
4.2 不同算法的识别性能比较
为了验证提出算法的性能,本文选择了一些经典的人脸识别算法进行比较,包括PCA[9],2DPCA[10],Gabor[11]小波和LBP[2]算法。实验分别对比了各算法在时间变化、表情变化和光照变化下的识别性能,对比结果如图7所示。
图7 不同算法的识别性能比较
从图7可以看出,基于局部特征的人脸识别算法整体上要比基于全局特征的人脸识别算法好,这主要是因为基于局部特征的人脸识别算法更加注重人脸的细节变化,能更好地提取人脸的特征。在表情变化、时间变化和光照变化情况下,本文算法的识别效果都要明显优于其它算法,这是因为本文所用的大尺度LBP算子可以提取到更丰富的结构信息,引入K-Means算法又可在数据量减少的情况下能更好地表达图像信息。由于LBP算子本身具有较好的光照不变性,所以改进后算法的光照鲁棒性也得到了显著的增强。
5 结束语
本文提出了一种融合LBP和K-Means聚类的人脸识别算法。较传统算法相比,本文算法利用大尺度的LBP 算子可以提取更加丰富,且更有利于后续分类识别的局部纹理特征,引入K-Means聚类算法则可以有效降低LBP直方图的维数,更好的表达人脸特征,减少数据存储空间和计算时间。本文通过实验详细分析了各参数对识别结果的影响,并且对比了本文算法和现有算法在各种因素制约下的识别效果,实验结果表明,本文提出的算法对时间、光照及表情变化等均具有很好的识别效果。
[1]WANG Jinyun,ZHOU Huijie,JI Zheng.Research on face recognition technology in complex background [J].Computer Engineering,2013,39 (8):42-26 (in Chinese). [王金云,周晖杰,纪政.复杂背景中的人脸识别技术研究 [J].计算机工程,2013,39 (8):42-26.]
[2]YUAN Baohua.Face recognition based on completed local binary pattern [J].Application Research of Computers,2012,29(4):99-102 (in Chinese).[袁宝华.基于完整LBP特征的人脸识别 [J].计算机应用研究,2012,29 (4):99-102.]
[3]SONG Kechen.Research and perspective on local binary pattern [J].ACTA Automatica Sinica,2013,39 (6):730-744(in Chinese).[宋克臣.局部二值模式方法研究与展望 [J].自动化学报,2013,39 (6):730-744.]
[4]He Y G,Sang N,Gao C X.Pyramid-based multi-structure local binary pattern for texture classification [C]//Proceedings of the 10th Asian Conference on Computer Vision,2011:133-144.
[5]Zhang L,Zhang L,Guo Z H,et al.Monogenic-LBP:A new approach for rotation invariant texture classification [C]//Proceedings of the 17th International Conference on Image Processing,2010:2677-2680.
[6]Guo Y,Zhao G,Pietikainen M,et al.Descriptor learning based on Fisher separation criterion for texture classification[C]//Proceedings of the Asian Conference on Computer Vision,2011:185-198.
[7]FENG Junshuai.A method of optimizing ellipse images recognition by automatic clustering [J].Electronic Test,2013,5(9):104-106 (in Chinese). [冯军帅.一种运用自聚类方法优化椭圆图像识别的方法 [J].电子测试,2013,5 (9):104-106.]
[8]HU Xiao.Face recognition based on complex integration of row and column features [J].Computer Engineering,2010,36(11):63-65 (in Chinese).[胡晓.基于行列特征复融合的人脸识别 [J].计算机工程,2010,36 (11):63-65.]
[9]ZHANG Yan,WU Yuqiang.New face recognition method based on improved modular PCA [J].Computer Engineering and Applications,2011,47 (26):216-218 (in Chinese).[张岩,武玉强.一种改进的模块PCA 人脸识别新方法 [J].计算机工程与应用,2011,47 (26):216-218.]
[10]HAN Xiaocui.Improved 2DPCA method for face recognition[J].Computer Engineering and Applications,2010,46(25):185-187 (in Chinese).[韩晓翠.一种改进的2DPCA人脸识别方法 [J].计算机工程与应用,2010,46 (25):185-187.]
[11]LI Wenhui,GAO Lu.Feature selection fuzzy weighted multi-Gabor face recognition [J].Journal of Hunan University(Natural Sciences),2013,40 (4):87-93 (in Chinese).[李文辉,高璐.特征选择模糊加权多通道Gabor人脸识别 [J].湖南大学学报 (自然科学报),2013,40 (4):87-93.]