fn=?crur (1)
r?Kn其中Kn是ur的下标集,card(Kn)=n , 则B=span(ur,r? Kn)就是由n个原子在原子库S中张成的最佳子集。我们定义逼近误差为:
?n(f,S)=intPf?fnP (2)
fn由于n远小于空间的维数M,所以这种逼近也被称作稀疏逼近。由
于原子库存在定的冗余性,知上式存在多组解。稀疏表示的目的就是从中选取解的系数最为稀疏的或使n取值最小的解。这个问题等同于下述问题:
IMin imize PcP0 subject to f=?ckuk (3)
i?0稀疏表示的最初目的是为了以低于香农定理的采样频率表示和压缩信号,事上,在去噪方面,小波变换和平以不变小波也开发出许多有效算法;稀疏表示已成功应用与图像动态范围的压缩,图像卡通和纹理成分的分离等。在这些应用中,算法的性能取决于表示的稀疏性是否忠实于原始信号。 4 基于稀疏表示的人脸识别 4.1 基于稀疏表示的人脸识别原理 训练集图像
图像预
处理 特征提取 稀疏表示分类 识别结束 特征提取 图像预
处理 图1 基于稀疏表示的人脸识别框图
稀疏表示人脸识别算法主要建立在压缩感知理论的基础之上。假设每个用户的注册图像都可以在图像空间中划分出一个相对独立的子空间,且任意一张人脸图像都可以由同一用户自身的注册图像集的线性组合来表示,通过计算计算待检测图像相对于所有注册图像集的稀疏表示系数来揭示该待测试图像所属的用户类别。
设给定的注册图像集A中有i类已标记好的注册用户,其中第k类中含有nk个样本。则属于第k类的图像集合可以用矩阵Ak=[ak1,ak2,...,aknk]?Rm?nk来表示,且每个图像对应于矩阵的一个列向量,m为人脸图像的维数。为了提高效率,现假定每个注册用户的矩阵对应于用于稀疏表示的训练字典。对于任意给定的测试图像y,若其属于某一注册图像集所包含的类别Aj,那么便可以用Aj的线性组合来表示。
为便于理解, 现假设第k类中有足够多的训练图像构成矩阵Ak,且待测试图像y1属于第k类,则可以用具有相同类别属性的第k类训练图像的线性组合近似表示待测试图像y1,即
y1=xk1ak1+xk2ak2+...+xknkaknk 其中xkj?R,j=1,2,?,nk (4)
然而,一般情况下的待测试图像所属类别并不知晓,因此用于实验的图像字典是由i类训练图像集的所有样本共同构成的,即:
A=[A1,A2,...,Ai]=[a11,a12,...,a1n1,...,ai1,...,aini] (5)
因此,任意待测试图像y就可以用字典线的性表示,即:
Y=Ax (6) 其中x=[0,0,?,0, xk1,xk2...,xknk,0,0,...,0]T?Rm 是一个很稀疏的系数矢量。由x就可以获得关于y的类别信息。
显然,若m>n,易知方程组(6)为过定的,解向量x唯一。但是对于人脸识别问题,经降维处理后的样本构成的方程组是典型欠定的,故解向量x并不唯一。由压缩感知理论和稀疏表示可知,如果向量x足够稀疏,那么稀疏解的个数L0范数问题可以转化为L2范数问题,即
? x2= arg minPxP2 subject to y=Ax (7) 4.2 基于稀疏表示的人脸识别算法 4.2.1 正交匹配追踪算法
正交匹配追踪算法是稀疏表示的经典算法之一,为求得式(7)提出的问题的最佳逼近解正交匹配追踪算法在每一步的迭代过程中选择和当前迭代残差最相关的原子,将信号正交投影到这些原子张成的空间中,循环计算残差直到满足约束条件(详细步骤见算法一)。注意第5行是贪婪算法选择原子的步骤,第7行是正交投影的步骤。 算法1 正交匹配追踪 1. Input:dictionary A,target sparsity K 2. Output : sparse representation x 3. Init :Set I= [] , r= y ,x =0
4. while(stopping criterion not met) do 5. k=arg maxdkTr
k? 6. I=(I, k) 7. xI?(AI)?y 8. r =y-AIxI 9. end while
?3.2.2 快速正交匹配追踪
快速正交匹配追踪算法通过在基本的正交匹配追踪算法中对冗余字典采用Cholesky分解,提高了算法的整体效率。 算法 2 快速正交匹配追踪 1. Input:dictionary A,target sparsity K 2. Output : sparse representation x
3. Init :Set I= [] , L= [1] ,r= y ,x =0,?(0)=ATy, m=1 4. while(stopping criterion not met) do 5. k=arg maxdkTr
k?6. if m>1 then
7. w=solve for w{ Lw = Aak}
TI? 8. L=
LwT01?wwT
9. end if 10. I=(I, k)
11. xI= solve for c{ LLTc = ?I} 12. r =y-AIxI 13. n=n+1 14. end while 5 实验结果与分析
? 为了验证本文所提算法的有效性,本文选择目前比较常用的扩展的Yale B人脸数据库ORL人脸数据库作为实验数据集分别进行识别精度与时间的测试。我们主要关心在不同的光照和不同的表情两种主要因素下的测试结果。ORL人脸数据库含有40个不同人的脸,每个人脸有10张不同表情的图像,总共400张图像。扩展的Yale B是一个比较大的人脸数据库,含有16128张人脸图像,包含了38个不同人脸的64种光照条件下的不同图像。本实验仅从中选取了一个小的子集,但已足够测试本文算法对光照条件的敏感性。 5.1 有表情变化的实验
本算法随机从ORL人脸库每个人脸的图像中选取不同比重的图像作为训练集,余下的图像做为测试样本,稀疏阈值设置为训练样本数目。表 1 显示的是随着训练样本比重增大识别率的变化情况。总之,在训练样本足够多的情况下测试样本都可以用字典中所属类别的原子的线性组合来表示。
图2 ORL 数据库不同表情变化 表1 正交匹配追踪算法应用于ORL数据库
训练图像 测试图像 稀疏阈值 识别率(%) 用时(s) 5 5 5 6 4 6 7 3 7 8 2 8