基于肤色和AdaBoost算法的人脸检测

2017-03-29 06:57李扬曹著明
现代计算机 2017年5期
关键词:肤色人脸椭圆

李扬,曹著明

(1.天津中德应用技术大学软件与通信学院,天津 300350;2.北京电子科技职业学院,北京100029;3.天津职业技术师范大学,天津 300222)

基于肤色和AdaBoost算法的人脸检测

李扬1,3,曹著明2,3

(1.天津中德应用技术大学软件与通信学院,天津 300350;2.北京电子科技职业学院,北京100029;3.天津职业技术师范大学,天津 300222)

为了避免光照和复杂背景造成的多人脸误检漏检问题,提出一种基于肤色和AdaBoost算法相结合的多人脸检测算法,本文首先本章首先应用CbCrCg空间下基于最小二乘拟合的肤色聚类模型作为人脸检测的预处理过程,然后需要进一步将该区域作为输入图像依次通过AdaBoost级联分类器进行人脸检测,进一步去除肤色区域中的非人脸区域,最后实现更精确的人脸定位。

人脸检测;肤色;AdaBoost;CbCrCg空间;最小二乘

0 引言

人脸检测技术涉及的内容非常广泛,其检测过程实际上是对人脸模式特征进行综合判定的过程。从不同角度划分,人脸检测方法有不同的分类方法。但一般是采用多种模式特征综合的方式来进行人脸检测居多。肤色是人脸的重要特征信息,不依赖于人脸面部特征细节,对于姿态、表情等变化具良好的稳定性,并且在大多数情况下与背景颜色存在明显区别。基于肤色特征的人脸检测方法拥有速度优势,常常被应用于构建快速的人脸检测系统中。

1995年Freund和Schapire在Boosting基础上进行改进,提出了AdaBoost(Adaptive Boosting)算法[5]。该方法是一种迭代算法,它克服了Boosting算法对弱学习算法先验知识的要求,而且运算效率很高。2001年,Paul Viola等人第一次将AdaBoost算法应用到人脸检测过程中,提出了积分图像的概念和基于AdaBoost训练人脸检测分类器的方法,建立了第一个真正实时的人脸检测系统。

本文应该肤色模型和AdaBoost算法的优势,首先应用肤色模型建立具有一定鲁棒性的人间肤色模型,然后应用AdaBoost算法建立人脸检测分类器并进行训练,最后在人脸图片上检测该算法的有效性。

1 肤色模型建立

所谓肤色建模和其他数学建模一样,即用一种代数的(解析的)或查找表形式来表达哪些像素色彩属于肤色,或者表征出某一像素的色彩与肤色的相似度。目前图像处理研究中常用的肤色模型有区域模型,高斯模型,混合高斯模型和直方图模型[6]。根据肤色在空间CbCrCg的三个投影平面的映射分布情况不难发现,肤色在该空间的聚类性良好,并且肤色映射区域基本存在于类似椭圆区域内,所以本文选择空间CbCrCg进行肤色模型的建立,为避免因简单降维造成肤色与非肤色重叠,选择在三维空间CbCrCg内实现对肤色进行三维建模。具体做法如下:

首先将肤色样本投影映射的笛卡尔坐标系取整转化到256×256的图像分布矩阵中,然后在肤色平面采用直接最小二乘拟合拟合聚类的方法建立肤色模型,具体数学模型如下:

二次曲线方程在一定约束条件下可以表示为椭圆:

其约束条件是:

式中:

可将直接最小二乘法拟合问题转化为下面的问题:

其约束条件为:

由肤色样本点的分布情况可知,肤色点处于一个椭圆区域内并不分布在一条直线,根据R.Halif等人[7]提出的一种高效鲁棒性能好的数值稳定直接最小二乘法椭圆拟合算法可以保证保证是一个非奇异矩阵,可以将(4)式转化为下边的式子:

由上式可以得到,进而确定椭圆方程。

根据肤色投影分布椭圆边缘确定的椭圆方程形式,以CbCg肤色投影分布为例对于给定的像素点进行肤色判别的准则如下:

其中abg,bbg,cbg,dbg,ebg,fbg是对CbCg肤色投影分

类似,Cr-Cg和Cb-Cr平面可以通过同样的方法确定各平面的肤色分布拟合椭圆方程及其肤色判别规则。

2 基于肤色和AdaBoost算法的多人脸检测

2.1 基于肤色与AdaBoost算法的人脸检测的不足

肤色是人脸的主要特征信息,其对旋转,表情变化具有一定的稳定性。因此基于肤色特征的人脸检测算法具有复杂度低,检测速度快的特点,尤其是对于多人脸检测过程中不同姿态表情的变化有很好的鲁棒性。但是肤色易受光照变化及类肤色信息干扰,一部分肤色信息由于光照影响处于高光区或者阴影区域造成漏检,一部分类肤色信息则由于肤色建模的原因被误检为肤色。在这种情况下,肤色区域常常出现不连续的空洞,或者大片类肤色信息。而且基于肤色的人脸验证手段对肤色检测的每步操作精度要求很高,仅仅依靠一些几何特征或者简单的模板,往往造成较高的人脸误检漏检情况。另外对于当图像中存在人脸重叠现象时,几何特征等验证方法也会失去作用。

类Haar特征提取及积分图计算提高了AdaBoost算法的检测速度,级联分类器的构建过程则在保障检测速度基础上提高人脸检测性能,因而AdaBoost算法是构建实时人脸检测系统的有效方法。但是该方法在提高检测率的同时也增加了误检率,而且在一定情况下增加了训练样本所需时间。研究表明基于AdaBoost的人脸检测对于单人脸正面图像的检测效果较好,但是对于多人脸情况下多姿态多表情的人脸检测率低,漏检率高。

2.2 基于肤色和AdaBoost算法结合的人脸检测

人脸是一个复杂的结构体,对于人脸的检测需要考虑很多的因素。研究表明单一的检测方法可靠性是有限的,不管是基于肤色的人脸检测还是基于AdaBoost的人脸检测,各有优点,但是在适用范围存在很大的局限性。如果将多种人脸检测方法有效结合,那样将会获得更高的检测率。

针对基于肤色和基于AdaBoost人脸检测算法各自的优缺点,为了综合利用二者的优点,尽可能避免单一方法的缺点对检测结果的干扰,本文首先应用CbCrCg空间下基于最小二乘拟合的肤色聚类模型作为人脸检测的预处理过程,在减少人脸检测的搜索范围同时有效保障避免因为光照等因素造成的人脸肤色漏检。在经过准确的人脸肤色分割后,待检测图像被划分为含人脸的肤色区域和不含人脸的肤色区域,然后需要进一步将该区域作为输入图像依次通过AdaBoost级联分类器进行人脸检测,进一步去除肤色区域中的非人脸区域,实现更精确的人脸定位。

3 人脸检测实验

3.1 人脸库的选取

美国FERET人脸库共包括11338幅人脸图像,图像涵盖了人脸水平方向各个角度的变化。如图所示为部分人脸图像:

图1 美国FERET人脸库姿态变化图像

CAS-PEAL-R1人脸库是由中科院建立的目前亚洲最大的人脸数据库,共有1040个人的30863幅人脸图像。其中正面子集包括人脸表情饰物背景光照等变化,非正面人脸子集包括1040个人21个角度姿态变化的姿态子集图像。

图2 中科院CAS-PEAL-R1人脸库姿态变化图像

在进行AdaBoost训练之前将所有图像统一归一化19×19大小,从而构建了多姿态人脸样本库。

3.2 人脸检测结果

为验证该方法的有效性,文章从Inter网选取了200张图像,包括多人脸图像和单人脸图像,其中涵盖了光照,复杂背景,及人脸姿态表情变化等因素。实验中对这些图像按照单人脸和多人脸图像进行分组实验,实验结果如图所示:

图3 本文方法的检测效果

实验基于构建的226张训练图像,共计502个人脸,正面人脸397个,平面偏转人脸105个。分别采用基于直接最小二乘拟合肤色聚类模型人脸检测方法和基于传统AdaBoost算法的人脸检测方法与本文方法进行性能对比,三种人脸检测方法性能对比情况如表1所示:

表1 三种人脸检测方法性能对比情况

本文方法通过最小二乘拟合肤色模型与AdaBoost算法的有效结合,有效克服了光照、复杂背景及人脸姿态等因素的影响,最终在复杂环境下实现很好的人脸检测效果。

4 结语

本文提出了将肤色检测与AdaBoost算法结合起来的人脸检测方法。该方法可以有效解决肤色检测误检率较高和AdaBoost方法漏检的问题,从而在提高检测率的同时降低误检率,实现更准确的人脸定位。

[1]赵丽红,刘纪红,徐心如.人脸检测方法综述[J].计算机应用研究,2004(9):1-4.

[2]Yang MH,Kricgman D,Ahuja N.Detecting Faces in Images:A Survey[C].IEEE Trans Pattern Analysis and Machine Intelligence,2002,24(1):34-58.

[3]李刚,高政.人脸自动识别方法综述[J].计算机应用研究,2003(8):4-9.

[4]梁路宏,艾海舟,徐光佑.人脸检测研究综述[J].计算机学报.2002,5(25):449-456.

[5]FreundY,Schapire R E,A Decision-Theoretic Generalization of Online Learning and an Application to Boosting[J].Journal of Computer and System Sciences,1997,55(l):119-139.

[6]Sung K,Poggio T.Example-Based Learning for View Based Human Face Detection[J].IEEE Trans Pattern Analysis and Machine Intelligence,1998,20(1):39-51.

[7]RADIM HAL,J FLUSSER.Numerically Stable Direct Least Squares Fitting of Ellipses[J].The Sixth International Conference in Central Europe on Computer Graphics and Visualization 1998,21(5):125-132.

Face Detection Based on Skin Color and AdaBoost Algorithm

LI Yang1,3,CAO Zhu-ming2,3
(1.College of Software and Communication,Tianjin Sino-German University of Applied Stiences,Tianjin 300350;2.Beijing Electronic Science&Technology Vocational College,Beijing 100029;3.Tianjin University of Technology and Education,Tianjin 300222)

To avoid the illumination and complex background of the multi face detection error detection problem,puts forward a kind of color and AdaBoost algorithm based on the combination of multi face detection algorithm based on skin color clustering model of least squares fitting as the pretreatment process of face detection,firstly applies the CbCrCg space,then need to further transform the area as input the image face detection through AdaBoost cascade classifier,further removal of non face regions in the skin region,finally achieves face location more accurate.

Face Detection;Skin Color;AdaBoost;CbCrCg Space;Least Squares

1007-1423(2017)05-0077-04

10.3969/j.issn.1007-1423.2017.05.018

2016-10-25

201-02-10

猜你喜欢
肤色人脸椭圆
Heisenberg群上由加权次椭圆p-Laplace不等方程导出的Hardy型不等式及应用
有特点的人脸
一起学画人脸
例谈椭圆的定义及其应用
肤色(外一首)
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
巧用点在椭圆内解题
三国漫——人脸解锁