基于多级纹理特征的深度信念网络人脸识别算法
2020-04-18陈雪鑫卜庆凯
陈雪鑫 孙 玥 苗 圃 卜庆凯
(青岛大学电子信息学院 山东 青岛 266071)
0 引 言
人脸识别是基于人脸特征信息进行身份自动识别的生物识别技术,凭借非强制性、非接触性及并发性强的优势广泛应用于金融领域和安保领域等智能化社会建设方面[1]。传统的人脸识别方法是基于统计特征的识别方法,特征的提取过度依赖于人工选择,干扰因素过多。随着研究的深入,机器学习的人脸识别方法(FRMML)得到空前发展[2]。在FRMML中包含了浅层机器学习识别方法(SMLFRM)和深层机器学习识别方法(DLFRM),其中SMLFRM优化复杂度高,识别率较低。而DLFRM中新形成的深度信念网络(DBN)提高了训练过程的泛化能力和自适应能力,在复杂分类上比浅层网络结构有更好的效果,因此得到学者青睐。人脸特征高效且准确的描述与提取决定识别的精度。传统的特征描述算法主要有基于全局特征和基于局部特征两类。基于全局特征的描述算法主要有主成分分析(Principal Component Analysis,PCA)、线性判别分析(Liner Discriminant Analysis,LDA)等。陈海霞等[3]结合PCA降维特性和Gabor小波多尺度滤波特性,实现了对脸部整体特征的提取,提高了识别准确率。基于局部特征的描述算法主要有局部二值模式(Local Binary Pattern,LBP)、定向梯度直方图(Histogram of Oriented Gradient,HOG)和Gabor变换等。Xie等[4]通过提取边缘方向特征作为局部纹理特征的补充信息,实现LBP和HOG算法的融合,改善了红外人脸识别的鲁棒性。周昊等[5]通过对人脸图像中特定的区域进行分块处理,结合稀疏表示分类器训练测试,虽然识别率有所提高但当面对复杂人脸表情时并不能取得良好的效果。胡丽乔等[6]根据分块后的人脸图像识别贡献率配置相应的权重,然后利用支持向量机(SVM)对带有权重的分块直方图进行学习训练而后完成识别。
局部纹理特征是图像特征的局部表达,对蕴含信息的表达具有良好的鲁棒性,因此局部纹理特征详细的提取可以达到有效描述人脸图像的效果并为后续分类操作提供可靠的保障。为了实现更高的人脸识别率,本文提出对局部纹理特征采取多级提取的方法,对均匀分块的图像提取局部纹理特征,在此基础上使用改进的CS-LBP进一步获取局部详细纹理信息并结合HOG算子优势,提取边缘信息作为辅助,对人脸图像纹理做出清楚详细的描述。局部纹理特征的充分描述,弥补了DBN忽略局部结构的缺陷。级联后的融合特征信息通过DBN的深度学习并在顶层实现人脸识别。实验表明,多级局部特征的提取在DBN模型下能够提高人脸识别精度。
1 算法理论
1.1 LBP和MB-LBP特征描述
局部二值模式(Local Binary Pattern,LBP)是由Ojala[7]提出的一种图像局部纹理特征的描述算子。LBP算子将中心像素灰度值和邻域像素灰度值以比较的方式实现对图像局部纹理特征的高效描述,具有旋转不变性、灰度不变性以及计算高效的特点[8-9]。传统的LBP算子如图1所示,在一个3×3区域中,中心点像素灰度值作为阈值,相邻的像素灰度值依次与之比较,大于等于阈值则为1,否则为0。将产生的8个二进制数按顺时针连接并转化为十进制数。这个十进制数即为区域中心点像素值,最后选用LBP直方图作特征向量。
图1 LBP算子示意图
LBP算子编码公式为:
(1)
(2)
式中:(xc,yc)代表中心像素的坐标;gc、gi分别代表中心像素的灰度值和邻域像素的灰度值。观察图1,传统的LBP算子被限制在固定区域内对像素点之间比较提取特征,过于局部化并且削弱了局部特征的健壮性[10]。为此使用圆形邻域结合双线性插值运算替代正方形邻域,以此来获取任意半径和任意数目的不在像素中心位置的邻域像素点。如图2所示,用P表示邻域点的个数,R表示圆形领域的半径。
(a) LBP4,1(b) LBP8,1 (c) LBP8,2图2 圆形LBPP,R算子
使用LBP算子对图像像素进行直方图统计不仅受邻域像素的影响对噪声敏感,而且缺乏对图像粗粒度的把握,易丢失结构信息。因此可以对图像采取分块处理,使用MB-LBP(Multi-Block Local Binary Patterns)弥补缺陷。MBS-LBP算子表示把图像细分成大小为S×S的像素块,图3为S=3的MB-LBP算子。
图3 MB3-LBP算子示意图
对于图3,整个图像区域分为9个像素块,每个像素块有6个像素点,传统LBP算子像素灰度值之间的比较被像素块之间的平均灰度的比较所代替,而且MB-LBP将每个像素块的中心点像素也都考虑到,增加了对图像全局信息的把握。传统LBP算子得到的二进制模式数目较多,而实际的位于分块区域的像素数目却相对较少,失去了统计意义。因此提出统一化模式概念,保留的统一化模式往往反映重要的信息,而非统一化模式中往往由噪声引起,不具有良好的统计意义。
图4所示的是像素块大小为3×3,半径为2,邻域为8的统一化模式下的圆形LBP算子,每个虚线的小方格代表一个像素,每个粗线围成的大方格代表一个像素块,其值是由其中3×3共9个像素的灰度平均而得的。不同像素块大小代表着不同的观察和分析粗粒度,可以加强对图像整体特征信息的描述。
图算子
1.2 CS-LBP算子及其改进
中心对称局部二值模式(Center-Symmetric Local Binary Patters,CS-LBP)使用中心对称思想对邻域内像素灰度值的比较规则进行重新定义,通过比较以中心像素灰度值为中心对称的像素值对完成编码,即对中心对称点的亮度差编码。
CS-LBP编码公式为:
(3)
(4)
式中:gc代表对称中心像素;gi代表以gc为圆心、R为半径的圆周上的像素值,P代表圆上像素点的数量。gi、gi+(p/2)代表对称像素值对。T代表阈值反映纹理的平坦性可以取gc,也可以根据实验自行设定。通过对比式(1)和式(3)以及观察图5可以发现,LBP算子运算后得到的二进制模式串的长度为P、二进制模式的种类为2P。而CS-LBP用对称像素值对思想提取纹理特征,得到的二进制模式串的长度为P/2、二进制模式的种类为2P/2。二者相比较,CS-LBP对图像局部区域灰度变化差异的描述能力更强,同时也降低了纹理特征的维数,缩减了存储的空间。
图5 LBP与CS-LBP算子对比示意图
传统的特征提取算子仅考虑中心像素和相邻像素或者中心对称像素对之间的灰度差,单一像素差之间的比较容易造成特征的丢失。结合LBP和CS-LBP纹理提取的优势,重新定义了像素之间的比较规则,即添加对称像素与中心像素之间的比较,使生成的直方图既短又考虑了中心像素。借用图像中心点像素信息改善纹理特征粗细的同时放大了不同表达特征向量之间的差异,严格控制每个像素点的周围条件,增强抗噪能力,使得所提取的纹理信息更加细致。改进的CS-LBP编码公式为:
CS-LBPP,R(x,y)=
(5)
(6)
(7)
图6比较了不同算子对人脸图像的纹理提取,可以看出LBP算子对纹理具有很强的描述能力。传统的LBP算子描述的略显粗糙。MB-LBP提取纹理特征加大了对整体信息的粗粒度把握,整体的结构信息明显加深,部分区域信息的描述增强。CS-LBP算子改善了纹理的复杂度。改进的CS-LBP算子继承了传统LBP算子的优点并且有效地区分背景,纹理特征丰富,五官表征明显,在局部特征描述上具有很强的辨别能力。
图6 不同算子纹理提取
1.3 方向梯度直方图
方向梯度直方图(Histograms of Oriented Gradients,HOG)是一种特征描述子,通过提取图像局部区域的梯度或边缘方向信息,构成局部区域的方向梯度直方图特征以此表征目标形状[13-14]。HOG是对图像局部单元区域进行描述提取,所以HOG特征描述子能够保持图像几何和光学转化不变性,而且在图像区域形状变化较大时依然可以提取出有效的边缘信息。
HOG特征描述子提取过程如图7所示。
图7 HOG特征提取流程图
(1) 对图像进行颜色空间标准化,抑制噪声的干扰。
(2) 捕捉图像轮廓信息,计算图像每个像素点的梯度(包括大小和方向):
Gx(x,y)=H(x+1,y)-H(x-1,y)Gy(x,y)=H(x,y+1)-H(x,y-1)
(8)
式中:Gx(x,y)、Gy(x,y)、H(x,y)分别代表图像中像素点(x,y)处的水平方向梯度、垂直方向梯度和像素值。像素点(x,y)处的梯度幅值和梯度方向分别为:
(9)
(3) 将图像划分成小cell,统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的特征描述子。将每几个cell组成一个block(cell与block关系如图7(b)),一个block内所有cell的特征描述子串联起来归一化后便得到该block的HOG特征描述子。
(4) 检测窗口中所有重叠的block并进行HOG特征收集,按顺序结合成最终的特征向量供后续分类使用。
1.4 深度信念网络
深度信念网络(Deep Belief Network,DBN)是Hinton等[15]提出的非监督深度学习神经网络, DBN不依赖于手动选择信息而是主动学习输入数据并自动挖掘隐藏在已知数据中的丰富信息[16]。DBN可以被视为玻尔兹曼机(Restricted Boltzmann Machines,RBM)的堆栈,RBM是一个基于能量的生成型模型,每个RBM由可视层和隐藏层构成,可视层负责数据输入,隐藏层负责特征提取。层与层之间全连接,同一层各单元彼此互不连接,如图8右侧所示。
图8 DBN模型结构图
对于给定的一组状态(v,h)拥有的能量函数为:
(10)
式中:v、h分别代表可视层和隐藏层单元的状态向量;m、n分别代表可视层和隐藏层的单元数目;θ=(wij,ai,bj)是RBM系统中的参数,wij代表两层之间的连接权重;ai、bj分别代表可视层和隐藏层单元的偏置值向量。通过能量函数可得到(v,h)的联合概率分布函数:
(11)
RBM的学习目的就是对给定的输入信号v最大程度重构生成对应信号h,使用对比散度算法调整系统参数θ使得联合概率分布函数P(v,h)最大。
在具有n个隐藏层的DBN结构中,其可视层单元与隐藏层单元的联合分布为:
P(v,h(1),h(2),…,h(n-1),h(n))=
P(v|h(1))P(h(1)|h(2))…P(h(n-2)|h(n-1))P(h(n-1)|h(n))
(12)
式中:v=h(0)代表可视层单元;h(l)(l=1,2,…,n)代表第l层的隐藏层单元。其中第l层与第l+1层的隐藏层单元关系为:
(13)
DBN模型的训练如下:
(1) 预训练阶段。采用贪婪学习算法,训练第一个RBM以尽可能准确地重构输入,并且使第一个RBM的输出训练第二个RBM。每一个RBM的隐藏层作为下一个RBM的可视层。由下到上,重复该过程直到完成整个DBN网络的逐层训练。该阶段的最终目的是训练得到每层最优参数,最大程度完成输入特征的重构。
(2) 微调阶段。在DBN的最后一层设置为BP神经网络,在接收到前一层RBM的输出后进行有监督训练,由上到下,反向传播(Back Propagation,BP),优化每一层RBM的权值参数。
2 算法设计及流程
图9 人脸图像分级提取特征
在图9中可以清楚地观察到MB-LBP算子提高了人脸图像粗粒度,提取的纹理特征更加详尽。改进的CS-LBP消除了冗杂的特征信息,细化了纹理特征的层次性,加强对部分区域(比如眼睛、嘴唇、鼻子等)特征提取。采用HOG作为辅助,完善图像边缘形状特征信息,将整体的人脸图像特征信息最大化提取。经过对人脸图像的分级操作,得到了完整且有效的纹理特征。
本文整体算法流程如图10所示。对人脸数据库分为训练集和测试集,对图像进行灰度统一化等预处理操作,训练集在经过三级特征提取后得到融合特征输入DBN学习训练。测试集在已完成训练的DBN系统中测试得到识别结果。
图10 人脸识别算法流程图
DBN在训练过程中可以从输入数据中学习隐含的抽象信息。学习训练过程中DBN系统联合分布为:
P(H,h(1),h(2),…,h(l-1),h(l))=
P(H|h(1))P(h(1)|h(2))…P(h(l-1)|h(l))
(14)
式中:H代表三级纹理提取后的最终融合特征向量,H中包含层次分明、结构完整的局部纹理特征,也含有边缘梯度等抽象特征,完整地保存了人脸图像的固有特征。融合特征H由低层可视层输入至整个DBN网络,采用逐层训练的机制实现数据的训练。h(1),h(2),…,h(l)是深度信念网络对融合特征H训练学习而得到的相应高层表示。P(H|h(1))代表对第一个隐藏层状态向量求含有输入特征的可视层状态向量的概率。结合式(11)可以完成DBN系统的最终目的即调整系统参数达到全局最优完成对融合特征充分饱满的吸收。DBN系统隐藏层单元数量决定着深度网络的性能,但没有统一的理论标准规定。为此,本文在每层隐藏层选取相同数量单元的情况下进行实验分析。
3 实验结果与分析
实验中选用ORL和YALE人脸数据库完成测试。ORL人脸库含有光照不变、姿态表情变化的40个人的400幅人脸图像,其中随机抽取6幅图像作为训练集,4幅作为测试集。YALE人脸库含有15个人,每人有11幅光照、姿态、表情都存在变化的人脸图像,随机选取7幅作为训练集,4幅作为测试集。设定RBN学习率为0.05,BP神经网络学习率为7.5。
3.1 隐藏层层数
在DBN系统中隐藏层的数量对系统识别精度有重要的影响,网络系统的深度过深则会使参数优化陷入局部最优,深度过浅则不能充分训练输入特征。在固定每层隐藏单元数为200不变的情况下改变隐藏层层数,然后研究其变化情况对识别正确率的影响。结果如表1所示(组别中1-4为ORL人脸库;5-8为YALE人脸库)。
表1 不同隐藏层下的识别结果
由表1可知,在两个人脸库中,随着系统深度的增加,识别率会有增加但并不是一直增加。在隐藏层深度为2时,DBN系统识别正确率达到最大,训练的时间也在一个可观范围内。随着深度的增加,对DBN系统的泛化能力造成影响最终出现过拟合的现象,不仅识别准确率下降而且训练的时间也增长。经过实验测试,本文最终确定选用含有2层隐藏层的DBN系统。
3.2 隐藏层单元数
DBN系统实现人脸图像的识别取决于深度网络中对输入特征逐层强有力的学习。之前的研究中已经确定最佳的隐藏层层数,而另一个影响因素就是隐藏层单元数。隐藏层所含有的单元数对系统的学习能力以及训练时间有着举足轻重的作用。DBN系统中隐藏层单元数过多会导致过载现象,多余的单元数会增加训练过程的复杂度,降低整体识别正确率。而隐藏层单元数过少,神经元之间的连接也会减少,从而忽略特征信息,降低特征学习训练的能力。本文在两个人脸库中对隐藏层单元数进行测试,结果如图11所示。
图11 不同隐藏层单元数下识别率
由图11可知,隐藏层单元数目带动了人脸图像特征更好的表达,然而识别率并不随着隐藏单元数的增加而提高。在ORL人脸库中当隐藏层单元数为500时输入特征充分被吸收,识别率达到最大94.67%。在YALE人脸库识别率达到最大值93.72%时隐藏层单元数也接近500。
3.3 不同识别算法比较
选取经测试得到的最佳DBN系统模型结构即深度为2层且每层隐藏层单元数都为500。在此情况下与传统的SVM、PCA、BP算法在相同人脸库中验证本文算法的优越性,结果如图12、图13所示。
图12 ORL人脸库算法识别率比较
图13 YALE人脸库算法识别率比较
由图12和图13可以看出,本文算法相比传统的算法取得了良好的人脸识别效果。与BP神经网络相比较,本文采用的DBN系统中每一层RBM优化只对自身层的权值达到最优,为深度学习网络选择合适的初值提高了效率,而此点正是BP神经网络所缺少的。与SVM、PCA算法相比较,传统的浅层学习算法仅仅是对提取到的特征进行表面的吸收学习,学习的准确性取决于特征提取的详尽性。DBN系统是多层网络结构的深度学习模式,可以学习到输入特征再次提取特征信息,为系统的学习训练增加保障。本文构建的DBN系统在最适样本训练完成后,样本增加对识别率影响不大,这充分说明DBN系统凭借自身无监督学习和有监督微调的特点,在深层次的数据挖掘方面展现出传统浅层学习所没有的优势。
表2为不同特征提取算法下的人脸识别结果。ORL人脸库中人脸图像在表情、姿态方面存在不同,不存在光照方面的影响。YALE人脸库在光照、表情、姿态方面都存在不同。使用不同的算法对人脸图像特征进行提取。由表2可以看出,改进的CS-LBP算法对识别率有明显的提高,尤其是在YALE人脸库中识别率的提高验证了对背景光照的改善效果明显。本文提出的三级图像纹理提取算法提高了整体识别率。单一方面的纹理特征提取并不能充分展现出图像的本质,多级的纹理提取增强了特征的适用性,局部纹理与全局纹理的结合为DBN的训练提供了良好的条件。本文算法得到的识别率在两种人脸库中提高了3%左右。
表2 不同特征提取方法的识别结果
4 结 语
借助深度信念网络无监督学习和有监督微调的训练方式,提出多级纹理特征提取的人脸识别算法。在标准人脸库中与传统浅层学习方法以及单一特征提取算法作对比,充分展现了本文算法的优越性。
(1) 通过分块改进局部纹理特征提取方式,融合算法细化纹理特征,增加边缘信息加以辅助,层层筛选将人脸图像固有特征详细化。
(2) 探索最佳的DBN系统结构,发挥DBN深度挖掘数据信息的优点,同时也弥补了DBN学习局部特征薄弱的缺陷。
本文对局部纹理特征进行整合提取,提高了识别的鲁棒性,证明了DBN在人脸识别方面的应用价值。如何减少特征维数以及确保初级特征的完整性是接下来进一步研究的方向。