林国军,蒋行国,杨明中,李兆飞*,解 梅
(1.四川轻化工大学 自动化与信息工程学院,四川 自贡 643000;2. 成都工业学院 电子工程学院,四川 成都 611730;3. 电子科技大学 电子工程学院,四川 成都 611731)
由于来源丰富、采集方便、具有非侵犯性等特点,人脸识别作为身份识别与人体生物认证技术在政府、工业和商业中得到了广泛应用[1-5]。最近,Wright等[6]将稀疏编码应用于人脸识别,提出了基于稀疏表示的分类(SRC)方法,在人脸受控和每类多样本的条件下取得了很好的识别效果。Deng等[7-8]提出了基于叠加稀疏表示分类(SSRC)的人脸识别,是对SRC的一种改进,在人脸非受控和每类只有一个样本的条件下也能取得比较好的识别效果。SRC和SSRC都采用L1范数稀疏约束,导致计算复杂度较大。Zhang等[9]采用协同表示而不是L1范数稀疏约束使SRC成功适用于人脸识别,并提出了基于协同表示的分类(CRC)方法用于人脸识别,获得了相似于SRC的识别率,但计算复杂度低很多。Yang等[10-11]提出了鲁棒稀疏编码(RSC)方法,寻求稀疏编码问题的最大似然估计解,对受遮挡的人脸识别具有比SRC更强的鲁棒性。针对RSC计算复杂度较大的问题,Lin等[12]提出了鲁棒协同表示(RCR)方法,拥有 RSC相似的识别率,但计算复杂度低很多。Yang等[13]提出了一种基于低秩特征脸与协同表示的人脸识别算法,识别率和识别速度都得到了有效提高。
受到协同表示而不是L1范数稀疏约束使SRC成功适用于人脸识别的启发,本文提出了基于叠加协同表示分类(SCRC)的人脸识别。与SSRC相似,SCRC也将测试样本表示为类质心和样本与质心的差异的稀疏线性组合。实验结果表明,利用基于原型和变化的表示模型,协同表示在人脸识别中能起作用,甚至字典基在非受控和每类只有一个样本的条件下被汇集,协同表示也具有很好的性能。SCRC拥有SSRC相似的识别率,但计算复杂度低很多。
假定一个人脸库有k类训练样本,记为矩阵A=[A1,A2,…,Ak]∈Rd×n,Ai∈Rd×ni是第i类的训练样本。一个测试样本y可以用所有训练样本的线性组合来表示:
y=Ax0+z
,
(1)
x0是一个稀疏解,x0中除对应于和测试样本同类的训练样本的系数不是0外,其余系数几乎都为0。z∈Rd是噪声项,其能量约束是‖z‖2<ε,ε>0是一个常数。为了用A来协同表示测试样本y,我们提出正则化最小二乘方法:
,
(2)
,
(3)
当训练图像被腐蚀和每类训练样本数量不充足时,基于协同表示的人脸识别具有局限性。本节将介绍基于原型和变化的模型,提出叠加协同表示分类来解决CRC的局限性。
假定受观察的信号是两种不同子信号yp、yv和噪声z的叠加,即y=yp+yv+z。yp可以使用模型中的原型字典P=[P1,P2,…,Pk]∈Rd×m来稀疏产生,Pi∈Rd×mi表示第i类的mi个原型基。同理,yv可以使用模型中的变化字典V∈Rd×q来稀疏产生,变化字典表示通用类内变化基,例如不平衡的光照变化、夸张的表情或者遮挡,这些都不能被小密度噪声z模拟。一个测试样本y的线性组合表示可以被重写为:
y=Px0+Vβ0+z
,
(4)
假定测试样本y来自第i类,那么x0中除对应于Pi的系数不是0外,其余系数几乎都为0。如果V中存在冗余的和过完备的人脸变化基,那么β0是稀疏解。
P=[c1,…,ci,…,ck]∈Rd×k
,
(5)
,
(6)
图1阐明了原型和变化矩阵的典型例子。当每类的样本数量不足,特别是每类只有一个样本时,类内变化矩阵将崩溃。为了解决这个困难,可以从模板库之外的普通对象中获得变化基,因为P+V模型假定不同对象的类内变化是可以共享的。
基于式(4)的P+V模型,我们提出基于叠加协同表示分类(SCRC)的人脸识别,把测试图像作为类质心和类内差异的叠加,非零系数将集中于与测试样本同类的质心和相关的类内差异上。
叠加协同表示分类(SCRC)算法步骤:
(1)输入:拥有k类训练样本的矩阵A=[A1,A2,…,Ak]∈Rd×n,和正数型参数λ>0。根据式(5)计算原型矩阵P,根据式(6)计算变化矩阵V。当每类样本数量不充分时,矩阵V可以通过模板库之外的普通样本集计算得到。
(a)
(b)
(2)通过把PCA应用在训练样本上,可以推导出投影矩阵Φ∈Rd×p,把原型矩阵和变化矩阵投影到p维空间:
ΦTP→P,ΦTV→V
,
(7)
(3)归一化P和V的列向量,使每个列向量具有单位l2范数,计算y在[P,V]上的系数向量:
,
(8)
(4)计算残差:
,
(9)
(5)输出y的类别:
identity(y)=argminiri(y)
.
(10)
为了检验SCRC算法的有效性,将它与SRC、CRC和SSRC在AR和FERET人脸库上进行实验比较。SRC和SSRC使用Homotopy方法来解决L1范数最小化问题。实验平台为MATLAB2013a,主频是3.3 GHz,内存是4 G。
选择AR人脸库的一个子集用于实验,该子集包含100个人,其中男性50人、女性50人,每个人有26幅图像,是在2个不同时期获得的。该人脸库的人脸包含光照变化、表情变化和受遮挡(即戴墨镜和围围巾)。对于每个人,从第1期中选择7幅中性图像和2幅受遮挡的图像(1幅戴墨镜和另1幅围围巾)作为训练样本,第2期的13幅图像作为测试样本。特征空间维数分别是200,500,800,表1显示了正数型参数λ为0.01的情况下不同算法在AR人脸库上的识别率和识别时间括号内为识别时间比较。识别时间是指对1幅测试图像的识别时间(括号内为识别时间)。从表1可以看出,除特征空间维数为200时,SCRC的识别率稍低于SSRC外,SCRC的识别率是最高的。SCRC的运行速度比较快,和CRC差不多快。SCRC的运行速度比SRC和SSRC快14倍以上。图2显示了特征空间维数是500时的识别率与λ之间的关系。从图2可以看出,λ从0.01开始,SCRC的识别率高于SSRC。
表1 不同算法在AR人脸库上的识别率(%)和识别时间(s)比较
图2 特征空间位数为500时识别率与λ之间的关系
在FERET人脸库中,模板训练集包含1 196个人的1 196幅图像,fc测试集包含不同光照情况下的194幅图像。该人脸库还包含fb、dup 1和dup 2测试集。在实验中,模板训练集用来训练,fc测试集用来测试。首先使用相似变换归一化图像,即两眼要成水平线,且间隔70个像素,两眼的中心位于(64,34),然后把图像裁剪成128×128大小。图3显示了一些用于本实验的图像,图像具有复杂的类内变化。在模板库中,因为每类只有一个样本,所以使用FRGC V2人脸库的训练图像来构造类内变化矩阵,类内变化矩阵用式(6)计算得到。FRGC V2人脸库包含在非受控条件下的222个人的12 766幅正面图像。图4显示了FRGC V2人脸库的一些图像。表2显示了正数型参数λ为0.01的情况下不同算法在fc上的识别率和识别时间比较。识别时间是指对1幅测试图像的识别时间(括号内为识别时间)。从表2可以看出,除了特征空间维数是300时,SCRC的识别率稍低于SSRC外,SCRC的识别率是最高的。SCRC的运行速度比较快,和CRC差不多快。SCRC的运行速度比SRC和SSRC快10倍以上。图5显示了特征空间维数是600时的识别率与λ之间的关系。从图5可以看出,λ从0.01开始,SCRC的识别率高于SSRC。
图3 第1行是FERET人脸库中的一些模板图像,第2行是相应的测试图像。
图4 FRGC V2人脸库中的一些图像
图5 特征空间维数是600时识别率与λ之间的关系
表2 不同算法在FERET人脸库上的识别率(%)和识别时间(s)比较
本文提出了一种基于叠加协同表示分类(SCRC)的人脸识别算法。在本算法中,基于原型和变化的表示模型能解决非受控的人脸识别问题。在AR和FERET人脸库上的实验结果表明,与其他算法相比,SCRC在大幅降低计算复杂度的同时很好地保证了识别率。可以说,SCRC是一种比较优秀的算法。