本文主要记录本身在学习稀疏表示在人脸识别中的应用所遇到的问题做一简单的总结。算法
信号的稀疏表示并非新的东西。咱们很早就一直在利用这一特性。例如,最简单的JPEG图像压缩算法。原始的图像信号通过DCT变换以后,只有极少数元素是非零的,而大部分元素都等于零或者说接近于零。这就是信号的稀疏性。数据库
任何模型都有建模的假设条件。压缩感知,正是利用的信号的稀疏性这个假设。对于咱们处理的信号,时域上自己就具备稀疏性的信号是不多的。可是,咱们总能找到某种变换,使得在某个变换域以后信号具备稀疏性。这种变换是不少的,最多见的就是DCT变换,小波变换,gabor变换等。框架
然而,这种正交变换是传统视频图像处理采用的方法。目前所采用的通常不是正交变换。它是基于样本采样的。或者说是经过大量图像数据学习获得的,其结果称做字典,字典中的每个元素称做原子。相关的学习算法称做字典学习。常见的算法例如K-SVD算法。学习的目标函数是找到全部样本在这些原子的线性组合表示下是稀疏的,即同时估计字典和稀疏表示的系数这两个目标。机器学习
压缩感知和稀疏表示实际上是有些不一样的。压缩感知的字典是固定的,在压缩感知的术语里面其字典叫作测量矩阵。但压缩感知的恢复算法和稀疏表示是同一个问题。他们均可以归结为带约束条件的L1范数最小化问题。求解这类泛函的优化有不少种方法。早在80年代,统计学中Lasso问题,其实和稀疏分解的优化目标泛函是等价的。而求解统计学中lasso 问题的LARS算法很早就被提出了,故咱们还能够经过统计学的LARS算法求解稀疏表示问题。目前不少统计学软件包都自带LARS算法的求解器。函数
人脸的稀疏表示是基于光照模型。即一张人脸图像,能够用数据库中同一我的全部的人脸图像的线性组合表示。而对于数据库中其它人的脸,其线性组合的系数理论上为零。因为数据库中通常有不少个不一样的人脸的多张图像,若是把数据库中全部的图像的线性组合来表示这张给定的测试人脸,其系数向量是稀疏的。由于除了这张和同一我的的人脸的图像组合系数不为零外,其它的系数都为零。性能
上述模型导出了基于稀疏表示的另一个很强的假设条件:全部的人脸图像必须是事先严格对齐的。不然,稀疏性很难知足。换言之,对于表情变化,姿态角度变化的人脸都不知足稀疏性这个假设。因此,经典的稀疏脸方法很难用于真实的应用场景。学习
稀疏脸很强的地方在于对噪声至关鲁棒,相关文献代表,即便人脸图像被80%的随机噪声干扰,仍然可以获得很高的识别率。稀疏脸另一个很强的地方在于对于部分遮挡的状况,例如戴围巾,戴眼镜等,仍然可以保持较高的识别性能。上述两点,是其它任何传统的人脸识别方法所不具备的。测试
一谈到识别问题,你们都会想到要用机器学习的方法。先进行训练,把训练的结果以模板的形式存储到数据库上;真实应用环境的时候,把测试样本通过特征提取以后,和数据库中的模板进行比对,查询获得一个最类似的类别做为识别结果。每每,机器训练的时间都超级长,几天,几个礼拜乃至几个月,那是常见的事情;识别的时间通常是很小的。典型的例如人脸检测问题。这是能够接受的,由于训练通常都是离线的。优化
然而,基于稀疏分解的人脸识别是不须要训练的,或者说训练及其简单。基于稀疏表示的人脸识别,其稀疏表示用的字典直接由训练所用的所有图像构成,而不须要通过字典学习【也有一些改进算法,针对字典进行学习的】。固然,通常是通过简单的特征提取。因为稀疏表示的方法对使用什么特征并不敏感。故而,其训练过程只须要把原始图像数据通过简单的处理以后排列成一个很大的三维矩阵存储到数据库里面就能够了。编码
关键的问题在于,当实际环境中来了一张人脸图像以后,去求解这张人脸图像在数据库全部图像上的稀疏表示,这个求解算法,通常比较耗时。尽管有不少的方法被提出,可是对于实时应用问题,依然无法知足。因此,问题的关键仍是归结于L1范数最小化问题上来。
L1范数最小化问题已经有不少种快速求解方法,这里主要包括有梯度投影Gradient Projection,同伦算法,迭代阈值收缩,领域梯度Proximal Gradient,增广拉格朗日方法,这几种方法都比正交匹配追踪算法OMP要高效的多。上述几种快速算法中,采用增广拉格朗日的对偶实现相比其它的快速算法要更好。最近流行的Spit Bregman算法也是不错的选择。
CVPR2011 Meng Yang,Robost Sparse Coding for Face Recognition. 鲁棒的稀疏编码算法。该文做者没有直接求解稀疏编码问题,而是求解Lasso问题,由于Lasso问题的解和稀疏编码的解是等价的。在传统的SRC框架下,编码偏差使用L2范数来度量的,这也就意味着编码偏差知足高斯分布,然而,当人脸图像出现遮挡和噪声污染的状况下,并不是如此。在字典学习框架下,这样的字典是有噪声的。该文做者对原始Lasso问题进行改进,求解加权L1范数约束的线性回归问题。Lasso问题描述以下:
加权Lasso问题的目标函数描述以下:
此算法的关键还在于权重系数的肯定,文中采用的是logistic函数,而具体的实现则是经过迭代估计学习获得。该方法基于这样一个事实:被遮挡或噪声干扰的像素点赋予较小的权重,而其它像素点的权重相对较大。具体迭代算法采用经典的迭代重加权算法框架,固然内部嵌入的稀疏编码的求解过程。此算法在50%遮挡面积的状况下取得的更好更满意的结果。可是文中没有比较计算时间上的优略而直说和SRC框架差很少。