基于RBF网络和贝叶斯分类器融合的人脸识别方法设计
扫描二维码
随时随地手机看文章
RBF (Radial Basis FuncTIon)可以看作是一个高维空间中的曲面拟合(逼近)问题,学习是为了在多维空间中寻找一个能够最佳匹配训练数据的曲面,然后来一批新的数据,用刚才训练的那个曲面来处理(比如分类、回归)。RBF的本质思想是反向传播学习算法应用递归技术,这种技术在统计学中被称为随机逼近。
RBF里的basis funcTIon(径向基函数里的基函数)就是在神经网络的隐单元里提供了提供了一个函数集,该函数集在输入模式(向量)扩展至隐空间时,为其构建了一个任意的“基”。这个函数集中的函数就被称为径向基函数。
非rbf与非线性回归的区别在于:rbf是不知道数学模型的,而非线性回归则是知道数学模型的,比如知道数据服从某种函数分布,只是系数不知道而已。
RBF网络和贝叶斯分类器融合的人脸识别方法设计基于人脸图像分块和奇异值压缩,进行RBF 神经网络和贝叶斯分类器融合的设计。将人脸图像本身的灰度分布描述为矩阵,其奇异值特征具有转置不变性、旋转不变性、位移不变性、镜像不变性等诸多重要的性质,进行各种代数和矩阵变换后提取的代数特征是人脸的表征。由于整体图像的奇异值向量反映的是图像整体的统计特征,对细节的描述还不够深入,本文模拟人类识别人脸的模式,在图像分块和加权的基础上,突出待识别人脸的骨骼特征,近似于人类在识别人脸时自动剔除同一人脸的变化部位的差异能力
径向基函数(RBF)网络是一种性能良好的前馈型三层神经网络,具有全局逼近性质和最佳逼近性能,训练方法快速易行,RBF 函数还具有局部响应的生物合理性。RBF神经网络隐含层结点使用了非线性传输函数,比单层感知器网络具有更强的分类能力。在隐含层中心确定的情况下,RBF神经网络只需对隐含层至输出层的单层权值学习修正,比多层感知器具有更快的收敛速度,这也是本文选择RBF神经网络作为分类器的原因。
在 RBF 神经网络构建和初始化采取有监督的聚类算法,在网络参数的最终调整和训练方面采取 Hybrid学习(HLA)算法。在隐层参数固定的条件下,由线性最小二乘法计算隐层和输出层之间的连接权值,由梯度下降法调整隐层神经元的中心和宽度。这种混合学习算法,能使RBF网络逼近Moody准则下的最优结构,即:在没有其它先验知识的情况下,与给定样本一致的规模最小的网络就是最好的选择。从而保证该网络具有较好的泛化能力。
贝叶斯网络是一个带有概率注释的有向无环图,图中的每一个结点均表示一个随机变量,图中两结点间若存在着一条弧,则表示这两结点相对应的随机变量是概率相依的,反之则说明这两个随机变量是条件独立的。网络中任意一个结点X 均有一个相应的条件概率表(CONdiTIonal Probability Table,CPT),用以表示结点X 在其父结点取各可能值时的条件概率。若结点X 无父结点,则X 的CPT 为其先验概率分布。贝叶斯网络的结构及各结点的CPT 定义了网络中各变量的概率分布。
奇异值分解SVD
奇异值分解非常有用,对于矩阵A(m*n),存在U(m*m),V(n*n),S(m*n),满足A = U*S*V’。U和V中分别是A的奇异向量,而S是A的奇异值。AA‘的正交单位特征向量组成U,特征值组成S’S,A‘A的正交单位特征向量组成V,特征值(与AA’相同)组成SS‘。因此,奇异值分解和特征值问题紧密联系。
奇异值分解提供了一些关于A的信息,例如非零奇异值的数目(S的阶数)和A的秩相同,一旦秩r确定,那么U的前r列构成了A的列向量空间的正交基。
对于任何一个矩阵A∈Rm&TImes;n,利用奇异值分解将其转化为对角矩阵。
设A∈Rm×n(不失一般性,设m≥n),且rank(A)=k,则存在两个酉矩阵Um×m和Un×n及广义对角阵Dm×m使下式成立:
,因此,一幅人脸图像对应于唯一的奇异值特征向量。
(1)从人脸数据库选择人脸作为识别训练集;
(2)将被选入训练集的人脸图像几何归一化处理;将被选入训练集的人脸图像灰度归一处理;
(3)将预处理过的人脸图像划分成大小为的子块;
(4)将每一幅图像变为一个列向量(先分别将每一个子块所有向量排成一列,再将所有子块按顺序排成一列);然后以子块为单位进行;
基于面部骨骼特征、眼睛的分布、鼻子的形状等结构特征,是鉴别人脸的主要依据。将每一幅人脸图像所形成的矩阵划分成…等个二维矩阵分别降维为一维列向量。求训练集中所有对应子块的平均值,
。
基于特征分块贝叶斯分类器设计
每个基于特征分块的贝叶斯分类器,利用了所对应的图像块包含的判别信息,为得到性能更好的分类器,需要将这些分类器融合给出最终的判别结果。可以有多种办法实现分类器融合,如加权求和、相乘等。本文采取加权求和的方法:
是由第b个贝叶斯分类器计算出的类条件概率密度。是第b个贝叶斯分类器对应的权值。
不同的特征块对应的贝叶斯分类器对最终判别结果贡献是不相同的,本文采取的是基于子分类器分类准确率分配权值的方法:将各子分类器重新放回其训练集,计算其在训练集上的识别率,利用这些识别率,采用下式计算第b个子分类器的权值:
图2 RBF神经网络的工作原理
RBF神经网络设计
直接利用matlab工具箱进行,这是一种较简单的设计方法,工具箱中提供了好几个函数可以利用,newrb、newrbe,newpnn,newgrnn,早一些的版本还有solverb等。这几个函数的使用以及参数说明请大家看相关资料。其中,为了看到每一步网络的性能函数变化,建议设置DF参数时设为1。这样每一步的图都可以显示出来,就对生成的网络的过程有一个清楚的认识。要查看设计好的网络的参数,中心采用net.IW{1},输出层权值采用net.LW{2},隐含层的偏置利用bet.b{1},输出层的偏置采用net.b{2}进行察看。当然,修改的时候:例如要修改输出层的偏置,那么,就是net.b{2}=??,就可以了。这种方法网络的初始中心是随机从输入的训练样本中选取的,中心的个数也是由少到多逐步增加的。建议在确定spread参数时不要设计得太小,太小可能影响对测试样本的识别。我自己做的是模式分类,但是对于曲线拟合应该也是一样的。
利用聚类算法确定中心,可以利用的聚类算法较多,最普通的就是K—均值聚类算法,还有最近邻、模糊聚类、支撑向量基等方法,这些方法都是先确定中心,然后输出层权值以及输出层的偏置再采用lms、rls算法等进行确定。在设计时,偏置可以根据自己的需要来设计,可以有也可以没有。
假定∈(1≤j≤r)为输入层神经元,为隐层第 i个神经元的中心,则第j个神经元在第i个隐层节点的输出为: , i =1,2,…,u,式中||||表示欧氏范数。当RBF选用高斯核函数时,其输出为:
式中为隐层第 i 个神经元的宽度。输出层第 k 个节点的输出值 为: ,式中为隐层节点 k 到第 j 个输出节点的连接权值。
RBF神经网络的构建和初始化
RBF神经网络隐层聚类的初始化过程如下[10]:
(1)隐层节点数u=s。假设每个类收敛于一个聚类中心,再根据情况具体调整。
(2)隐层第 k 个神经元的中心为 k 类特征矢量的均值。,k=1,2,…,u,
(3)计算从均值 到属于类k 的最远点的欧氏距离
(4)计算各个j聚类中心到k聚类中心的距离,j=1,2,…,s, j≠k
(5) 包含规则:若且,则类k包含于类中,类应被
RBF神经网络的算法
网络学习就是通过调整连接权 、隐层中心和宽度,以减小输出误差。
1、连接权值的调整
定义误差函数为:
,m为迭代次数。
实验结果及分析
利用Yale人脸库中的人脸图像数据进行实验人脸识别实验研究,将人脸图像分块加权重构的奇异值向量X1,X2,…,Xl(其l中为训练样本的数目)矩阵依次输入RBF神经网络训练,当满足误差容限或训练次数,停止训练。在测试过程中,依据竞争选择的办法做出识别判断。
本文重点研究人脸图像的32子块权值选取情况如下:
实验结果表明,基于人脸面部骨骼特征、以及眼睛分布、鼻子形状等结构特征,是鉴别人脸的主要依据。通过子块权值的合理分布,突出人脸骨骼特征,而对嘴部和皮肤折皱等表情变化部分特征给予弱化或剔除,这与人类识别人脸时的模式相近,识别效果较好。但是,子块不宜过多,否则增加RBF神经网络计算负担,识别率也会有所下降。
结论
本文提出了基于图像分块奇异值压缩,融合RBF神经网络和贝叶斯分类器的人脸识别方法,模拟人类识别人脸时剔除同一人脸变化部位的差异能力,采用不同子块单独进行人脸识别,根据RBF神经网络识别效果进行权值分配,通过实验证明,本文方法在降维和识别率方面均取得良好的效果,在正面人脸部位(尤其是下颚部)变化较大时,具有良好的识别精度和识别速度。