基于分块技术的改进LPB 人脸识别算法的研究

2016-06-17 20:14张茹薛凯李玮晖晏楠根熊育
电脑知识与技术 2016年11期
关键词:计算机视觉信息安全人工智能

张茹++薛凯++李玮晖++晏楠根++熊育婷

摘要:人脸识别是人工智能科学的重要问题,局部二值模式(LBP)算法是已知的比较精准的用于人脸识别的图像特征提炼算法。在对orgLBP(初始LBP),revLBP(旋转适应性LBP),uniLBP(均匀LBP),unirevLBP(旋转适应性均匀LBP)等几种LBP算法研究的基础上,通过大量实验比对和研究,设计了基于分块技术的改进LBP算法,有效提高了算法的鲁棒性。

关键词:人工智能;计算机视觉;信息安全;LBP

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)11-0173-04

1 引言

人工智能(Artificial Intelligence)是近年来计算机领域研究的新兴问题,它是让计算机通过已编写的程序来模拟人类行为的一门科学。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能的应用,可以提高现代复杂单一工业的工作效率以及工作水平。计算机视觉是人工智能的一个很重要、应用广泛的领域。

计算机视觉是一种给予机器视觉的学科,更进一步说,就是机器或者计算机通过摄像头或者现有的图像获取信息,并对外界做出相应分析的一门学科。其应用领域非常广泛,包括监控录像中的人员自动辨别,道路交通限速违章拍照中的车辆车牌的自动识别,保密部门的生物特征识别门禁系统等。特别是随着移动网络平台商品交易的日益流行,一个可靠的脸部识别功能可以进一步提高移动APP支付平台交易支付的安全性。

人脸特征提取是人脸识别的关键问题之一。近年来,研究者将局部二值模式(LBP)的方法引入到人脸特征提取中[[1-3]],取得了很大的成功。但是LBP算子本身并不完善,特别是在训练样本的维度高达几千甚至上万维的时候,其性能会急剧下降。针对此问题,本文采用分块技术,将分块后的LBP直方图串联起来形成一个高维的直方图特征矢量,接着利用经典的主成分分析(PCA)方法降维,最后利用相似度计算方法进行相似度对比。该方法针对不同的图像进行不同的分块,使得维数的约简更加方便,实验结果表明有效提高了特征提取的准确性。

2 LBP算法与LBP算法分块的实现

2.1 初始LBP算法

图像是由基本的像素点构成的,每一个像素点就会有一个对应的色值,彩色图像就会有三个对应红、绿、蓝的色值。如图(1)所示,取一个3X3的像素点阵,以中间的一个像素点作为阈值参考,剩下8个像素点进行比较,按照公式(1)(2)的算法,可以得出一个8bit的二进制数列G(其中gx为第x位像素色值,gc为中心点像素色值)[[4]]。

[G={s(g0-gc),s(g1-gc),.............s(g7-gc)}] (1)

[][][when:s(x)=1,x≥00.x?<0] (2)

将数列G进行十进制转换得到一个0~255区间的数字,这个数字就是一个LBP数值,如下图[[5]]:

中间像素点的色值为6,以左上方点为起始点开始的色值分别为 6,5,2,1,7,8,9,7,将此数列与色差6进行比对,带入公式(1),(2)得到数列 {1,0,0,0,1,1,1,1},将数列进行二进制转换得241,这就是此3x3方格的LBP值。

一张图片中有很多的3x3像素点阵,每一个点阵代表一个LBP值,将这些LBP值统计起来得到一个维度为0~255的直方图,这个直方图就是我们用来图像识别的模式依据,即LBP矩阵(LBPMat)。

2. 2 适应旋转性LBP算法

在现实生活中,用初始LBP算法进行比对时,由于图片的角度问题会造成误判和错判,于是就提出了适应旋转性的LBP算法。

在2.1中,二进制数列的起始位置是以左上起始,那么,可以考虑从8个像素点的任意一个起始点开始进行二进制序数列的排列,一个3X3的像素点阵就可以得到8个二进制数列,按照既定好的规则选择一个二进制数列,这个二进制数列就作为该3X3像素点阵计算LBP的依据,例如下图:

2. 3 均匀LBP算法

为了提高运算的效率,在提取图片特征值的过程时,往往纹理平滑的像素阵要占少数,而有决定性因素的纹理分明的像素阵要占大多数部分,可以用这些多数的纹理分明的二进制数列的LBP值来进行比对图片,提高运算效率。

一个二进制数列中,其中0,1交替出现3次以内,就可以认为是一个uniform,3次及3次以上,就可以认为不是一个uniform,如下图,属于uniform的二进制排列顺序有58种,再算上所有的不属于uniform的排列顺序,全部为59种[[6]]。

统计出这59种二进制串出现的频率,得到一个59维度的LBP矩阵,很大一方面提高比对的效率。

2.4 LBP比对过程

通过以上的LBP算法对图像的分析之后,即可获得LBP矩阵。两张图片的相似度比对,即为两张图片的LBP矩阵的对比。基于此,本文提出一种比较算法,将两张图片的矩阵通过统计学中的矩阵相似公式(3)计算相似度,从而定量的计算两张图片的相似程度。(其中dis是两矩阵之间定量的差值,LBPMat1与LBPMat2分别为两个相互比较的矩阵)

[dis=(|gx-gy|)2x=0,1,...255,y=0,1,...255,gx∈LBPMat1,gy∈LBPMat2,] (3)

得到距离dis后,本文确定两个界值,dis等于0为相似度100%,dis等于LBP矩阵里LBP数值的个数(num)为相似度0%,则可以根据公式(4)计算出相似度(reg)的值。

[reg=1-dignum×100%] (4)

确定了相似度reg后,则可以根据实际情况制定阈值。如果reg值高于阈值时,则两个矩阵有相似性,反之,没有相似性。

在确定阈值时,不同的应用场合要求也是不同的。需要很强的容错率的人脸支付系统则需要制定很高的阈值,而容错率相对较低的图片相似度搜索引擎则需要制定较低的阈值。

通过reg与阈值的差值对矩阵进行定量的分析后,就可以定性地判断出两张图像是否有相似性。

2.5 LBP算法的分块实现

为了能够优化和改善LBP算法在维数大就比对率和运算率很低的缺点,本文提出对图片进行分块处理。具体过程如下图4:

图4 分块处理的算法演示图

虚线为图片的分块的线,将图片平分成虚线的几块。将每一块看做单另的图片,进行LBP算法处理。实例图5。

图5 分块处理后统计LBP矩阵的算法演示图

图5是一个3X3分块处理的举例,9个小块,每一个小块可以由LBP算法处理成一个LBP矩阵,然后将每个矩阵叠加成一个LBP矩阵,这个最后的LBP矩阵将作为整个图片的LBP矩阵,可以用公式(3)进行相似度比较。

分块时还解决了一个算法细节,分完块的小块之后,横纵的像素点个数可能不是3的倍数(因为LBP的算法还是要3X3的九宫格来处理)。解决的方法是进行像素的扩充,当分块前检测到像素点个数不是3X分块行数的倍数的情况,就会将前几排像素复制粘贴扩充到图片的后面。再进行图片分块,解决了像素分块除不尽的问题,图6举例。

3 实验验证与结论

3.1实验策略

拟定一个人脸图片比对样本,分别是20个人在117种不同光照,不同表情的条件下的人脸图片,总共是2340张图片,图片的大小为120X142。如下图所示。

要进行测试的方法是用2340张图片与这60张图片进行模式匹配,也就是说2340中的每一张图片都要比较60遍,那么总次数就是2340×60=140400遍,很好地达到了实验次数。并且在比对之后用程序判断是否是同一个人,来进行准确度的测试。在测试结束后进行准确度和速度的统计,并且进行分析。

3.2 实验结果

3.2.1 准确度

图(9)是利用0×0到10×10分块对LBP的四种不同的算法每个算法进行分块处理后的准确性的一个统计表,横坐标代表的是将图片分成大块的块数,从1×1到10×10,纵坐标是准确度,图例为初始LBP算法 (orgLBP),旋转适应性LBP (revLBP),均匀LBP( uniLBP), 旋转适应性均匀LBP( unirevLBP),从这张表中可以看到以下几点。

第一点从横坐标来看,也就是从分块技术提高准确度来看,每一个算法都是曲线的变化率从分块数1×1到10×10变化的越来越平缓的,并且曲线无限接近于100%的准确度。但是,每个算法在10X10分块处理的准确度要比在1X1分块的准确度高40%。也就说明,采用分块技术之后,图片的识别率有了提高。并且从10×10再往上走,就是再进行更多的分块,准确性的提升开始变得微乎其微的。

第二点从纵坐标来看,也就是从同样的分块级别下,算法的选择来看,很明显的上面两根线和下面两根线在10×10分块之前差别特别大,从图例可以看出,下面两条线是包含了旋转不变性的LBP算法的准确性,上面的两条线是不包容旋转不变性的LBP算法的准确性。说明了在同样的分块级别下,不包容旋转不变性的LBP算法的准确性更高。

第三点可以看出的是orgLBP的准确率变换曲线与UniLBP曲线变换趋势差不多一致,带了旋转不变性的两个LBP算法的准确度的变换趋势相一致。

表1是之前那个折线图的数据形式,经市场调查,现在的人脸识别能做到95%就算合格,那么可以看出从10×10分块起几种算法全部可以达到95%的识别率。

3.2.2 运行效率

这里的纵坐标的时间是以毫秒做单位,之前也说过了,实验总共的比对次数大概是2340*60=140400次,并且这个时间统计也包括了将60张拟定数据库图片存入内存的时间,所以平均时间大概在1700/140400=0.012l108毫秒。根据表3横坐标显示,10×10分块以内,四个算法所用的时间是相差无几的,到了更细的分块处理后,算法运行的时间会越来越长。

4 结论

本文提出了一种基于分块技术的改进的LBP算法和一种高效的计算矩阵相似度的方法。根据不同的客户需求定制不同的分块等级,来提高图片的辨识率。所提出的算法在高维度的实际实验中,在10X10分块的处理下,4种改进后的LBP算法的准确度都达到95%。实验数据表明,该改进方法可以有效地提高人脸识别率。

参考文献:

[1] Timo Ojala,Matti Pietikainen,David Harwood[J].Pattern Recognition Society. 1996(29):51-59.

[2] 王宪,张彦,慕鑫,张方生.基于改进的LBP人脸识别算法[J].光电工程,2012(7).

[3] 房德峰.浅谈改进的LBP算法[J].现代企业教育,2013(16).

[4] M. PIETIK?INEN, T. OJALA, Z. XU.ROTATION-INVARIANT TEXTURE CLASSIFICATION USING FEATURE DISTRIBUTIONS.

[5] M?enp?? Topi, Pietik?inen Matti, Ojala Timo.Texture Classification by Multi-Predicate Local Binary Pattern Operators.

[6]Timo Ojala, Matti Pietika?inen,Senior Member, IEEE, Topi Ma?enpa?a.EEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE,2002(8).

猜你喜欢
计算机视觉信息安全人工智能
人工智能与就业
保护信息安全要滴水不漏
高校信息安全防护
危险气体罐车液位计算机视觉监控识别报警系统设计
保护个人信息安全刻不容缓
信息安全