from:http://www.chinaaet.com/article/3000011311

基于改进的RPCA人脸识别算法

作者:首照宇,杨晓帆,莫建文
2015/11/15 18:04:00

摘  要: 针对人脸识别中存在遮挡、光照、表情变化等问题,提出了一种基于改进的鲁棒主成分分析的人脸识别算法,它利用人脸的稀疏误差成分准确判断出人脸图像之间的差异。该算法首先对人脸进行低秩恢复,得到表示人脸普通特征的低秩分量和描述人脸差分信息的稀疏误差分量,然后定义稀疏度和平滑度两种描述符来表示稀疏误差分量的特征,最后联合上述两种描述符对人脸图像进行分类判别。实验结果表明,在光照条件和遮挡区域随机的情况下,提出的采用误差图像进行分类判别的算法在处理遮挡、光照、表情变化等人脸识别问题上均具有优越的识别性能。

  关键词: 人脸识别;低秩恢复;误差图像;稀疏度;平滑度

0 引言

  目前,人脸识别成为了计算机视觉和模式识别领域中的热门研究问题。人脸采集时的环境影响会给人产生一系列复杂的问题,如遮挡和光照都会导致面部信息丢失。在过去的几十年中,研究人员提出了大量的人脸识别方法来解决这些问题[1]。如线性判别分析(Linear Discriminant Analysis,LDA)[2]和非负矩阵分解(Non-negative Matrix Factorization,NMF)[3]等,这些方法可以处理某一限度内的像素遮挡问题。然而,由于在人脸部分遮挡的情况下会损坏提取的特征,这些方法的性能将会严重下降。为了解决这些问题,研究人员提出了一些局部特征处理的方法,如局部非负矩阵分解(Local Non-negative Matrix Factorization,LNMF)[4]。但这些局部方法会丢弃测试图像中对后续的检测和识别中重要的冗余信息,影响最终的识别效果。近年来,研究人员提出了基于线性表示的人脸识别方法,其中最具代表性的方法就是基于稀疏表示的分类方法(Sparse Representation based Classification,SRC)[5]和基于线性回归的方法(Linear Regression based Classification,LRC)[6]。然而SRC在连续遮挡中并不鲁棒,此外,SRC和LRC的性能都取决于训练集的大小,如果训练样本不足会给分类带来干扰。

  近年来,CANDES E等人提出了一种新的鲁棒主成分分析法(Robust Principal Component Analysis,RPCA)[7]。RPCA在图片损坏的情况下也能准确地恢复出图像。例如图像聚类[8]等领域采用RPCA都取得了很好的效果,但很少有研究者将RPCA用于人脸识别中。本文研究发现,RPCA得到的稀疏误差部分可以很好地描述人脸图片的误差和噪声。基于此,本文提出了一种基于RPCA稀疏误差的人脸识别算法(E-RPCA)。首先讨论了稀疏误差成分包含的更多利于人脸识别分类的判别信息,然后提出两个描述误差特征的描述符,最后联合两个描述符进行分类识别。

1 基于RPCA稀疏误差人脸识别算法

  1.1 鲁棒主成分分析

  假设一个矩阵D∈Rm×n有低秩成分A和稀疏误差成分E,D=A+E。其目标是从矩阵D中恢复出低秩部分A,E为稀疏误差部分。原始的RPCA模型如下:

  

  其中,||E||0表示矩阵的l0范数,用于计算矩阵E中的非零元素个数。由于式(1)是一个NP难问题,所以上述问题松弛为:

  

  其中式(1)中秩的运算用矩阵的核范数来代替,矩阵的l0范数用l1范数来近似求解,是正则化参数并且设为1。本文采用非精确的拉格朗日乘子法[9]求解式(2)。

  1.2 误差成分分析

  在人脸识别中,光照、遮挡或伪装是影响识别性能的一个难题,这些可以认为是空间的稀疏误差。因此可以提出一个假设,如果一个人有多个训练样本,RPCA便可以去除这些误差。

  图1是从Extended Yale B库中进行测试的一个例子。随机选取每个人的32幅不同光照的图片,大小调整为96×84,将每幅人脸图片拉成一列组成一个矩阵D∈R8 064×32。其中(a)是原始的人脸图片,(b)是去除光照影响后的干净人脸图片,(c)是获得的稀疏误差成分。

  图2是AR库中中进行测试的一个例子。每个人选取8幅有表情,光照变化及遮挡的图片,大小调整为83×60。图中可以看出,尽管有表情、光照以及遮挡的影响,低秩部分的人脸图像仍然很相似,而稀疏误差部分描述了原始图片与低秩人脸图片之间的主要差异。

  由于低秩成分表示每个人的人脸图像的共同特征,这对人脸识别的训练数据很有帮助。然而,通过RPCA处理后,干净的训练样本由于丢失差分信息并不适合后续的识别任务。通过前面的例子可以发现,如果一个测试样本y属于第k个个体,那么稀疏误差成分明显反映出了如阴影和遮挡的类内差异。由此可以提出一个问题,是否在不同个体之间进行RPCA会表现出更多的差异?如果有,那么便可以用稀疏误差成分来代替低秩成分进行分类识别。

  图3是同一个测试样本联合不同类进行RPCA处理。(a)是用于测试的各类图片,(b)表示测试样本联合不同类进行RPCA后的低秩图片,(c)是每类对应的稀疏误差图片,测试样本属于(a)中最右侧那类。由于RPCA的低秩约束,测试图片和非同类的人脸图片进行分解后,低秩成分会改变成另外一个人的脸(图3(b))。从图3(c)中可以看出,误差图像表现出可以用于分类识别的差分信息。相比于同类进行分解得到的误差图像,与非同类进行分解得到的误差图像不仅包括类内差异(如眼镜),还包括大量的类间差异(如面部轮廓、下巴、嘴唇等)。

  为了更直观地观测,图4展示了图3中各误差图像的分布直方图,其中(a)~(f)分别对应与错误类进行分解得到的误差图像的分布直方图,(g)表示与正确类分解得到的误差图的分布直方图,可以看出图(f)的分布明显与图(a)~(e)不同,该图的灰度级主要集中在较低的区域,这便可以作为这些误差图像之间的判别信息。引起这种现象的原因主要是RPCA的低秩和稀疏约束,如果测试样本属于同一类,那么低秩部分可以描述该类的共同特征,同时,稀疏误差部分仅仅反映稀疏的类内差异。与此相反,如果测试图片和训练样本不属于同一类,低秩部分无法提取测试图片的本质特征,因此误差部分不会像同一类的情况下那样稀疏。由于噪声的影响,误差图片不可能完全稀疏,所以不能用严格地使用l0范数来定义误差图像的稀疏度,将稀疏度松弛为统计低灰度级的像素个数,并以此作为识别的一个指标。

  1.3 E-RPCA算法

  1.3.1 两个判别指标

  通过以上分析,本文提出两个描述误差图像稀疏度的判别指标:

  (1)稀疏度:给定一个误差图像E,E的稀疏度由||E||0决定。然而,由于真实的人脸图像是非凸的,并且噪声和建模误差也会导致小的非零元素,所以将稀疏度松弛为统计低灰度级的像素个数,定义为:

  Sn(E)=Num(E≤t)(3)

  Sn表示低灰度级的像素个数,Sn越大就表示产生的误差图像越稀疏。其中t的值选在[10,20]之间较好。

  (2)平滑度:只用稀疏度来描述误差图像的差分信息是不够的,通过对图3(c)中的误差图像的观察可以看出,相同类的误差图像相比不同类的误差图像在非遮挡区域里更加平滑,其定义如下:

  

  其中xi为像素值,图像块所有像素值的平均值,M为像素点数。Sp值越大,代表图像的边缘和纹理信息越丰富,反之则图像越平滑。

  图5绘制了通过式(4)计算图3(c)的各个误差图像的平滑度Sp,从中可以看出属于同类的第6幅误差图像的平滑度Sp明显低于其他不同类的误差图像。因此,平滑度可以作为分类的另一指标。

  1.3.2 分类准则

  假设有i个样本有ni幅训练图片,将第i类训练图片拉成列向量,组成一个训练矩阵Di∈R。D=[D1,D2,…,Dk]∈Rm×n表示所有k类训练样本。给出一个测试样本y∈Rm,首先对每类训练样本进行RPCA来获得误差图像E,i=1,2,…,k。然后通过计算式(3)、式(4)获得两个分类指标Sn(E)和Sp(E),i=1,2,…,k。最后,需要通过搜索大的Sn(E)和小的Sp(E)来进行分类,通过如下判别准则来进行最终判别:

  

  1.3.3 E-RPCA算法流程

  (1)输入k类训练样本矩阵D=[D1,D2,…,Dk]∈Rm×n,测试样本y∈Rm;

  (2)对每一类i构造D=[Di,y]后根据式(2)分解;

  (3)根据式(3)和式(4)计算每个误差图像E的稀疏度和平滑度后根据式(5)计算相应的S(E);

  (4)输出identity(y)=argS(E),i=1,2,…,n。

2 实验结果分析

  本文实验分别对光照、遮挡以及表情变化进行了实验,通过与LRC、SRC、CRC等算法对比来验证本文算法的性能。实验中,灰度级阈值t取15。

  2.1 光照和表情变化实验

  (1)AR数据库上的实验

  在AR人脸数据库中,选择50名男性和50名女性的人脸组成数据集,抽取每人的14幅光照、表情变化的人脸图像,其中7幅用来训练,另外7幅作为测试集。图像尺寸统一调整为83×60。表1为多种算法在该人脸库上的识别率比较。由表可看出,本文E-RPCA算法相比其他算法识别率明显提高。

  (2)Extended Yale B数据库的实验

  Extended Yale B人脸库由38类人的2 414幅正面人脸组成,其中每人大约有来自64种实验光照条件的64幅图片。将所有图片按照光照影响的程度依次分为5个子集,子集1包括266幅光照影响最柔和的图像,每人7幅;子集2和子集3每个人12幅图像;子集4每人14幅图像,子集5光照影响最严重,每人19幅图像。实验采用子集1作为训练样本,其他的子集作为测试样本,实验中图像均调整为96×84。表2为不同方法在不同光照子集下的识别率,从中可以看出当子集2和子集3作为测试集时,每种方法的都有百分之百的高识别率;但在子集4和子集5作为测试集时,即光照对人脸影响较大时,E-RPCA算法相比其他算法有更好的识别性能。

  2.2 遮挡和伪装实验

  (1)随机块遮挡

  本节将对E-RPCA对遮挡的鲁棒性进行实验。分别采用上节中的子集1和子集2、3作为训练和测试样本。将测试样本分别进行随机块遮挡和伪装实验,除了与LRC和SRC对比,本节还增加了与局部非负矩阵分解(LNMF)方法的对比。如图6(a)表示一个遮挡了40%的测试样本和进行测试的6类测试样本,(b)是分解所得到的误差图像。

  表3是所有算法在不同遮挡程度下的识别率对比,从表中可以看出,即使在60%的遮挡情况下,E-RPCA也有着85%的识别率。

  (2)伪装实验

  本部分采用了AR人脸库进行实验,用每个人的7幅图片作为训练样本,3幅伪装的人脸图片作为测试样本,同样将每幅图片的大小调整为83×60。表4是各个方法对于伪装的人脸识别率比较,可以看出本文算法对伪装的人脸图像的识别性能更优。

3 总结

  受近几年RPCA算法发展的启发,本文提出了一个克服光照、表情变化以及遮挡伪装问题的新的人脸识别算法。由稀疏度和平滑度两个描述符来表示测试图像分解所得的误差部分的特征从而进行分类判别。实验结果表明,本文提出的方法对光照及遮挡有着很强的鲁棒性,并且与当前的一些人脸识别算法比较,识别性能有着明显的提高。本文提出的算法不仅仅局限于人脸识别应用,同时也可以应用于其他的图像分类应用中。

  参考文献

  [1] MARTINEZ A.Recognizing imprecisely localized,partiallyoccluded,and expression variant faces from a single sampleper class[J].IEEE Transactions on Pattern Analysis andMachine Intelligence,2002,24(6):748-763.

  [2] BELHUMEUR P,HESPANHA J,KRIEGMAN D.Eigenfacesvs.Fisherfaces:recognition using class specific linear projec-tion[J].IEEE Transactions on Pattern Analysis and MachineIntelligence,1997,19(7):711-720.

  [3] LEE D,SEUNG H.Learning the parts of objects by non-negative matrix factorization[J].Nature,1999,401(6755):

  788-791.

  [4] LI S,HOU X,ZHANG H,et al.Learning spatially localized,parts-based representation[C].IEEE Conference on ComputerVision and Pattern Recognition,2001,1:207-212.

  [5] WRIGHT J,YANG A,GANESH A,et al.Robust facerecognition via sparse representation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2009,31(2):210-227.

  [6] NASEEM I,TOGNERI R,BENNAMOUN M.Linear regressionfor face recognition[J].IEEE Transactions on Pattern Analysisand Machine Intelligence,2010,32(11):2106-2112.

  [7] CANDES E,LI X,MA Y,et al.Robust principal componentanalysis[J].Journal of the ACM,2011,58(3):11:1-11:37.

  [8] LIU G,LIN Z,YAN S,et al.Robust recovery of subspacestructures by low-rank representation[J].Pattern Analysisand Machine Intelligence,2013,35(1):171-184.

  [9] WRIGHT J,GANESH A,RAO S,et al.Robust principal  component analysis: Exact recovery of corrupted low-rank matrices via convex optimization[C].Neural Information Processing Systems,2009.

基于改进的RPCA人脸识别算法相关推荐

  1. 基于深度学习的人脸识别算法

    基于深度学习的人脸识别算法 简介 Contrastive Loss Triplet Loss Center Loss A-Softmax Loss 参考文献: 简介 我们经常能从电影中看到各种神奇的人 ...

  2. 基于卷积神经网络的人脸识别算法

    摘要:近年来,随着科学技术的不断发展,人脸识别技术日渐成熟,使得人脸识别技术的使用率不断增大.例如:门禁.ATM机.公安系统以及新兴起的人机交互等领域,都应用到了人脸识别系统.在人脸识别研究领域中,深 ...

  3. 【LSTM】基于LSTM网络的人脸识别算法的MATLAB仿真

    1.软件版本 matlab2021a 2.本算法理论知识 长短时记忆模型LSTM是由Hochreiter等人在1997年首次提出的,其主要原理是通过一种特殊的神经元结构用来长时间存储信息.LSTM网络 ...

  4. 一种基于深度学习(卷积神经网络CNN)的人脸识别算法-含Matlab代码

    目录 一.引言 二.算法的基本思想 三.算法数学原理 3.1 权值共享 3.2 CNN结构 四.基于卷积神经网络的人脸识别算法-Matlab代码 五.Matlab源代码获取 一.引言 在工程应用中经常 ...

  5. 【华为云技术分享】人脸识别算法的训练之路(下)

    人脸识别算法的训练之路(上) 人脸识别 人脸识别问题本质是一个分类问题,即每一个人作为一类进行分类检测,但实际应用过程中会出现很多问题.第一,人脸类别很多,如果要识别一个城镇的所有人,那么分类类别就将 ...

  6. 人脸识别算法初次了解

    人脸识别算法初次了解 这是转载别人的帖子,认为好,大家一块学习http://www.cnblogs.com/guoyiqi/archive/2011/07/28/2129300.html 前言 在写此 ...

  7. 使用gpu服务器搭建人脸识别系统,基于GPU的大规模人脸识别系统的设计与实现

    摘要: 近年来,随着基于深度学习的人脸识别技术的发展,成为了计算机视觉研究最热门的领域之一,被广泛的应用于公共安全.安防.金融等领域.但在实际应用场景中,人脸识别的准确率往往容易受到光线.遮挡.姿态等 ...

  8. 基于全局信息的人脸识别总结

    一.           课题名称 基于全局信息的人脸识别算法研究 二.           课题的提出 在当今社会中,身份确认具有十分重要的价值.随着网络技术的发展,信息安全也显示出了前所未有的重要 ...

  9. DeepMindVGG提出基于集合的人脸识别算法GhostVLAD,精度远超IJB-B数据集state-of-the-art...

    点击我爱计算机视觉标星,更快获取CVML新技术 在人脸识别应用中,很多场景能够获取某一个体的多幅人脸图像的集合(比如在监控视频中),使用人脸图像集来做识别,这个问题被称为基于模板的人脸识别(templ ...

最新文章

  1. HTTP请求分析工具Fiddler
  2. python—多进程之进程的创建(一)
  3. 再见,齐达内,再见,法国队
  4. 大话数据结构:多路查找
  5. StackExchange.Redis性能调优
  6. “约见”面试官系列之常见面试题之第七十篇之==和===(建议收藏)
  7. 王者荣耀服务器维护bug,8月23日王者荣耀ios版更新一直显示维护是什么情况?更新出现bug 附处理方法...
  8. java float.max value_java – Float.POSITIVE_INFINITY和Float.MAX_VALUE有什么区别?
  9. HTTP传输二进制初探
  10. 企业的IT 建设的三个过程
  11. scratch英语计算机,scratch 2怎么做计算器
  12. 【分享】写论文超好用的一些工具
  13. 各社交网站页面分享代码链接
  14. 赠书 001 | 人啊。认识你自己
  15. linux操作系统安装容易出的问题,[操作系统]装Linux出问题了,请大家帮帮忙~~!
  16. 零基础实现摄像头的全平台直播 (一)内网直播的实现
  17. MWorks建模、仿真、分析优化平台
  18. mysql用存储过程更新表_如何创建存储过程以更新MySQL表中的值?
  19. 100+个数据分析常用指标和术语
  20. java image转换icon_内存转换Image到Icon

热门文章

  1. ai ci ba logon use infomation
  2. WSAD5技巧之一:访问Oracle9i数据源
  3. php 的包管理,php composer包管理器
  4. 鸿蒙系统第五批公测,鸿蒙系统即将迎来二轮公测,nova机型增添其中
  5. linux查看apache端口,linux系统下Apache服务启动时80端口报错
  6. IBM 340 亿美元收购 RedHat(红帽)
  7. .gitignore过滤规则
  8. linux学习笔记 第七篇 (samba(一))(iscsi)
  9. java 关于日期的一些常用惯例
  10. bzoj1412[ZJOI2009]狼和羊的故事