周慧敏,刘奇,姜飞,杨明
(1.中北大学 理学院,山西 太原030051; 2.信息探测与处理山西省重点实验室,山西 太原 030051)
人脸识别是计算机视觉、模式识别等领域中最活跃的研究课题之一,在过去的二十年中得到了广泛的应用研究[1],但他在实际应用中面临许多挑战,如不受控制的环境、遮挡和姿态、光照、表情和时间的变化等.目前已有多种人脸特征提取和分类的方法被提出,常用的有Eigen faces[2]、Fisher faces[3]、基于Gabor特征的分类(GFC)方法[4]和LBP算法[5]等.LBP算法[5-7]的人脸特征提取对光照等有很好的鲁棒性,但会忽略像素点本身携带的信息.基于Gabor滤波[8-9]的人脸识别方法在应用时通常使用五个尺度和八个方向,计算成本高,所需存储空间大.
单演信号是一维解析信号的二维推广,突出特点是特征提取过程(幅值、方向和相位)是真正的旋转不变[10].与基于Gabor滤波的方法相比,单演二值编码(MBP)[10]算法具有更低的时间和空间复杂度,而且具有较好的识别效果,但忽略了单演相位信息,而单演相位能够反映人脸图像的结构信息.融合单演二值编码(MBC)[11]将幅值、方向和相位这三个特征进行融合,有效地提高了人脸识别准确率,并且对光照、姿态、表情和遮挡等引起的人脸图像变化具有很强的鲁棒性,但是其特征的提取依赖于人工选择,结果有一定的不确定性.
近几年,深度学习模型[12-14]被应用于人脸识别,取得了不错的效果.2006 年,Hinton 等[13]首次提出了深度信念网络(Deep Belief Network,DBN),通过无监督学习得到更抽象、有效的高层特征,但网络缺乏对于图像空间不变性的学习,尤其是缺乏对于图像旋转不变性的学习[15].如果直接将人脸图像的像素作为深度信念网络的输入,由于光照和姿态等的影响,网络会学习到不利识别的特征,而且会忽略图像的结构特征.
MBC算法的特征提取过程是真正旋转不变的,能有效提取到人脸图像的局部结构特征;DBN网络通过无监督学习提取到的人脸特征,不介入主观因素.因此,本文将MBC算法和DBN相结合用于人脸识别,首先利用MBC算法单演信号旋转不变的特性,正交分解得到图像的单演幅值、方向和相位信息,提取图像的MBCF特征;然后将其作为DBN的输入,学习训练识别网络,减少网络对干扰特征描述的学习,提高人脸识别的性能.
Felsberg和Sommer在2001年引入了单演信号,单演信号通过Riesz变换构建二维信号的单演表示.定义z=(x,y)为图像坐标,图像f(z)的单演信号表示定义为
(1)
其中,fx(z)、fy(z)分别是滤波后图像在x轴和y轴上的Riesz变换;fln(z)=f(z)*F-1(G(ω)),F-1是傅里叶逆变换,G(ω)为log-Gabor滤波器,其表达式为:
G(ω)=exp{-[ln(ω/ω0)]2/(2[ln(σ/ω0)]2)}
(2)
其中,ω0=(λminμs-1)-1是中心频率,σ=σratioω0是带宽比例因子,λmin是最小波长,μ是波长的倍数,s是比例指数.因而二维信号的局部幅值A、局部方向O以及局部相位P可以由下式计算:
(3)
局部幅值A是局部能量信息的度量,局部方向O描述了几何信息(即局部结构的主方向),局部相位P表示的是主方向上的局部结构信息.
单演信号的编码过程共分为两部分:单演信号局部变化(幅值、方向和相位)的二值编码和单演局部强度(像素点)的二值编码.典型的局部变化编码过程如图1所示(设定N=8),局部强度编码如图2所示.
图1 局部变化编码流程图 图2 单演信号局部强度编码Fig.1 Local variation coding flow chart Fig.2 Monogenic signal local intensity coding
根据图像的局部幅值A、方向O和相位P的不同性质采用不同的编码规则,得到的八位二进制序列作为MBC编码的低八位.
(4)
(5)
(6)
式(5-6)中Q(x)是量化函数, 表示如下:
(7)
因此,单演信号局部变化的二值编码如下:
(8)
(9)
对于单演信号表示的每个幅值、相位和方向分量,分别用MBC_A、MBC_P和MBC_O表示其二值编码,在每个位置MBC_A、MBC_P和MBC_O通过将局部图像强度两位编码(式(10))和局部变化八位二值编码(式(8))串联,表示如下:
(10)
MBC_A、MBC_P和MBC_O编码特征可以单独作为人脸识别的特征,也可以组合在一起作为人脸特征.本文采用加权的方式将三个分量组合得到MBCF编码特征:
(11)
式中a1、a2和a3为权值系数,a1+a2+a3=1.
深度信念网络是一种无监督学习网络模型,它是由多个受限玻尔兹曼机(RBM)组成的概率模型(见图3).RBM是一个由可见层v和隐藏层h组成的两层无向概率图模型.
DBN的训练过程共分为预训练(低层到高层的前向堆叠RBM学习)和微调(由高层到低层的反向微调学习)两个部分[6].
预训练将DBN网络划分为若干个相邻的RBM模型,逐层的训练每个RBM求得每层节点之间的权值矩阵w.假设所有的v和h对于任意的i和j,有vi∈{0,1},hj∈{0,1},其联合分布为:
(12)
其中,Z是归一化常量,b是可见层节点的偏置项,c是隐藏层节点的偏置项.
RBM模型是一个二分图,所以可视层节点与隐藏层节点独立,即式(13)和(14)成立.
(13)
(14)
训练RBM采用无监督贪心逐层方法,先由可见层v,通过式(14)可求得隐藏层h;得到h之后再由式(13)反过来重构可见层v1,通过调整参数使得重构的可见层v1与v相同;最后,通过新的可见层再次重构隐藏层,不断重复这一个过程求得每一层之间的w.
微调采用有监督的反向传播算法(BP算法)微调整个DBN网络的参数.具体的过程为:用数据的标签值对模型进行有监督训练,微调各层间的连接权值w,减小模型的目标预测标签值与实际标签值的误差.
图3 DBN网络结构图 图4 MBCF+DBN算法流程图Fig.3 DBN structure Fig.4 MBCF+DBN algorithm flow chart
人脸图像的结构特征具有一定的稳定性,在受到光照、姿态、表情和遮挡的影响时不会发生太大的变化.单演信号将图像正交分解为幅值、相位和方向信息,而且其所需的时间和空间复杂度较小,因此,融合单演二值模式(MBC)能够有效地提取图像的结构特征.深度学习可以直接将人脸图像像素作为深度信念网络的输入数据,但其输入为向量形式,学习不到人脸的局部结构特征.
本文将MBC算法和深度学习相结合进行人脸识别.首先,用多尺度的单演滤波器对训练集与测试集图像进行滤波,得到幅值、方向和相位信息;其次,对三个分量进行局部编码,得到MBCF人脸特征编码;然后,将训练集图像的MBCF特征输入DBN网络,逐层训练优化网络;最后,用训练好的DBN网络进行人脸识别.算法具体步骤如下(参考图4):
(1)将人脸图像分为训练集和测试集,使用尺度为S=3的单演滤波器进行滤波,得到多尺度的幅值A、方向O和相位P信息;对三个分量根据式(5-7)进行二值编码,得到编码后的特征图像;
(2)将编码后训练集和测试集图像进行分块(图像划分为Mb×Mb块,每一小块再次被分为Mr×Mr子块)并提取每一子块的直方图特征,将每个子块的特征连接起来得到数据集的特征HMBC_A、HMBC_O和HMBC_P,将直方图特征用式(12)进行融合,得到MBCF编码特征表示人脸图像特征;
(3)将训练集图像MBCF编码特征作为DBN的输入数据,根据DBN训练过程,逐层学习训练网络参数,构建最优DBN网络模型;
(4)将测试集MBCF编码特征输入步骤(3)已训练好的DBN网络中,从下到上的学习测试集的抽象特征,在网络的最顶层根据图像的抽象特征进行分类,获得测试集的类标值,并计算识别准确率.
为了验证算法的有效性,在ORL人脸数据上进行测试实验.ORL数据库共有400张(40个人,每人10张)不同光照条件、姿态、表情和遮挡的人脸图像.本文实验中,每人随机选取7张共280张图片作为训练集,剩余的120张图片作为测试集,准确率为测试20次平均值.对比实验均选最优结果.
实验在Windows7,Matlab2014a平台上进行仿真,运行环境是Intel双核处理器,2GB内存.最小波长λmin=4,波长的倍数μ=0.64,尺度个数S=3,比率因子σratio=1.7.DBN网络共4层(1个可见层、2个隐藏层和1个输出层),每一层的神经元个数分别为m、100、100、n,其中n是目标分类数,m是输入向量维数.每层迭代次数为30,取学习率为0.001.
为了找到MBCF+DBN算法最佳的权重参数,在ORL数据库上分别用MBC_A、MBC_P和MBC_O三种编码方法与DBN网络相结合进行试验,得到表1结果.
表1 不同编码方式的准确率Table 1 Accuracy of different coding methods
从表1中可以看出MBC_A编码方式的准确率(测试集的人脸识别准确率)明显高于其他两种编码方式,说明人脸图像单演滤波后得到的幅值分量包含人脸图像的大部分信息.虽然MBC_P(相位)和MBC_O(方向)编码方式的准确率不高,但仍包含人脸图像识别的有效信息,所以分析实验结果得到MBCF算法人脸图像特征中权重系数的关系设置为a1>a2≥a3.不同权重系数的识别率不同,为进一步确定a1,a2,a3的值,进行多次实验得到表2结果.
表2 不同权重系数识别准确率Table 2 Recognition accuracy of different weight coefficients
由表2可知,MBCF+DBN算法的准确率随着a1的增大而增大,当a2=a3时,a1增大到0.6之后准确率达到一个定值99.17%.当a1不变且a2>a3时,准确率比a2=a3时低,即权重系数关系为a1>a2=a3时准确率高,因此权重系数设定为a1=0.6,a2=0.2,a3=0.2.
选取几种现有取得不错识别效果的人脸识别算法与MBCF+DBN算法进行对比实验,结果见表3.
表3 不同算法在ORL人脸数据库上识别率Table 3 Recognition rate of different algorithms on ORL face database
从表3的实验结果可以看出,在ORL人脸数据库上LBP、MBP、LBP+DBN算法都取得了较好的识别效果,但本文提出的MBCF+DBN在所有算法中识别准确率最高;这是因为LBP只考虑了相邻像素点之间的关系,图像特征不够全面;MBP算法较LBP算法增加了像素点本身的方向信息,特征提取较全面,所以识别效果较好;MBCF+DBN算法在MBP算法的基础上又结合了图像的相位信息,融合了幅值、方向和相位信息,能够充分提取图像特征,又因为深度信念网络是每一层都进行抽象学习,将采用MBCF编码得到的直方图特征作为网络的输入时,更能有效地学习人脸特征,所以更有利于进行人脸识别,识别效果最好.
在已有人脸图像局部结构特征提取和深度学习人脸识别的研究基础上,提出了一种将融合单演二值编码和深度信念网络结合的人脸识别方法.在ORL数据库上进行试验,探讨了MBC特征(单演幅值、单演方向和单演相位)不同编码方式、不同权重参数对实验结果的影响.在使用无监督的贪婪算法逐层训练深度学习模型DBN时,隐藏层设定为2层,将采用MBC算法提取的人脸特征作为DBN的输入,逐层训练,使用反向传播算法优化网络.实验结果表明MBCF编码特征结合DBN网络学习使得人脸识别精度有明显提高.