Xungerrrr's Blog

基于稀疏表示的人脸识别

Robust Face Recognition via Sparse Representation 论文理解

Word count: 1.5kReading time: 5 min
2018/04/06 Share

最近一周阅读了题为 Robust Face Recognition via Sparse Representation 的论文,了解到了一种基于稀疏表示的人脸识别技术。这里简要概括了论文的内容,给出了我个人对论文的基本理解。

这篇论文考虑的问题是,在不同的人物表情、照明条件或者是在失真、遮挡条件下,如何从正面自动识别出特定的人脸。基于通过计算向量1-范数最小值得到的稀疏表示,论文提出了一种用于物体(人脸)识别的通用分类算法。这种算法不仅很好地实现了理想条件下的人脸识别,还能够有效应对实际中的复杂情况,例如物体遮挡和照片失真,并且在与各种常见的特征提取方法结合时,都有着较高的识别率。

人脸识别的问题,可以概括为,利用多个来自不同类别的训练样本,来判断一个给定的测试样本属于哪一个类别。在人脸识别中,一个人脸就是一个类别,不同的人脸照片就是不同的样本。

考虑k个类别,设每一个分辨率为 w×h 的样本都可以用一个 m(m = wh) 维向量v来表示,类别 i 有 n_i 个训练样本,则类别 i 可以表示为一个 m×n_i 的矩阵 A_i=[v_(i,1),v_(i,2),…,v_(i,n_i)]。在训练样本充足的情况下,一个属于类别 i 的新测试样本 y∈R^m 可以表示为 A_i 的列向量的线性组合。但是,在识别的过程中,我们无法得知测试样本所属的类别,因此可以构建一个表示所有类别的矩阵 A=[A_1,A_2,…,A_k]∈R^(m×n),将新测试样本表示成矩阵A的列向量的线性组合,即 y=Ax_0 。其中 x_0∈R^n ,是线性组合的系数向量,其非零元素是与类别 i 有关的系数项。通过求方程 y=Ax 的解,可以推断出样本 y 所属的类别。

然而,在现实条件下, m 往往小于 n ,因此方程有无穷多个解。为了找到最佳的识别类别,需要求出最稀疏的解(即x大部分元素为零)。论文提出了通过求向量 x 的1-范数的最小值,来得到y的最稀疏表示。其证明过程,我仍未完全理解。总的来说,只要 x_0 中非零元素的比例足够小,求出1-范数的最小值就等价于求出所需的稀疏表示向量。
接下来,论文考虑到在实际应用中,照片可能出现细微的噪声,测试样本可能无法准确表示为训练样本的线性组合,因此加入了一个噪声因子z,来表示可以接受的噪声范围,得到方程 y=Ax_0+z 。根据 z 的范围,可以求出对应的最小1-范数,求出所需的稀疏表示。

得到了测试样本的稀疏表示后,需要一种方法来确定它所属的类别。分别只考虑稀疏表示向量中每个类别对应的系数,而令其他无关系数都为0,近似地计算出不同的估计样本 y ̂_i ,再将真实的测试样本y与估计样本 y ̂_i 相减,可以得到估计样本和真实样本之间的差距。差值最小的类别,就是最接近真实测试样本的类别,因此可以将测试样本归入这个类别中。

除了分类问题,算法还应该具有排除外来样本的能力。论文定义了 SCI ,来表示稀疏表示中非零项的集中程度。只要 SCI 小于某一给定值,则说明测试样本不属于给定的任何类别,就应该被拒绝。

人脸识别有两个需要重点解决的问题:特征提取和对遮挡、失真问题的健壮性。特征提取的目的是减少样本特征的维度,以便减少运算量,提升识别速度。论文研究发现,只要样本数量足够多,特征提取的具体方法就不能对识别结果产生明显的影响。这样就可以利用基于正态分布的随机脸(Randomfaces)来快速提取特征,降低计算量,并且保证识别的准确性。对遮挡、失真问题的健壮性,与前面提到的噪声问题类似,可以通过引入误差向量,一起参与稀疏表示的求解,从而一并将稀疏表示和误差向量算出。得到误差向量后,用测试样本减去误差来重新构建样本,再通过上面提到的分类方法和排除方法,可以对样本进行分类和排除。这种处理误差的方法同样适用于上面提到的噪声问题。

最后,论文通过综合考虑不同的人脸数据库、不同的失真和遮挡情形,进行了不同的实验,用不同情况下的识别率来说明这种SRC算法的有效性和先进性。在多种复杂情况下,SRC算法要优于传统的人脸识别方法,但在大面积遮挡的情况下,SRC算法的识别率仍然较低,需要采取分区识别等方法来进行优化。

以上是我对论文的一些基本理解。论文中的一些内容,如2.2和3.2中的一些证明过程,我还不能完全理解,仍需要继续进行相关知识的学习。

CATALOG