顾播宇(1984),男,博士研究生.研究方向:通信与信息系统.E-mail:guboyu1101@163.com
对模块双方向二维主成分分析(Two-directional two-dimensional principal component analysis, (2D)2PCA)人脸识别算法进行了改进,提出了基于特征加权模块(2D)2PCA的人脸识别算法。首先对图像进行分块及(2D)2PCA特征提取。然后依据每一子图像块的特征对识别的贡献程度分配特征权重。最后对测试样本采用加权距离进行最近邻分类。该算法无需任何先验知识,依据子图像块在特征空间中的信息比重确定其贡献程度,从而实现自适应权重分配。试验结果表明:本文算法能够有效地提高人脸识别的正确率。
An improved modular Two-directional Two-dimensional Principle Component Analysis (2D(PCA)) with eigen weight for face recognition is proposed. First, the image is divided into sub-blocks and the features are extracted by modular 2D(PCA). Then, the feature weight is assigned to each sub-block of every image according to the contribution for recognition of the sub-block. Finally, the testing samples are classified by nearest neighborhood classification of weighted distance. The contribution of each sub-block is determined self-adaptively according to the proportion of local feature information in eigen space. This algorithm does not need any prior knowledge. Experimental results show that the recognition rate of the proposed algorithm is effectively improved.
目前,基于学习的统计识别已成为人脸识别的主流方法,然而统计识别面对的特征维数往往较高,导致算法的时间复杂度和空间复杂度都大大增加,而且高维特征空间的参数估计也变得困难,因此,人们常常需要对原始高维特征集合进行特征提取或特征变换以便获得有效的人脸识别特征[ 1, 2]。作为最小均方误差意义上的数据最优特征变换方法——主成分分析(Principal component analysis,PCA)被广泛应用于人脸识别领域[ 3, 4, 5]。但是,PCA对表情和姿态等条件变化缺乏稳健性,为此,Gottumukkal等[ 6]提出模块PCA(Modular PCA)人脸识别算法,该算法将图像分为若干子图像块并分别进行PCA特征提取,获得了良好的效果。在特征提取过程中,PCA算法需要将图像矩阵转化成维数较高的图像向量,计算量庞大,为此,Yang等[ 7]提出2DPCA(Two-dimensional PCA)方法,该方法直接利用图像矩阵,从而构造出维数较低的协方差矩阵,降低了计算强度并提高了稳健性,文献[8]将其拓展,提出了模块2DPCA,进一步提高了识别率。
随后,许多一维算法被扩展至二维,目前,二维方法已成为研究的热点。文献[9]指出,2DPCA可看作按行(或列)分块的模块PCA,而为了进一步降低图像维数并加快识别速度,Zhang等[ 10]提出(2D)2PCA,该算法在行列两个方向上对图像进行2DPCA特征提取。在此基础上,针对单样本条件下的人脸识别问题,文献[11]于2010年提出将加权和分块与(2D)2PCA算法相结合的MW(2D)2PCA算法,该算法对各投影轴赋予不同权值,从而提高了稳健性。然而,在模块(2D)2PCA算法中,各子图像块对识别结果的贡献程度被认为是等价的。考虑到人类常常能够根据某一具有代表性的物理特征(如眼睛、鼻子、嘴等)来进一步辨识人脸[ 12],对于同一人脸图像,其不同的局部特征对最终识别结果的贡献程度应不相同。PCA的本质是一种数据重组变换,而人脸图像中对识别贡献较大的物理空间特征,在变换过程中应以某种抽象形式在特征空间中得到体现。因此,通过贡献程度对不同子图像块分配不同权重应是提升稳健性的有效方法。
基于此,本文提出了基于特征加权模块(2D)2PCA的人脸识别算法,该算法首先对图像进行分块并提取模块(2D)2PCA特征,再根据人脸图像的各部分在特征空间中的信息比重进行特征加权,最后通过加权距离完成人脸分类。
若训练样本数为p个,将每个样本分为m×n个子图像块,则样本空间中的某一样本可表示为:
(1) |
样本空间 I中共含 p×m×n个图像矩阵,若图像分辨率为 M×N,则每个图像矩阵大小为 M/m×N/n。
样本空间均值可表示为:
μ =
样本空间中任意图像矩阵 I l( l=ijk)及均值 μ可分别表示为由列向量或行向量所构成的形式:
I l ={ Icol, l1, Icol, l2,…, Icol, lh} ={
μ ={ μcol,1, μcol,2,…, μcol, h} ={
h=N/n; g=M/m。
通过样本均值对所有图像向量进行中心化,并分别按行列两个方向计算样本空间的协方差矩阵:
(3) |
式中: Γcol, lt和 Γrow, lt分别为列方向和行方向上的中心化图像向量, Γcol, lt = Icol, lt - μcol, t; Γrow, lt = Irow, lt - μrow, t。
计算列方向协方差矩阵 Ccol的全部特征值 λcol =diag{ λcol,1, λcol,2,…, λcol, h},将特征值按降序排列,选取前 σ个( σ≤ h)大于零的特征值所对应的单位正交特征向量构成特征向量组 Ecol ={ Ecol,1, Ecol,2,…, Ecol, σ}, θ确定如下:
(4) |
式中: θ为预先设置的阈值,当θ≈0.9时效果最佳。
同样,选取 Crow的 δ( δ≤ g)个特征值,得到特征向量组 Erow ={ Erow,1, Erow,2,…, Erow, δ}。每个特征向量即为特征空间中的一个投影轴。通过 Ecol和 Erow,将第 i个样本的第 jk块向特征空间中投影:
η ijk=
任意测试样本的第 jk个子图像块,可由一图像矩阵 Itest, jk表示,将其由样本空间向特征空间投影:
ηtest, jk=
在特征空间中,计算测试样本与第i个训练样本的距离:
d i=
式中:‖·‖为Frobenius范数。
与测试样本距离最小的训练样本所属类别 ρ即为识别结果:
ρ=
首先对样本空间中每一图像矩阵进行中心化:
Z ijk= I ijk- μ(9)
将每个中心化图像矩阵看作一个由 r维随机变量构成的列向量, r=M/m×N/n。所有中心化图像向量构成中心化样本集 Z,而每个随机变量可看作一个 p×m×n维行向量,因此 Z可看作所有 p×m×n个图像向量的集合,同时,也可将其看作所有 r个随机变量向量的集合:
Z ={ Z111, Z112,…, Z1 mn,…, Z ijk,…, Z pmn}={
式中: Z ijk为第 i个训练样本中第 jk个子图像块的中心化图像向量; Y q为第 q个随机变量向量。
通过所有随机变量的统计信息计算训练样本集的协方差矩阵:
V =
计算 V的所有特征值 ε={ ε1, ε2,…, ε pmn}及其对应的特征向量组 e={ e1, e2,…, e pmn}。
特征值表示特征空间中,图像向量在其对应特征向量方向上的形变程度(即能量大小),通过特征值可计算训练样本集中第 l个图像向量在特征空间中的信息比重:
Λ l =
式中: e tl为第 t个特征向量的第 l个元素; v ll为协方差矩阵 V对角线上的相应元素。
在样本空间中,人类可根据人脸图像某一部分具有代表性的物理特征进行人脸辨识。而特征空间中,对于某一人脸图像不同子图像块的投影,其抽象特征同样体现出不同的信息比重,信息比重越大,则其对识别的贡献程度越高。
特征加权分配是将每一子图像块在整个图像中所占的信息比重量化为权重。在样本 i中,对 m×n个子图像块进行权重归一化处理,使其满足:
则第 i个训练样本中第 jk块的权重为
w ijk =Λ ijk /
将训练样本和测试样本分别向模块2 DPCA特征空间投影,并计算测试样本与第 i个训练样本在第 jk个子图像块上的距离:
d ijk =‖ ηtest, jk -η ijk‖(15)
将测试样本与第 i个训练样本相应各子图像块的权重与距离相乘,得到加权距离矩阵:
(16) |
将加权距离矩阵各元素相加,可得测试样本与该训练样本的加权距离:
Ω i=
通过最近邻分类进行识别,将测试样本归为与其加权距离最近的测试样本所属类别 ρ:
ρ=
试验采用 ORL人脸数据库对本文算法性能进行测试。图1为该库中来自某一对象的部分人脸图像。 ORL人脸库包含400幅分辨率为92 ×112的灰度图像,来自40个具有不同性别、种族、年龄的对象,对每人采集10幅不同表情和姿态的人脸图像,其人脸深度旋转和平面旋转达20 %,尺度变化达10 %。将该数据库分为40类,每类训练及测试样本总和为10幅。试验中未对图像进行任何预处理。
图2为ORL人脸库中的一幅测试样本分别通过传统模块(2D)2PCA算法和本文算法的识别结果。试验中,将样本分为2×2个46×56大小的子图像块,并由式(9)~(13)计算各子图像块的特征权重,图2(c)为训练样本;(d)中参数为训练样本各子图像块所对应的权重系数。
如图2所示,测试样本的姿态变化以及图2(b)和(c)中两个对象较为相近的外貌特征,共同导致传统模块(2D)2PCA识别错误。而本文算法通过细微调整各块的特征权重,强调了图像的局部差异,并降低形变造成的干扰,缩小测试样本与正确对象的距离,使其被正确分类。
在ORL人脸库中统计本文算法在选择不同投影轴数量(1~12个)时的识别率,并与传统模块(2D)2PCA进行对比,其结果如图3所示,坐标横轴上的ALL表示选取全部大于零的特征值对应的特征向量作为投影轴。试验中从每类中随机选择6幅图像构成训练样本集,其余用作测试,识别率为重复10次试验的平均结果。
图3中,两种算法的识别率均随投影轴数量的增加呈上升趋势,当投影轴增加至4个以后,识别率趋于稳定,在投影轴数量为6时识别率达到最高,此时,传统模块(2D)2PCA的识别率为96.06%,而本文算法可达96.82%,式(4)中的阈值 θ=0.904。
试验结果表明,在投影轴数量达到4个后,本文算法始终有着更高的识别率(正确率提升了0.5%~0.94%),因此,与传统模块(2D)2PCA算法相比,本文算法表现出更强的稳健性。
由图3可知,当投影轴超过10个后,识别率出现小幅下降,这是由于图像中的某些冗余信息被引入特征空间。当投影轴数量小于4时,本文算法识别率低于传统模块(2D)2PCA算法,其原因为:在特征提取过程中,特征空间的维数过低会使许多重要的图像信息丢失,导致权重系数的置信度大幅降低。可见,选择适当数量的投影轴能够在完整的表示图像信息的同时降低冗余。
为了验证在模块(2D)2PCA中,基于特征空间中的信息比重对各子图像块进行特征加权的可靠性,以及本文算法针对单样本问题的有效性,在ORL人脸库中将本文算法与(2D)2PCA算法、模块(2D)2PCA算法及MW(2D)2PCA算法进行对比,其结果如图4所示。
试验中,每类任取1幅图像用作训练,构成单样本问题,其余用作测试,识别率为10次试验的平均结果。在2×2分块模式下时,投影轴数量取6, θ=0.904;在4×4分块模式下时, θ=0.929,选择4个投影轴进行特征提取。
如图4所示,(2D)2PCA算法的识别率为69.72%。在2×2分块模式下,模块(2D)2PCA算法的识别率为70.36%,MW(2D)2PCA算法的识别率达71.5%,本文算法识别率相对略高,为71.78%。在4×4分块模式下,模块(2D)2PCA算法的识别率为71.19%,MW(2D)2PCA算法的识别率可达74.14%,本文算法为74.22%。可见,在单样本条件下,相对于(2D)2PCA和模块(2D)2PCA算法,本文算法识别率有明显提高,而本文算法与MW(2D)2PCA算法的识别率基本持平。虽然相对于MW(2D)2PCA算法,本文算法并没有显著地提升正确率,但其依然存在一个明显的优势:在MW(2D)2PCA算法中,最佳权值系数是通过多次试验得出的,而本文算法的权重分配过程则完全是自适应的。
对模块(2D)2PCA算法进行扩展,提出了一种基于特征加权模块(2D)2PCA的人脸识别算法。在ORL人脸库上进行测试,结果表明:相对于传统模块(2D)2PCA算法,本文算法能够有效提高人脸识别的正确率,并且在单样本条件下同样表现出较强的稳健性。证实了基于各子图像块在特征空间中的信息比重进行自适应权重分配的可靠性。在特征权重分配的过程中,本文算法无需任何先验知识以及人为干预,以各子图像的抽象特征为依据,在特征空间中计算权重系数,从而实现自适应特征加权,并有效地强调对识别贡献程度较高的图像局部特征。本文通过加权描述图像局部所包含的特征信息量,通过(2D)2PCA进行人脸识别,文中所提出的局部特征加权方法同样可与其他算法,如kernel-PCA、ICA等算法相结合使用。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|