一种基于字典分解和稀疏表示的鲁棒人脸识别方法技术领域
本发明属于模式识别领域,特别涉及一种基于字典分解和稀疏表示的鲁棒人脸识
别方法。
背景技术
人脸识别技术是指对输入的视频流或静态的图像,在判断存在人脸并进一步标出
人脸的位置后,提取人脸的特征信息,将其与预先存储的图像数据库进行对比,最终验证或
者识别一个或者多个人身份的技术。人脸识别凭借其广泛的实际应用在近些年来已经成为
计算机视觉和模式识别领域很热的一个课题。早期的人脸识别算法先对人脸图像进行降维
(实质上就是人脸特征提取),然后简单地应用最近邻分类器(nearest neighborhood
classifier)分类。
1991年,Turk和Pentland提出了“特征脸”(Eigenfaces)算法,其算法的思想是把
人脸图像从像素空间变换到另一个空间,在另一个空间进行分类。“特征脸”算法提出之后,
迅速成为人脸识别的经典算法。2009年,Wright等人提出稀疏表示分类器算法(Sparse
Representation based Classification,SRC),将用于训练的人脸图像进行线性稀疏表
示,利用求解优化问题得到的稀疏系数对样本判别归类。但当训练样本被污染时,SRC并没
有理想的效果,2011年,Candès、Li、Ma和Wright提出的鲁棒主成分分析(RPCA)提供了一种
可以用来解决这种缺点的方法,RPCA把每个类的训练样本分解成一个低秩矩阵和一个稀疏
矩阵之和,通过重建去除污染的图像进行识别。字典学习也被应用到解决SRC这方面不足当
中。而通过字典学习得到了很好的表示字典,这种表示字典并不能保证有良好的分类判别
能力,此后出现了一系列的判别力字典学习方法,通过设计字典学习算法从原始训练样本
中得到判别力字典,这种判别力字典学习方法在字典的表示能力和分类能力之间做了平
衡。
发明内容
本发明的目的是提供一种识别率较高的基于字典分解和稀疏表示的鲁棒人脸识
别方法。
为了实现上述目的,本发明提供了如下技术方案:
本发明提供一种基于字典分解和稀疏表示的鲁棒人脸识别方法,包括如下步骤:
步骤一:根据字典分解模型得到求解模型
(1.1)根据人脸图像信息,得到字典分解模型为:D=A+BX+E;
其中,D为训练数据矩阵,A称为类特定字典,包含了人脸图像中的类特定信息,B称
为非类特定字典,包含人脸图像中的其他信息,X是B的系数矩阵,E是稀疏噪声矩阵;
(1.2)根据约束条件得到字典分解模型的求解模型如下:
s.t.D=A+BX+E; (约束条件)
其中,rank(A)和rank(B)分别表示矩阵A和B的秩,表示矩阵X的F范数的平方,
||E||0表示矩阵E的零范数,λ、τ和η是正的惩罚项系数;
(1.3)对步骤(1.2)得到的求解模型,分别利用优化秩函数和零范数的凸松弛核范
数和1范数代替,得到最终的求解模型:
s.t.D=A+BX+E; (约束条件)
其中,||A||*和||B||*分别表示矩阵A和矩阵B的核范数,即矩阵的所有奇异值之
和,矩阵的核范数可以用来近似替代矩阵的秩函数;||E||1表示矩阵E的1范数,矩阵的1范
数用来替代矩阵的零范数;D=A+BX+E是约束条件;
步骤二:求解类特定字典A
对于步骤一(1.3)的求解模型,采用给定初值,固定其中两个优化另外两个的方法
循环迭代求解:
(2.1)固定A和X,求解B和E;
(2.2)固定A和B,求解X和E;
(2.3)固定B和X,求解A和E;
步骤三:计算映射矩阵P
计算映射矩阵P来描述类特定字典A与训练数据矩阵D之间的关系:A=PD;求解
其中是D的伪逆矩阵;
步骤四:校正测试图像矩阵y,得到校正后的测试图像yp
利用步骤三中得到的映射矩阵P对测试图像矩阵y进行校正:yp=Py;
步骤五:利用PCA降维
对类特定字典A和校正后的测试图像yp进行主成分分析PCA降维处理:
A'=F(A),y'=F(yp); (公式九)
其中,F(·)在公式里表示的PCA降维操作,A'=F(A)表示的是对矩阵A进行PCA降
维操作得到降维后的类特定信息A',y'=F(yp)表示的是对校正后的测试图像矩阵yp进行相
同的PCA降维操作得到降维后的测试图像y';
步骤六:利用SRC分类
利用SRC基于稀疏表示的分类器对测试图像进行分类:
(6.1)直接把降维后的类特定信息A'和降维后的测试图像y'代入SRC模型中:
其中βSRC是正的惩罚项系数;
(6.2)求解得到稀疏表示系数α;
(6.3)计算测试图像与每一类根据稀疏表示系数α重建结果的残差确定测试图像
属于哪一类:
其中,y'-Ai'αi的2范数表示的含义是校正后的测试图像y'与第i类根据稀疏表示
系数αi重建结果的距离,表示使得y'-Ai'αi的2范数最小的i。
所述步骤二(2.1)的具体过程如下:
X赋初值为单位矩阵X=I;
首先将每一类的训练数据进行奇异值分解:
Di=Ui∑iViT; (公式三)
然后把利用最大的奇异值对应的奇异值向量得到的对训练数据重建的结果赋予
给A:
上述公式三中,Di表示第i类的训练数据矩阵,Ui、∑i和ViT分别表示对Di进行奇异
值分解得到的对应的矩阵;上述公式四中,Ui(1:m,1)表示矩阵Ui的第一列;∑i(1,1)表示
∑i矩阵第一行第一列的那个元素,即Di的最大的奇异值;表示Vi矩阵的第一列的
转置;上述公式五中,A=(A1,A2,A3,...,AN)是把每一类得到的Ai组成一个大矩阵;在这里
的含义是指实数域,的含义是矩阵Ai是m行Ni列的,并且矩阵Ai里的元素都是属于
实数域的。
根据上述公式三至五给定A的初值和X的初值X=I之后,同时代入步骤一(1.3)中
的求解模型得到:
s.t.D-A=BX+T; (约束条件)
其中,||B||*表示矩阵B的核范数,||T||1表示矩阵T的1范数;λ和δ是正的惩罚项系
数;步骤一(1.3)中的求解模型因为现在固定了A和X所以可以写成上述模型,而原始的约束
条件D=A+BX+E也因此写成了D-A=BX+T;
通过增广拉格朗日乘子法求解上述模型可以得到B和T。
所述步骤二(2.2)的具体过程如下:
分别把A和B赋值为步骤二(2.1)中使用的A和步骤二(2.1)得到的B;代入步骤一
(1.3)中的求解模型得到:
s.t.D-A=BX+T; (约束条件)
其中,表示矩阵X的F范数的平方,||T||1表示矩阵T的1范数,τ和δ是正的惩罚
项系数;步骤一(1.3)中的求解模型因为现在固定了A和B所以可以写成上述模型,原始的约
束条件D=A+BX+E也因此写成了D-A=BX+T;
利用增广拉格朗日乘子法求解得到X和T。
所述步骤二(2.3)的具体过程如下:
分别把B和X赋值为步骤二(2.1)得到的B和步骤二(2.2)得到的X;代入步骤一
(1.3)中的求解模型得到:
s.t.D-BX=A+T; (约束条件)
其中,||A||*表示矩阵A的核范数,||T||1表示矩阵T的1范数,η是正的惩罚项系数;
步骤一(1.3)中的求解模型因为现在固定了B和X所以可以写成上述模型,原始的约束条件D
=A+BX+E也因此写成了D-BX=A+T;
利用鲁棒主成分分析RPCA求解得到A和E。
所述步骤二中,进行四次循环迭代求解达到预设的收敛条件:
其中ε=10-4;
从而求解得到最终的A和E。
所述步骤中,对类特定字典A和校正后的测试图像yp进行主成分分析PCA降维处理
的维度分别为25、50、75、100和150。
所述步骤六(6.3)中,具体判定方法如下:
对于步骤六(6.2)中得到的稀疏表示系数α,对每一类i,都有对应于标签i的降维
后的类特定信息Ai'和对应于标签i的稀疏表示系数αi。然后计算对应于第i类的降维后的测
试图像y'与重建结果的误差e(i)=||y'-Ai'αi||2。对所有的i,都计算出误差对应的e(i),
比较误差e(i),哪一类的误差最小,测试图像y'就属于哪一类。
与现有技术相比,本发明的有益效果在于:
相比于SRC和一些基于SRC的人脸识别算法,本发明的方法的识别率较高,而且当
人脸图像训练数据存在污染、缺失、遮挡时,本发明的方法通过字典分解提取训练数据中的
类特定信息,然后通过映射矩阵校正测试图像,识别过程几乎不受污染、缺失和遮挡的影
响。有效地解决了因训练数据存在污染、缺失和遮挡而产生的识别率低的问题。
附图说明
图1为AR人脸数据库的一些人脸图片;
图2为字典分解的结果;
图3为本发明基于字典分解和稀疏表示的鲁棒人脸识别方法的整体流程框图。
具体实施方式
本发明设计了大量实验对本发明的方法进行验证,下面结合有太阳镜遮挡的AR人
脸数据库对本发明进行进一步说明。
AR人脸数据库一共有100个不同的个体,其中50个女性,50个男性,每个人都有26
张图片,这26张图片中,第1~7张和第14~20张图片是只包含表情和光照变化的图片,第8
~10张和第21~23张图片是带有太阳镜遮挡的图片,第11~13张和第24~26张是带有丝巾
遮挡的图片。每张图片被裁剪成165×120像素大小,然后每张图片都被拉成列向量组成一
个19800×2600的矩阵。
本实例选取数据库中第1~7张不带遮挡的图片和从第8~10张中随机选取一张带
有太阳镜遮挡的图片作为训练数据;选取第14~20张和剩下的5张太阳镜遮挡的图片作为
测试数据。每一类的训练数据有8张图片,测试数据有12张图片。
请参照图3,本发明提供一种基于字典分解和稀疏表示的鲁棒人脸识别方法,包括
如下步骤:
步骤一:根据字典分解模型得到求解模型
(1.1)人脸图像中包含大量信息,可以分为包含人脸特征的类特定信息、其他信息
和一些稀疏噪声。根据这一特点,得到字典分解模型为:D=A+BX+E。
其中,D为训练数据矩阵,A称为类特定字典(包含了人脸图像中的类特定信息),B
称为非类特定字典(包含人脸图像中的其他信息),X是B的系数矩阵,E是稀疏噪声矩阵。
(1.2)有了字典分解模型之后,需要对各个字典进行求解。上述字典分解模型有无
穷个解,需要一些约束条件优化得出最优解。由于人脸图像中稀疏噪声的存在,可以假设D
为一个满秩的矩阵,所以去除了稀疏噪声E之后的矩阵D-E应当是一个低秩的矩阵,那么A和
B也是低秩矩阵,根据这些约束条件得到字典分解模型的求解模型如下:
s.t.D=A+BX+E; (约束条件)
其中,rank(A)和rank(B)分别表示矩阵A和B的秩,表示矩阵X的F范数的平方,
||E||0表示矩阵E的零范数,λ、τ和η是正的惩罚项系数。
(1.3)由于优化秩函数和零范数都是NP-hard问题,所以分别利用它们的凸松弛核
范数和1范数代替,得到最终的求解模型,即求解过程使用的求解模型,后面部分简称为求
解模型:
s.t.D=A+BX+E。 (约束条件)
其中,||A||*和||B||*分别表示矩阵A和矩阵B的核范数(即矩阵的所有奇异值之
和),矩阵的核范数可以用来近似替代矩阵的秩函数。||E||1表示矩阵E的1范数,矩阵的1范
数可以用来近似替代矩阵的零范数。由于优化矩阵的秩函数和零范数都是很难求解的,所
以在求解中分别用它们的凸松弛核范数和1范数代替。D=A+BX+E是约束条件。
步骤二:求解类特定字典A
由于求解模型有四个需要优化的未知项,采用给定初值,固定其中两个优化另外
两个的方法循环迭代求解,具体过程如下:
(2.1)固定A和X。
X赋初值为单位矩阵X=I。
由于A和B的约束条件是相同的,所以并不能保证分解后A包含类特定信息,而B包
含其他信息,所以需要把我们能够知道的类特定信息尽可能多地赋给A,首先将每一类的训
练数据进行奇异值分解(SVD-Singular Value Decomposition):
Di=Ui∑iViT; (公式三)
然后把利用最大的奇异值对应的奇异值向量得到的对训练数据重建的结果赋予
给A:
奇异值分解的数学原理和含义如下:
奇异值分解的描述:假设M是一个m×n阶矩阵,其中的元素全部属于复数域,则存
在一个分解使得M=UΣV*,其中U是m×m阶酉矩阵;Σ是半正定m×n阶对角矩阵;而V*,即V
的共轭转置,是n×n阶酉矩阵。这样的分解就称作M的奇异值分解。Σ对角线上的元素即为M
的奇异值。奇异值分解是矩阵分解的一种,可以将一个比较复杂的矩阵用更小更简单的几
个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性。
上述公式三中,Di表示第i类的训练数据矩阵,Ui、∑i和ViT分别表示对Di进行奇异
值分解得到的对应的矩阵。上述公式四中,Ui(1:m,1)表示矩阵Ui的第一列;∑i(1,1)表示
∑i矩阵第一行第一列的那个元素,即Di的最大的奇异值;表示Vi矩阵的第一列的
转置。的含义就是利用Ai的最大奇异值对应的奇异值向量得
到的对Di重建的结果。上述公式五中,A=(A1,A2,A3,...,AN)就是把每一类得到的Ai组成一
个大矩阵。在这里的含义是指实数域,的含义是矩阵Ai是m行Ni列的,并且矩阵Ai
里的元素都是属于实数域的。
根据上述公式三至五给定A的初值和X的初值X=I之后,同时代入步骤一(1.3)中
的求解模型得到:
s.t.D-A=BX+T; (约束条件)
其中,||B||*表示矩阵B的核范数,||T||1表示矩阵T的1范数。因为在循环求解的过
程中,本应该用来表示稀疏噪声的矩阵E会包含除了稀疏噪声之外的其他信息,为了将两者
进行区分,所以在求解的过程中将矩阵E用矩阵T来表示。λ和δ是正的惩罚项系数。步骤一
(1.3)中的求解模型因为现在固定了A和X所以可以写成上述模型,而原始的约束条件D=A+
BX+E也因此写成了D-A=BX+T。
通过增广拉格朗日乘子法求解上述模型可以得到B和T。
(2.2)固定A和B。
分别把A和B赋值为步骤(2.1)中使用的A和步骤(2.1)得到的B。代入步骤一(1.3)
中的求解模型得到:
s.t.D-A=BX+T; (约束条件)
其中,表示矩阵X的F范数的平方,||T||1表示矩阵T的1范数,τ和δ是正的惩罚
项系数。步骤一(1.3)中的求解模型因为现在固定了A和B所以可以写成上述模型,原始的约
束条件D=A+BX+E也因此写成了D-A=BX+T。
同样利用增广拉格朗日乘子法求解得到X和T。
(2.3)固定B和X。
分别把B和X赋值为步骤(2.1)得到的B和步骤(2.2)得到的X。代入步骤一(1.3)中
的求解模型得到:
s.t.D-BX=A+T; (约束条件)
其中,||A||*表示矩阵A的核范数,||T||1表示矩阵T的1范数,η是正的惩罚项系数。
步骤一(1.3)中的求解模型因为现在固定了B和X所以可以写成上述模型,原始的约束条件D
=A+BX+E也因此写成了D-BX=A+T。
这是个标准的低秩矩阵恢复问题,用鲁棒主成分分析RPCA-Robu st Principal
Component Analysis求解得到A和E。
当这三步完成时,一次循环也就完成了。实验过程中,大量的实验显示只需要四次
循环可以达到预设的收敛条件其中ε=10-4,从而求解得到最终的A和
E。
步骤三:计算映射矩阵P
计算映射矩阵P来描述类特定字典A与训练数据矩阵D之间的关系:A=PD;求解
其中是D的伪逆矩阵。
步骤四:校正测试图像矩阵y,得到校正后的测试图像yp
因为测试图像矩阵y也是由类特定信息和其他信息组成的,但是由于只有单张图
片,不能通过上述字典分解方法提取类特定信息,而因为类特定字典A只包含类特定信息,
不能够很好地表示测试图像,这时如果直接对测试图像矩阵y用基于稀疏表示的分类器SRC
进行分类,势必会得到较低的识别率。所以要先用步骤三中得到的映射矩阵P对测试图像矩
阵y进行校正:yp=Py。
校正原理:
假设步骤二得到的类特定字典A是存在于训练数据矩阵D的某个子空间,那么测试
图像矩阵y中的类特定信息也应该存在于同一个子空间,步骤三计算出类特定字典A与训练
数据矩阵D之间的映射关系矩阵P,利用该映射矩阵P对测试图像矩阵y进行映射,就可以得
到测试图像矩阵y属于该子空间中的类特定信息。
步骤五:利用PCA降维
因为实际操作中人脸图像是拉成向量进行运算,维度太高运算量太大,所以分别
对类特定字典A和校正后的测试图像yp进行主成分分析PCA(Principal Component
Analysis)降维:
A'=F(A),y'=F(yp); (公式九)
其中,F(·)在公式里表示的PCA降维操作,A'=F(A)表示的是对矩阵A进行PCA降
维操作得到降维后的类特定信息A',y'=F(yp)表示的是对校正后的测试图像矩阵yp进行相
同的PCA降维操作得到降维后的测试图像y'。
实施例中选取的维度分别为25、50、75、100和150。
步骤六:利用SRC分类
利用SRC-sparse representation-based classifier基于稀疏表示的分类器对
测试图像进行分类:
(6.1)直接把降维后的类特定信息A'和降维后的测试图像y'代入SRC模型中:
直接套用SRC模型就可以得到上述模型,其中βSRC是正的惩罚项系数;
(6.2)求解得到稀疏表示系数α;
(6.3)计算测试图像与每一类根据稀疏表示系数α重建结果的残差确定测试图像
属于哪一类:
其中,||y'-Ai'αi||2表示的含义是校正后的测试图像y'与第i类根据稀疏表示系
数αi重建结果的距离,表示使得y'-Ai'αi的2范数最小的那个i,上述公式
十一的含义是测试图像属于使得上述距离最小的那一类。
详细的判定方法如下:
对于步骤六(6.2)中得到的稀疏表示系数α,对每一类i,都有对应于标签i的降维
后的类特定信息Ai'和对应于标签i的稀疏表示系数αi。然后计算对应于第i类的降维后的测
试图像y'与重建结果的误差e(i)=||y'-Ai'αi||2。对所有的i,都计算出误差对应的e(i),
比较误差e(i),哪一类的误差最小,测试图像y'就属于哪一类。
下表是上述实例运行10次的平均结果:
表1 带有太阳镜遮挡的AR数据库上的识别率