APP下载

基于Grabcut和Adaboost算法的人脸识别系统设计与实

2018-01-09现郑鹏程郭中华

软件导刊 2017年12期
关键词:人脸识别

现郑鹏程+郭中华

摘要:使用Adaboost算法实现人脸检测会出现一定的误检率。针对这一问题,设计了一种在误检情况下的识别系统,对待识别图像先使用 grabcut前景检测算法进行前背景分割,在一定程度上消除环境因素的影响,然后对分割结果进行人脸检测和识别。该系统检测部分使用haar级联分类器,识别部分使用特征脸算法。实验结果表明,结合grabcut和Adaboost算法系统在识别率和检测率方面均有一定提高,且识别速度较快。

关键词:人脸识别;grabcut算法;haar-like特征;Adaboost;opencv

DOIDOI:10.11907/rjdk.172038

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2017)012-0099-03

Abstract:For using Adaboost algorithm to recognize human-face would occur a corresponding false alarm rate. This essay has designed and implemented a face recognition system using grabcut algorithm for image to be identified to segment the foreground and background at first when false alarm rate occurred, then using haar cascade classifier and Eigenface algorithm to recognize human-face in image. Experimental results show that in the human-face recognition system using grabcut and Adaboost algorithm relatively improved recognition rate and detection accuracy, the recognition speed could basically satisfy the practical application.

Key Words:face recognition; grabcut algorithm; haar-like feature; Adaboost; opencv

0 引言

典型的人脸识别一般包括特征提取、人脸检测和人脸识别。2001年Paul Viola和Michael Jones首次采用haar-like小波特征和积分图进行人脸检测[1-2],之后Rainer Lienhart和Jochen Maydt对其进行了扩展,形成现在opencv的haar分类器。提取了haar-like特征的Adaboost算法是一种检测人脸算法,在实际应用中容易受环境、背景或光照的影响,导致出现误检和错检情况,以至结果出现错误。本文提出误检情况下,对待识别图像先使用grabcut前景检测算法进行前背景分割,然后使用Adaboost结合Eigenface算法对识别系统进行改进的方法。

Grabcut算法由C Rother和V Kolmogorov[4]在2004年提出。该算法利用图像中的纹理信息和边界信息得到分割结果。基于opencv视觉库和python语言,设计用户手动提取前景图像,然后进行Grabcut算法前背景分割,将分割结果用于人脸检测和识别。实验表明,本文方法在一定程度上降低了环境因素对检测的影响,提高了识别率,有一定的实际应用价值。

1 人脸识别系统设计

本文设计的改进的人脸识别系统,在检测前加入一个前背景分割程序,用分割的结果检测人脸,一定程度上改善了环境因素对检测的影响,流程如图1所示,识别步骤如下:①读入待识别图像;②用级联分类器检测人脸,检测不到时输出无人脸;③创建特征脸识别模型,读取通过摄像头录好的人脸数据库进行训练;④使用训练出的Eigenface人脸识别模型对检测到的人脸图像进行识别,确定是否识别,流程如图2所示;⑤判断识别结果是否误检,若出现误检,则使用grabcut算法进行前景分割,将分割结果返回步骤②重新进行判断,是否误检需要用户判断;⑥输出识别结果,识别完成。

2 Haar级联分类器

Adaboost算法属于人脸检测中基于统计方法的一种算法,训练生成一个强分类器,属于一种学习聚类算法,很多人对此进行了提高和改进,例如文献[6]提出的使用双阈值弱分类器代替之前的单阈值弱分类器,文献[7]提出结合肤色检测和Adaboost的改进算法。级联即把强分类器筛选组合构成级联分类器。

2.1 haar-like特征

haar-like小波特征经历了几个发展阶段,最早由Viola P提出5种矩形特征,后经扩展发展到了20种左右,用haar-like特征进行人脸检测,其原理是将这些类矩形特征放在图像内,然后将矩形里亮区域总和减去暗区域总和,把此值作为人脸特征值,用该值区分一幅图像中是否有人脸区域。几种haar-like特征如图3所示。

2.2 Adaboost算法训练强分类器

Adaboost算法提出的强分类器概念,实则是把提取出的这些矩形特征用一种特定的方法进行组合,通过最初的分类器进行一系列阈值筛选,得到一个弱分类器,然后训练一个最优弱分类器,通过多轮迭代组成一个强分类器,算法基本思路如下:

(1)计算n个特征值并排序,共N个样本。

2.3 筛选式级联分类器

只有一个强分类器是没办法满足检测应用的,需要一种特定的方法组合训练出强分类器, Haar级联分类器就是这些强分类器的组合,它通过寻找特定阈值对许多个强分类器进行筛选和组合,只要有一个分类器不满足阈值,就认为图像不包含目標物。这样的阈值筛选过于苛刻,在实际训练时需要考虑多种影响因素,例如弱分类器的个数和运算速度等。因此,实际筛选级联更为复杂。

3 Grabcut算法

Grabcut算法利用图像中的纹理(颜色)信息和边界(反差)信息,用RGB三通道的混合高斯模型GMM取代Graphcut算法的目标和背景模型,利用灰度直方图,并结合迭代能量最小化算法,很好地将目标与背景分割出来。该算法有多种改进,如文献[8]中提出的一种GrabCut改进的图像分割算法,针对GrabCut算法局部噪声敏感、提取边缘效果不好的缺点,对Grabcut进行了改进;伊聪聪[9]等提出了一种结合分水岭和Grabcut的多尺度图像分割方法,提高了Grabcut的迭代效率。Grabcut算法的主要思路:

(1)采用RGB颜色空间,分别用K个高斯分量(一般取K=5)的全协方差GMM(混合高斯模型),对目标和背景进行建模。

(2)使用迭代能量最小化算法来优化步骤(1)中的高斯混合模型GMM参数,步骤如下:①初始化,确定前背景像素TB和Tu;②得到Tu中可能属于目标像素αn=1和可能为背景的像素αn=0,通过这些像素来估计目标和背景的GMM。

(7)采用border matting对分割的边界进行处理。

本文设计了一个鼠标选取矩形框进行grabcut初始化处理的交互界面,目标与背景分割部分结果如图4所示。

4 Eigenface算法

特征脸算法即主成分分析法(PCA算法)最早由Turk M,Pentland A[5]提出,很多人对它做了改进,李盛文等[10]将PCA与Adaboost算法结合应用于人脸检测,提高了检测率,特征脸算法思路是把人脸数据作空间变换即降维处理,然后对所有人脸数据组成的协方差矩阵求特征值分解,计算矩阵的特征向量,以此组成人脸特征向量空间,也就是所谓的特征脸,最后表示为多个特征脸的不同组合。这种特征脸Eigenface算法还有K-L变换算法,跟PCA主成分分析法在某种程度一样,可以不用区分太细。其主要思路如下:

5 实验结果

实验选取25张图像作为系统输入,共5人,每人5张图像,图像通过摄像头拍摄,其中分割部分设计了一个交互界面,可以用鼠标选取分割区域,按n键进行分割,把分割结果进行检测和识别处理。图6为部分识别结果,算法比较结果如表1所示。

6 结语

本文设计了一个改进的人脸识别系统,使用python语言+pycharm环境,与Adaboost+Eigenface算法比较检测率和识别率,均有一定提高,且识别速度基本可满足实际应用需求。但不足的是算法是否成功识别依赖于haar级联分类器是否检测出人脸,且由于haar-like特征不具有旋转不变性,因此无法识别出侧面人像和倒置人像,同时在摄像头实时检测、处理时卡顿明显,实时检测速度有待优化,这些将作为下一步研究方向。

参考文献:

[1] PAUL VIOLA, MICHAEL JONES. Rapid object detection using a boosted cascade of simple features[C].Acceptedconference on Computervision and Patternrecognition, 2001.

[2] PAUL VIOLA, MICHAEL JONES. Robust real-time face detection[J].IEEE, Kluwer Academic Publishers, 2004,57(2):747-749.

[3] RAINER L, JOCHEN M. An extended set of Haar-like features for rapid object detection[C]. International Conference on Image Processing, 2002.

[4] C ROTHER, V KOLMORGOROV. "GrabCut"-interactive foreground extraction using iterated graph cuts[J]. ACM SIGGRAPH, 2004,23(3):309-314.

[5] TURK M,PENTLAND A. Eigenfaces for recognition[J].Journal of Cognitive Neuroscience,1991,3(1):71-86.

[6] 房宜汕.基于改進AdaBoost的快速人脸检测算法[J].计算机应用与软件,2013,30(8):271-274.

[7] 李明瑞,傅明.基于肤色检测的Adaboost人脸检测算法改进[J].计算机工程,2012,38(19):147-150.

[8] 周良芬,何建农.基于Grabcut改进的图像分割算法[J].计算机应用,2013,33(1):49-52.

[9] 伊聪聪,吴斌.一种改进的grabcut图像分割方法[J].小型微型计算机系统,2014(5):1254-1260.

[10] 李盛文,鲍苏.基于PCA+AdaBoost算法的人脸识别技术[J].计算机工程与应用,2010,46(4):170-173.

(责任编辑:杜能钢)

猜你喜欢

人脸识别
人脸识别 等
揭开人脸识别的神秘面纱
基于(2D)2PCA-LBP 的人脸识别方法的研究
人脸识别在高校安全防范中的应用
基于类独立核稀疏表示的鲁棒人脸识别
基于K-L变换和平均近邻法的人脸识别