潘承昌 张永军 王泽伟 刘竣文
(贵州大学计算机科学与技术学院 贵阳 550025)
在图像分类任务中,对一个物体使用多种表示方法可以有效地提高分类准确率。在人脸识别领域,由于人脸图像在不同的面部表情、光照和姿态的条件下呈现出非常大的差异,这对人脸识别造成了很大的困难[1~3]。为了提高人脸识别的准确率,很多研究人员提出了不同的方法。例如,基于小波系数增强函数的表情不变人脸识别算法有效地提高了不同表情的人脸图像识别精度[4]。Jian等提出了一种基于光照补偿的人脸识别方法[5],Sharma 等提出了一种姿态不变虚拟分类器的人脸识别方法[6]。考虑到人脸图像具有对称性,Xu等提出了一种使用原始图像生成“对称”人脸图像的方法[7],结合原始图像和对称人脸图像能够更好的降低图像外观变化的影响,提高分类准确率。
稀疏表示分类(Sparse Representation Classification,SRC)算法被提出之后,广泛应用于图像处理和人脸识别等领域。例如,在人脸识别方面,Xu等提出了一种基于l 正则化的稀疏表示方法[8],对于人脸识别具有很强的鲁棒性,同时也获得了巨大的精度提升。稀疏表示也越来越多的应用于图像分类[8]、图像超分辨率[9~10]和图像去噪[11]。随后,各种不同的稀疏表示方法也相继被提出,字典学习作为稀疏表示的一个重要分支,越来越受到研究人员的关注。我们一般把SRC分为两大类,第一类是基于原始训练样本的稀疏表示,第二类是基于字典的稀疏表示。基于原始训练样本的稀疏表示使用训练样本来线性表示测试样本,基于字典的稀疏表示使用字典来表示测试样本。其中,基于原始训练样本的稀疏表示包含了大量的图像分类算法,比如L1 正则化最小二乘(L1LS)[12]、快速迭代收缩阈值化算法(FISTA)[13]、协作表示(CRC)[14]等。然而这些文献中的算法都不能很好地保留原始图像的大尺度信息和全局特征,不能很好地挖掘和利用原始图像信息。
为了更好地保留原始图像的大尺度信息和全局特征,减小同一物体在其不同图像中的差异性,本文把改进的图像表示算法和稀疏表示结合,提出了一种图像分类算法。
稀疏表示简化了原始图像的复杂度,从而更容易获得图像内部信息的结构特征。如图1 所示,对于图像I,在稀疏编码之前,先将图像矩阵转换向量。然后图像可以由冗余字典和稀疏系数来表示,这个模型可以用式(1)来表示:
其中D是大小为M×N的字典,D的列向量di∊Rm(1 ≤i≤N)称为原子,M≫N确保字典D是冗余的。α=[α1,α2,…,αN]T称为稀疏系数,通常情况下,α中的非零元素越少,意味着稀疏编码更稀疏,稀疏表示更好,用ℓ0范数来度量稀疏性。因此,可通过求解α将式(1)中的模型转换为式(2)。
‖α‖0是ℓ0范数,测量列向量中非零元素的数量,确保尽可能获得最稀疏 的α。通过ℓF测量原始图像I与重构图像Dα之间的误差,并将最大误差限制为ε,当ε=0 时,可获得最佳的稀疏系数并且式(1)等于式(2)。
在稀疏表示模型中,字典训练和稀疏编码是两个最关键的步骤,对最终结果有重大影响。对于基于稀疏表示的图像分类算法,稀疏系数的融合也起着重要的作用。同理,我们可以根据以上原理求得测试样本和生成的虚拟图像之间误差Ei。
本节将说明如何将原始训练样本的结果与虚拟训练样本融合的过程。本文采用了一种简单高效的融合方法,假设实验数据库中的受试对象总数是M。首先我们需要获得测试样本和原始图像之间的分类误差(i=1,2,3,…,M),以及测试样本和虚拟图像之间的分类误差(i=1,2,3,…,M),其中i表示第i个受试对象,然后对这两个误差进行排序,根据排序结果,求出误差融合方案中原始图像的权重W1和虚拟图像的权重W2。
误差融合方案的具体步骤如下:
4)使用式(7)计算原始图像和虚拟图像的融合误差Ei。
通过以上步骤我们获得了原始图像和虚拟图像的融合误差Ei,然后找到它的误差最小值,保存误差最小的下标记为i,将i作为测试样本对应的分类估计值,然后和真实标签比较,统计分类错误数量,得到最终分类错误率。
本文提出了一种图像表示算法,将表示后得到的结果称为虚拟图像。以灰度图像为例说明原始图像如何生成其对应的虚拟图像。在灰度图像中最大的像素值为255,我们用Pmax来表示。原始图像中第r行c列的像素值记为Src,生成的虚拟图像使用V表示,在虚拟图像中第r行c列的像素值记为Vrc。生成虚拟图像的表示方法如下:
通过对上面的公式分析,我们可以得出以下几个结论:
1)如果Src等于0 或者等于图像的最大像素值时,虚拟图像在对应位置Vrc的像素值为0。
2)如果Src越接近,虚拟图像相应位置的像素值就越大,最大值
3)原始图像的像素值为Src或者(Pmax-Src)时,在虚拟图像中对应位置的像素值相同。换句话说,在虚拟图像中像素值是以对称的。
我们知道,在灰度图像中最大的像素值为255,由原算法的图像表示生成的虚拟图像,其像素值远大于该值。此外,原始图像中像素值相对接近的两个像素,经过原算法的图像表示方法后,在虚拟图像中显示出非常大的差异,这增加了同一人脸在不同原始图像中的差异性,不利于分类。如果原始图像是灰度图,那么我们的算法生成的虚拟图像的最大值为,不但可以将原始图像的像素强度都表示在中等像素强度附近,还能很好地保留原始图像的大尺度信息,某种程度上这些信息对应图像的全局特征,这将非常有利于图像分类任务。
基于以上提出的图像表示方法原理,本文还提出了另一种新的方案来生成虚拟图像,在大量的实验验证下表明,该方法能够显著提高图像分类精度。其生成虚拟图像的公式如下:
本文算法的主要步骤如下:
第一步:选取训练样本和测试样本。即将所有原始图像分为训练样本和测试样本两部分。
第二步:使用式(8)或者式(9)获取训练样本的虚拟图像。将虚拟图像转换为ℓ 范数的单位向量。
第三步:使用公式(8)或者(9)获取测试样本的虚拟图像,将虚拟图像转换为ℓ 范数的单位向量。
第四步:结合第二步和第三步的训练样本和测试样本的虚拟图像,对每一张测试样本应用图像分类算法进行分类,得到分类误差。
第五步:对训练样本和测试样本中的原始图像转换为ℓ 范数的单位向量,对每一张测试样本使用图像分类算法进行分类,得到分类误差。第六步:原始图像和虚拟图像融合,获得融合后的分类误差Ei。
第七步:在测试集样本上通过融合误差Ei和图像的真实标签比较,统计分类错误数量,得到最终分类错误率。
以ORL 人脸数据库实验为例,选择ORL 人脸数据库中的第一个受试对象的第一张人脸图像为例进行分析。图2 显示了该样本原始像素的分布情况。
图2 测试样本的原始像素强度分布
根据图2 和图3,可以直观地看出原始图像和生成的虚拟图像的区别,通过原始图像进行图像表示后生成的虚拟图像,与其原像素值非常大,远远超出了传统的灰度图像的像素值范围,而且,在原始图像中像素值相近的两个像素,在虚拟图像中的像素值差距非常大,这导致原始图像中的一些大尺度信息在虚拟图像中丢失了,不利于图像分类。通过图5(a)与图5(b)的对比,可以发现,我们改进的图像表示方法生成的虚拟图像,其像素值相对于原算法生成的虚拟图像显著减小,最大像素值为,并且,原始图像中像素值相近的两个像素在相应虚拟图像中的像素值差异显著减小。这样的特点使得原始图像中的大尺度信息在虚拟图像中很好的保留了下来。对于一张灰度图像来说,一个像素值为i的像素和一个像素值为255-i的像素,在虚拟图像中都有着同样大小的强度,这使得原始图像中越趋近于中等强度的像素,在虚拟图像中有着更重要的作用,能够获得原始图像中更丰富的大尺度信息,因此,本文提出的算法对图像分类任务有更大的精度提升。同理,使用式(9)生成虚拟图像的算法同样具有以上的特点与优势。图4 显示了该方法生成的虚拟图像的像素变化,图5(c)显示了原始图像的像素在0~255 之间变化时,该方法生成的虚拟图像的像素变化情况。
图3 使用该算法的虚拟图像的像素值
图4 使用式(9)获得的像素值
图5 虚拟图像像素值的对称性
通过图6可以发现不管是ICR[15]的算法还是本文的算法生成的虚拟图像,都是比较自然的人脸图像。虽然虚拟图像和原始图像在外观上存在着一些较大的差别,但是将虚拟图像和原始图像融合,可以为同一张人脸图像提供多种表示方法,这有利于提高人脸图像分类的精度。
图6 原始图像与生成图像对比
本节通过实验验证了所提算法的可行性和合理性。一共在两个人脸数据库上进行了实验,分别是Georgia Tech 人脸数据库和FERET 人脸数据库。在实验中,不仅对原始图像直接应用稀疏表示,还与近年来提出的算法进行了比较。把在原始图像上直接应用稀疏表示的方法称为NCR(Naive Collaborative Representation),下面是不同算法在各个数据库上的实验分析。
Georgia Tech 人脸数据库一共有50 个受试对象,每个受试对象有15 张JPEG 格式的彩色图像,共有750 张彩色人脸图像。该数据库中的图像背景杂乱,图像的分辨率为640像素×480像素。每个受试对象的图像包含了该对象在不同表情、不同光照和尺度的情况下的正面人脸图像与倾斜人脸图像。每张图像都被手动标记过,以确定人脸在图像中的位置。在本文的算法中,先对该数据库中的图像进行了处理,使用去除背景的人脸图像,并且每个人脸图像的分辨率都是40像素×30像素。
在Georgia Tech人脸数据库上不同算法的图像分类错误率对比结果如表2。在对象训练样本数量为3 时,ICR 算法的分类错误率为52.17%,本文的算法的分类错误率为48.83%,算法精度提升了3.34%。在训练样本数量为1和2时,所提算法的分类精度分别提升了0.57%和0.46%,相对于其他算法,提升的精度更大。我们还对式(9)中的图像表示方法进行了实验,当训练样本数量为1、2、3 时,该方法比ICR 算法提升的精度分别为0.86%、0.92%、4.00%,实验表明该方法能够给图像分类精度带来惊人的提升,与ICR 算法相比最大精度提升超过4%。同时,将算法与最近算法进行了比较,结果表明所提算法具有较低的分类错误率。例如,当训练样本为3 时,与多分辨率字典学习,RSLDA 和BDLRR 相比,算法(式(8))分类错误率分别降低了12.42%,1.83%和0.34%。
表2 GT数据集上的分类错误率(%)对比
本节在FERET 人脸数据库上对提出的算法进行了实验。FERET 人脸库是人脸识别领域应用最广泛的人脸数据库之一,是在不同光照的条件下对受试对象进行图像采集,每个受试对象的人脸图像都呈现出不同姿态、不同面部表情的特点。在本节实验中,用FERET 人脸数据库的“ba”、“bj”、“bk”、“be”、“bf”、“bd”和“bg”子集进行实验,共包含200个对象1400张灰度人脸图像,每个对象有7张灰度人脸图像。
将所有的人脸图像都调整为40 像素×40 像素的大小。在FERET 人脸数据库上不同算法的分类错误率对比结果如表3。受试对象的训练样本数量为1 和5 时,该算法在ICR 算法的基础上精度分别提升了1%和1.5%。此外,我们还对式(9)中的图像表示方法进行了实验,结果表明,在训练样本数量为1 和5 时,该方法比ICR 算法精度提升分别为0.41%和3.00%。最后,与多分辨率字典学习RSLDA 和BDLRR 相比,当训练样本数为5 时,算法公式(8)的分类错误率分别降低了20.27%,1.50%和1.00%。
表3 FERET数据集上的分类错误率(%)对比
本文提出了两种新的图像表示算法,并进行了大量的实验,实验结果表明,所提的算法可以显著地提高图像分类精度。通过和其他图像分类算法比较,该算法在图像分类精度上有非常大的优势,同时算法运行效率高,实现方式简单,完全自动化。两种新的图像表示算法在表示对象时,和原始图像是互补的,通过原始图像和虚拟图像对同一对象进行多种表示方法,使得我们的算法具有非常强的通用性,以上实验也证明了该算法的可行性和有效性。