时间:2024-05-04
何 刚 袁秀娟张 伟 阎 石
(1.兰州大学信息科学与工程学院 兰州 730000)(2.西北民族大学电气工程学院 兰州 730000)
由于人脸识别在安全,监控和人机交互方面的广泛应用,目前已成为模式识别和人工智能领域的一个研究热点[1~4]。然而,迄今为止,由于人脸识别面临诸多问题,如人脸图像在光照,姿势,外貌、表情、肤色等方面的不同,具有模式可变性,始终缺乏高效的算法可以应对这些挑战。子空间分析方法(SAM)是当前人脸识别领域最流行的方法之一。SAM旨在寻找一组投影基向量,并通过将人脸图像投影到由这些基向量构成的子空间上提取特征[5]。PCA和FLDA均为基于特征子空间的经典算法[6]。
主成成分分析(PCA)试图在最小均方误差的基础上找到一组最优正交基来提取脸部特征[7]。这种方法可以有效地找出数据中最“主要”的元素和结构,将原有的复杂数据降维。Kirby和Sirovich[7]首先将PCA应用于人脸识别,随后,Turk和Pentland[8]提出了知名的特征脸法 Eigenface。从此,PCA被广泛研究,并且开发了许多基于PCA的改进算法[9],但PCA是无监督的,它所做的只是将高维数据整体映射到低维空间上并将有用信息的损失降低到最低,投影时没有利用任何数据内部的类别信息,单纯的提取主要的判别特征丢弃其他非主要的特征。所以PCA虽然可以实现较好的重建,但对于分类来说并不是最佳的,因此在分类与识别的效果上并不出色[10]。
为此,研究者提出了 FLDA[11~12]算法,它是以对样本进行更好的分类为目的,充分利用训练样本的类别信息,寻找到最有助于分类的投影方向子空间。FLDA不仅可以实现将高维数据降低到低维,而且可以尽可能地分离不同类的样本特征,并尽可能压缩相同的类样本特征。通过将其应用于脸部识别,Belhumeur[11]提出了的 Fisherface算法,即首先采用PCA将高维数据降维,然后运用FLDA提取面部判别特征,相关研究表明基于FLDA算法在实现分类与识别时效果将大大超过PCA算法[13]。
使用FLDA进行特征提取很大程度上取决于由训练样本获得的类内和类间散布矩阵。然而,在许多应用中,如执法驾驶执照查询,护照鉴定,身份证件核定,每个人只有一张照片,即每类对象仅有一个训练样本[14]。在这种情况下,由于类内散布矩阵为零,FLDA算法将无法应用。但由于单训练样本对客观现实应用的重要性,这个具有挑战性的问题已经迅速成为人脸识别中一个热门子领域。高[15]提出使用奇异值分解SVD的方法,通过SVD将原始的图像分解成多个基图像,将对应于3个最大奇异值的基图像用于重建,即可近似将原始图像分解成平滑图和差别图,用平滑图像计算类间散布矩阵,而差别图像作为平滑图像的补充,用其计算类内散布矩阵。陈[16]则是将每个训练样本进行分块,得到多个子块,然后利用FLDA方法进行特征提取。但这些方法通常都比较复杂,运算复杂度较高,并且鲁棒性差。
本文我们提出了一种基于镜像脸的FLDA方法来解决每类单训练样本的问题。首先通过使用镜像的方法获得原始单训练样本的镜像样本。镜像人脸样本不仅可以反映相同类人脸图像的位置变化,而且,当同一对象的原始脸图像和镜像脸图像以矩阵的形式描述的话,在相同位置上的数据是完全不同的。那么,原始脸和镜像脸就可以看成是同一个人完全不同的两张照片。整合原始训练样本和其镜像样本作为每一类最终的训练样本,不仅解决了FLDA在每类单样本情况下类内散布矩阵无法计算的问题,同时也增加了训练样本信息总量。用原始脸和镜像脸计算类间散布矩阵和类内散布矩阵。然后,利用FLDA算法提取判别特征进行分类识别,仿真数据表明此方法能够大幅度提高识别精度,获得更好的鲁棒性。
在本章节中,我们将详细介绍基于镜像脸实现FLDA单样本人脸识别算法的原理。
FLDA是一种运用广泛的基于特征提取的人脸识别方法。它旨在找到一组投影向量,尽可能地压缩相同的类特征,而分离不同类特征。这样的优点是能够实现更好的分类。
在1D-FLDA的基础上,研究者进一步提出了2D-FLDA思想[17],它直接通过二维图像计算类内和类间散布矩阵,而无需将人脸图像先转换成一维向量。下面我们就以2D-FLDA介绍算法思想。
假设现有c类共k个训练样本,第i类训练样本ci包含ki个样本,并有ki=k。我们以 Aˉ表示由所有训练样本获得的平均脸,Aˉi表示由第i类训练样本获得的平均脸。2D-FLDA是通过最大化准则(1)获取一组最佳判别向量wj(j=1,...,d),从而构建一个转换矩阵(即投影矩阵)W=[w1w2,...,wd]提取特征以实现正确分类。
其中,Sb表示类间散布矩阵,Sw表示类内散布矩阵。并有
最大化准则(1)相当于解决广义特征值问题:
其中Λ是以特征值为元素的对角矩阵。在获得 W后,就可基于FLDA算法思想实现特征提取,选择合适的分类器最终实现正确分类。虽然FLDA已被广泛应用于脸部识别,但当每类训练对象只有一个训练样本时无法使用,因为此时类内散布矩阵为零矩阵。下面将以基于镜像脸的方法解决这个问题。
假设原始训练样本共有c类,每类训练对象仅有一个训练样本 Ak∈RP×Q(k=1,...,c),由原始训练样本获取其镜像样本。设原始人脸图像矩阵具有P行和Q列,则可得镜像脸:Bk(p ,q)=Ak(p ,Q-q+1)(p=1,…,P,q=1,…,Q)。在获取镜像脸之后,整合原始人脸图像和相应的镜像图像作为最终训练样本集Θ= { Ak∈RP×Q,Bk∈RP×Q,k=1,2,…,c} ,计算类内散布矩阵Sw和类间散布矩阵Sb,从而解决了FLDA单样本下无法计算内类散布矩阵的问题。
结合式(4)、(5)、(6)求得在新的训练样本集 Θ下的最佳投矩阵W,然后利用W从Ak提取判别特征Zk:
输入一个测试样本A*,将其投影到W上得到判别特征Z*,然后利用最近邻分类器将测试样本A*分类:
实验中,我们使用三个著名的人脸数据库来测试所提出的方法的有效性:YALE,FERET和ORL。
YALE数据库包含来自15个人的图像,每个提供11个不同的样本。图像的变化有照明条件(左光,中心光,右光),面部表情(正常,快乐,悲伤,困倦,惊讶和眨眼)等。图1是一些来自YALE数据库样本及其镜像。
FERET脸部数据库由1010人的3280个灰度正面面部图像组成。在实验中,我们从200人中挑选400张图片进行测试。每个人都有两张不同的图像(fa和fb)。它们包含了不同的光照和面部表情。图2是一些来自FERET人脸库的样本及其镜像。
图1 YALE数据库样本及其镜像
图2 FERET人脸库的样本及其镜像
ORL数据库包含来自40个人的样本,每个提供10张照片。这些照片是在不同时间下拍摄得到,包含着丰富的面部表情(开放或闭合的眼睛,微笑或非微笑),拍摄的图像具有倾斜和旋转的差别,幅度变化高达10%。图3为来自ORL人脸库的样本。
图3 ORL人脸库的样本及镜像
在实验中,分别采用近邻分类算法NN和稀疏分类算法SRC[18]结合FLDA测试所提方法(PA)的效果。先用PCA算法将样本其降维到合适的维数以获得最佳识别结果。在采用ORL和YALE数据库的实验中,我们选择每个人的第一张人脸图像镜像处理后获得镜像脸,并将原始脸和镜像脸一起作为训练集用于训练,剩余图像作为测试样本进行测试。在FERET fafb数据库中,我们使用fa图像获取镜像脸和进行训练,fb图像进行测试。同时,为验证所提方法(PA)的优势,一些用于解决FLDA单训练样本问题的方法被用作比较算法。分别是奇异值分解法 SVD[15],离散余弦变换 DCT[15],图像分块法[16],投影法[19],奇异值扰动法[20]。在上述五比较种方案中,都是利用FLDA提取判别特征,然后用最近邻分类器实现对测试图像进行分类。表1显示了各种算法分别在ORL,YALE和FERETfafb数据库的最佳识别精度。
通过表1实验结果我们发现,镜像脸的引入,不仅解决了FLDA在每类单样本情况下类内散布矩阵无法计算的问题,同时,由于原始脸和镜像脸还反映了同一训练对象在位置上的变化,当两者以矩阵的形式描述的话,在相同位置上的数据是完全不同的。那么,就可以把原始脸和镜像脸就可以看成是同一个人完全不同的两张照片。这样,整合原始训练样本和其镜像样本作为每一类最终的训练样本,将大大增加训练样本的信息总量。在新的训练样本集下计算类间散布矩阵和类内散布矩阵。然后,利用FLDA算法提取判别特征进行分类识别,仿真数据表明此方法能够大幅度提高识别精度,并对光照、姿势、面部表情变化具有更好的鲁棒性。
表1 各算法最佳识别精度
本文提出了一种简单而有效的方法解决Fisher线性判别分析(FLDA)在应对每类单训练样本无法计算类内散布矩阵的问题。通过使用对原始单训练样本镜像的方法,可以获得每一类训练样本的镜像样本,用其扩充原始训练样本集,既解决单样本的问题又增加了不同的训练样本的信息。再用FLDA算法进行实验,结果验证了所提出的方法不仅可行,而且可以实现更好的识别性能与鲁棒性。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!