基于分块加权的LBP算法在人脸识别中的应用

2018-09-10 01:02朱天星黄世震
河南科技 2018年8期
关键词:分类器预处理人脸

朱天星 黄世震

摘 要:目前,高智能化的人脸识别系统一般都是基于PC平台,系统复杂集成度高,需要优异的软硬件支持。嵌入式技术的应用,有利于提高人脸识别系统的灵活性与有效性。本文针对传统的人脸识别算法提出一种改进的LBP算法用于人脸识别。实验结果表明:该算法在ORL、Yale及自建的人脸库上也能进行人脸识别。

关键词:人脸识别;基于分块加权的LBP算法;Adaboost检测算法

中图分类号:TP391.41 文献标识码:A 文章编号:1003-5168(2018)08-0010-03

Application of LBP Algorithm Based on Block Weighting in Face Recognition

ZHU Tianxing HUANG Shizhen

(College of physics and Information Engineering, Fuzhou University,Fuzhou Fujian 350108)

Abstract: At present, the highly intelligent face recognition system is generally based on the PC platform. The system is highly complex and requires excellent hardware and software support. The application of embedded technology is conducive to improving the flexibility and effectiveness of face recognition system. In this paper, we proposed an improved LBP algorithm for face recognition based on the traditional face recognition algorithm. Experimental results showed that the algorithm could recognize faces in ORL, Yale and self built face database.

Keywords: face recognition;LBP algorithm based on block weighting;Adaboost detection algorithm

目前,人臉识别在智能化领域使用范围较广,被广泛应用于安全防范领域、身份确认领域、家政服务领域、图像检索领域和人机交互领域等。现如今,一般高智能化的识别系统都是在PC机上实现的,需要选取的设备成本比较高,不利于大范围应用,制约了市场推广[1]。针对该问题,本文提出基于分块加权融合的LBP算法。本文以Adaboost算法为基础研究人脸检测算法,然后研究OpenCV中使用局部加权融合的LBPH算法,最后以Ubuntu为PC的开发环境,ARM为运行平台,OpenCV中的算法为主体处理算法进行嵌入式人脸识别系统的开发,最终设计出能在嵌入式平台中运行的人脸识别系统。

1 人脸识别原理

总的来说,人脸识别系统可以分为两大部分(如图1所示):左侧的训练部分和右侧的识别部分。训练部分主要包括人脸库选取或者自建,采集图像并进行预处理,人脸检测定位,对检测出的人脸进行进一步预处理,处理完后提取图像特征,将提取后的人脸放入特征库。而识别阶段就是重新采集需要的人脸进行定位检测,预处理后提取相关特征,并与之前特征库的人脸信息进行匹配,从而检测识别采集的人的信息。

2 算法研究

2.1 Adaboost检测算法

Adaboost算法是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。弱分类器的公式定义为:

[hjx=1 pjfj式(1)中的[hjx]表示弱分类器的结果,1表示结果为人脸,0表示结果不是人脸;[θj]表示弱分类器的阈值;[fj]表示特征值;[pj]表示不等号的方向。

①假设有n张人脸图像,其中训练的数据集表示为[x1,y1,x2,y2,…,xn,yn],数据集中的[xii=1,2,…,n]表示为样本组的一张人脸图片,[yii=1,2,…,n]表示[w1,i=12m]对应的样本输出结果。由于该过程是在进行人脸检测,所以对应的[yi]只有两个结果,是人脸或者不是人脸,即1或者0。

②首先需要将对应的权值进行初始化,即[w1,i=12m]和[12l],其中[m]和[l]分别表示样本中正确识别人脸的个数和错误识别的个数。

③多次迭代,for t=1,[…],T。

第一,根据步骤②的方法,归一化权值[wt,i]:

[wt,i=wt,ij=1nwt,j i=0,1,…,n] (2)

式(2)中t表示样本需要迭代的次数,i表示样本迭代到达的位置。

第二,选取单个特征j来训练对应的弱分类器hj,计算使用该弱分类器对应的权值wt的错误率。

[εj=imwihjxi-yi] (3)

第三,计算[εj]使其最小,得到对应的分类器[hj]。

第四,然后迭代,更新新的权值,计算公式如式(4)所示:

[wi+1,i=wt,iβt x正确分类wt,i x未正确分类] (4)

式(4)中,

④通过上述的推导,最终得到的强分类器:

[hx=1 t=1Tlog1β1htx≥12t=1Tlog1βt0 其他] (5)

2.2 LBP算法

LBP算法[4]的基本原理是:首先需要将LBP算子放在需要处理的人脸灰度图中。其中,算子中心点的像素可以作为其阈值,并与其他像素点进行对比,大于等于阈值的像素点标记为1,小于阈值的像素点标记为0。如图2所示。

原始的LBP算子提出后,人們进行了各种优化及改进,其中圆形的LBP算子使用(P,R)表示邻域的参数情况,其中P表示邻域中像素的个数,而R通常是邻域中的圆形半径。

图3是不同P、R值的领域像素分布图。突破原始LBP描述子的一些纹理特征和区域结果的限制,对其进行一定改进,将原始的3×3扩展到任意邻域,并把以前的正方形邻域换成圆形邻域。

如图3所示,假设其中中点有N个,那么其像素对应的LBP值的范围为0~2n-1。假设PC为圆形邻域中心点的像素值,对应邻域中其他点的像素值为P1,…,Pn,则PC的LBP值如公式(6)所示。

[LBPpc=i=1nsP1-Pi*2i-1] (6)

LBP描述子对光照具有一定的鲁棒性,但并不是旋转不变的。图像旋转时,PC的邻域是会发生变化的,而这个变化则会直接改变PC的LBP的值,进而影响LBP描述子对人脸识别的贡献。

为了克服图像旋转对LBP描述子的影响,笔者提出了旋转不变的LBP算子。其基本思想是:如果不断地旋转图像,就会得到一组初始的LBP值,然后选取其中的最小值作为这个邻域的LBP值。计算公式如式(7)所示:

[LBPriP,R=minRORLBPriP,R,ii=0,…,P-1] (7)

式(7)中,[LBPriP,R]表示的是半径为[R]时,邻域含有[P]个点旋转不变的LBP的值,ROR(x,i)为旋转函数,其表示对P位二进制数x向右循环移位i次。

在旋转不变的LBP计算过程中,首先需要对原先的邻域旋转P-1次,加上原先的邻域模型,可以得出P个LBP值,从这其中选取最小的作为该邻域的LBP值。

3 识别过程

3.1 人脸检测与图像预处理

视频采集是基于V4L,对采集的图像进行预处理、人脸检测、特征提取,其流程如图4所示。

图4中,检测人脸过程中,需要对人脸进行校准旋转,含有眼镜和不含有眼镜检测的结果如图5所示。

人脸预处理涉及灰度化、均衡化、双边滤波,根据人眼位置对人脸进行裁剪后再次预处理,提取特征值,其处理图如图6所示。

3.2 人脸识别

本嵌入式系统设计将图像分成88=64小方块进行单独处理,即单张图片包含64块,而对应的每块中含有28个数据,即最后的整张图总的直方图向量含28 64=16 384个值。LBP分块加权直方图如图7至图9所示。

3.3 测试结果

系统先进行信息采集,当对采集后的图像进行预处理并完成训练后,就会存入特征库进行下一步识别。采集界面如图10所示,识别结果如图11所示。

4 结论

本文提出局部加权与整体集合的LBP算法进行人脸识别并移植到ARM平台。经过测试,时间延迟良好。系统稳定后,最低延迟达到28.53ms左右,且在ORL、Yale及自建的库上能进行人脸识别。

参考文献:

[1]骆超.低功耗嵌入式实时人脸识别系统[D].上海:上海交通大学,2013.

猜你喜欢
分类器预处理人脸
分类器集成综述
非水溶剂预处理木质纤维原料研究进展
不同预处理对铁皮石斛热风干燥特性及品质的影响
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
手术器械预处理在手术室的应用
学贯中西(6):阐述ML分类器的工作流程
污泥预处理-厌氧消化体系的能源经济性评价
玻璃窗上的人脸
智力考场:有趣的图片测试
基于AdaBoost算法的在线连续极限学习机集成算法