基于改进的基于改进的LDP人脸识别算法人脸识别算法
LDP 算法是将与Kirsch 算子运算后得到的一些负值的邻域灰度值作为中心灰度值的编码因子,这将会导致中心
灰度值不能很好的反映邻域局部特征信息,从而降低识别率。针对于此,本文提出了一种改进的局部定向模式
(CLDP)算法。该算法在LDP 的基础上,去掉邻域灰度值为负值的因子,对中心灰度值进行重新编码,由于该编
码值是将与Kirsch 算子运算后的正值值作为图像边缘输出,使中心灰度值能很好反映邻域的局部特征信息,从
而提高人脸的识别率。本文还将提出的CLDP 算法用在YALE,ORL,JAFFE 等人脸数据库中进行人脸识别。从
实验的结果表明,该方法识别性能较LDP算法,LDN 算法以及ELDP 算法
LDP 算法是将与Kirsch 算子运算后得到的一些负值的邻域灰度值作为中心灰度值的编码因子,这将会导致中心灰度值不能
很好的反映邻域局部特征信息,从而降低识别率。针对于此,本文提出了一种改进的局部定向模式(CLDP)算法。该算法在
LDP 的基础上,去掉邻域灰度值为负值的因子,对中心灰度值进行重新编码,由于该编码值是将与Kirsch 算子运算后的正值
值作为图像边缘输出,使中心灰度值能很好反映邻域的局部特征信息,从而提高人脸的识别率。本文还将提出的CLDP 算法用
在YALE,ORL,JAFFE 等人脸数据库中进行人脸识别。从实验的结果表明,该方法识别性能较LDP算法,LDN 算法以及
ELDP 算法等更好的。
人脸识别系统主要包括四个模块:图像预处理模块,图像特征提取模块,图像训练模块和人脸图像的识别模块,其中主要
的部分就是图像特征的提取。好的特征提取算法应该满足不同类别的图像具有很大差异,同一类别的图像具有很小差别。到目
前为止,特征提取主要包括两类方法:基于全局特征的提取方法和基于局部特征的提取方法。全局特征是指其特征向量的每一
维都包含了人脸图像上所有部分(甚至所有像素)的信息,它反映的是人脸的整体属性。基于全局的特征方法主要包括:
PCA,LDA,2DPCA,LPP 等 。与全局特征不同的是,局部特征信息的每一维都只对应人脸图像上的一个局部区域,它侧重
于提取人脸的细节特征,基于局部特征的提取方法主要包括:LBP,LGBP,LDP 等 。局部特征对人脸的光照、表情和遮挡等
变化不敏感,因此基于局部特征的提取方法相对于基于全局特征的提取方法具有更好的鲁棒性,在近些年来得到了更多的研究
。
近年来,LBP 算法因为其在纹理分析方面的简单性和优越性而得到了越来越多的重视。基本的LBP算子是一种有效的纹理
描述符,其通过对中心像素的3×3 邻域进行编码操作。每个像素点以其邻域的中心像素灰度值作为判断的阈值,将中心像素灰
度值与周围8 邻域的像素灰度值进行比较,如果邻域像素灰度值大于中心像素灰度值,则将其标记为1,否则标记为0(对于图
像边缘的部分,存在一些邻域点不存在的,编码时设定该邻域点为0),从而每个像素点都可以得到一个8 位的二进制数,然后
将该8 位二进制数转化为十进制数,该十进制数即为该中心像素点的LBP 值。因为LBP 编码的灵活性,LBP 算法可以很容易
修改以适应其他不同类型问题的需要。为此,文献[9]提出了几种改进的LBP 算法。LBP 算法对单调线性的光照有很好的鲁棒
性,但是其对于随机的噪声和非单调线性的光照变化非常的敏感。针对此因素,Jabid 等人 提出了鲁棒性更好的特征提取方法
LDP。LDP 算法和LBP 算法很相似,但它是通过与Kirsch 算子卷积求和后得到了中心像素点的邻域灰度值 。由于边缘梯度值
比像素灰度值更稳定,所以LDP 算法对噪声的鲁棒性更好。基本的LDP 编码是将主要的k 个邻域灰度值设为1(即和Kirsch 算子
卷积求和后的k 个数),然后将8 个方向的邻域值进行编码。这种方法会将的负数对应的邻域灰度值设为1,由于这些负数会干
扰局部特征信息的提取,使得编码后的中心灰度值不能很好反应出该位置的局部特征信息,从而会降低人脸识别率。
针对与LDP 的这个缺点,Zhong Fujin 等人提出一种基于LDP 算法的ELDP(Enhanced Local DirectionalPatterns)算法
,Adin Ramirez Rivera 等人提出了一种LDN(Local Directional Number Pattern)算法 。ELDP算法是在LDP 算法的基础之上得
到的,首先它将与Kirsch 算子计算后的八个方向值进行排序,将的两个正值对应的位置设为1,其他位置设为0,然后将得到
的两个位置为1 的序号作为八进制的两位数,再将其转化为十进制数作为该中心点的像素灰度值,即ELDP 值。LDN 算法首先
同样是将与Kirsch 算子运算后的8 个方向值进行排序,选取的正值和的负值,然后将正值对应的序号作为八进制数的第1 位,
将值的序号作为八进制数的第0 位,再将这个两位的八进制数转化为十进制数作为该中心点的像素灰度值,即LDN 值。
以上对LDP 进行改进的算法是对8 个邻域灰度值的序号进行编码,会丢失一些特征信息,针对这个问题,本文提出了一种
基于LDP 算法改进后的局部定向模式(CLDP)。该算法通过与Kirsch 算子计算后得到的八个邻域灰度值重新进行编码,不对其
求,考虑负数的存在,然后将8 个计算后的邻域值进行大小判别,将的k 个正值设为1,其他8-k 个邻域值设为0,再将这8 位
二进制数转换为十进制数,用该十进制数值作为中心像素点的灰度值,即CLDP 值。CLDP 算法的编码避免了LDP 算法将运
算后的邻域为负值作为编码因子,同时也避免了LDN 算法和ELDP 算法将运算后的邻域值所对应的序号作为编码因子,这样
CLDP 值能更好的反应出该位置的局部特征信息。
本文提出的CLDP 算法用在三个人脸数据库中分别进行识别实验,并和LDP 算法,LDN算法以及ELDP算法进行比较。实验
的结果表明,本文提出的方法具有较其他方法有着更好的识别性能。
1 CLDP 算法算法
1.1 LDP 算法算法
基于LBP 算法提出的局部定向模式(LDP),是将一个3×3 矩阵块(如下)分别与8 个Kirsch 算子M0~M7进行运算后得到的作为
矩形块周围的像素灰度值,记为|mi|(i=0,1,…,7),然后选取k 个数作为主要特征,并且将这k 位赋值为1,其余(8-k)位赋值为
0,如图1 所示。将这8 个数按照一定的顺序编码组成一个八位的二进制数,再将其转换为十进制数,用这十进制数作为该3×3
矩形块的中心点的LDP特征值。