首页 > 范文大全 > 正文

基于双肤色模型和AdaBoost的人脸检测系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于双肤色模型和AdaBoost的人脸检测系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘 要】本文在Windows平台下,基于VS2010和Intel开源计算机视觉库OpenCV设计了一个实用的人脸检测系统,实现复杂背景图像中可能存在的人脸区域检测。人脸检测功能的实现主要融合双肤色模型adaboost算法。首先基于YCbCr颜色空间的简单边界模型和高斯模型对图像实现分割并分析处理,实现人脸区域的粗定位。然后对人脸候选区域采用AdaBoost算法进行精检测。该系统使用简单,检测效果较好。

【关键词】双肤色模型;AdaBoost算法;人脸检测;OpenCV

Design of Face Detection System Based on Dual Skin Models and AdaBoost Algorithm

HOU Shun-yan QIE Jian-min XU Jing

(College of Electronic and Information Engineering, Hebei University, Baoding Hebei 071002,China)

【Abstract】A practical face detection system which is based on VS2010 and Intel open source computer vision library (OpenCV) under the platfrom of windows.was designed. It shoud bring out the face region detection in the complex backgroud image which may consist of face regions. The realization of face detection function is mainly fusion of dual skin models and Adaboost algorithm. The image segemention of skin region was firstly got based on a smiple boundary skin model and Gaussian skin color model in the YCbCr color space. The face coarse region location was determined by using the results of skin color segmentaion. Combining Adaboost algorithm, the accurate candidate face region was acquired secondly. This system is easy to use and has better detection.

【Key words】Dual skin models;AdaBoost algorithm;Face detection;OpenCV

0 引言

人脸检测是人脸表情识别、人机交互的第一步,快速有效的人脸检测直接影响人脸识别系统的实现。人脸检测是指运用一定的算法从不同背景或者视频中图像确定其中是否有人脸,若有则标出人脸的大小、位置、是否旋转以及旋转角度等信息。自上世纪90年代以来,科研人员提出了很多人脸检测算法,大致分为四类:基于知识的方法、基于特征的方法、基于模板的方法和基于表象的方法[1]。本文结合双肤色模型与Adaboost算法开发人脸检测系统。

1 系统开发方案

Intel公司的开源计算机视觉库OpenCV (Open Source Computer Vision Library)[2],由一系列C函数和少量 C++ 类构成,具有良好的可移植性,其代码都经过优化,可以进行图像的实时处理。OpenCV广泛应用在人机互动、物体识别、图象分割、人脸识别、动作识别、运动跟踪、机器人等领域。利用OpenCV实现人脸检测,为系统开发带来了极大的方便。

在Windows环境下,基于可视化开发平台VS2010,调用OpenCV视觉库,设计人脸检测算法,开发一个实用的人脸检测系统。

2 人脸检测算法设计

2.1 颜色空间的选择

肤色作为人脸的主要特征,从图像中抽取肤色,利用肤色检测可有效减小搜索范围,提高检测速度。常用的颜色空间有RGB、HIS、CYMK、YCbCr等,其中,YCbCr色彩空间是MPEG数字视频编码标准建议的颜色空间,具有计算、表示简单,亮度分离,能较好的限制肤色分布范围等特点。本文在YCbCr空间下实现肤色检测,从RGB空间到YCbCr空间的转化可由线性公式(1)得到。

■ (1)

2.2 基于双肤色模型的人脸粗检

肤色模型是指用一种代数的(解析的)或查找表等形式来表示哪些像素的颜色属于肤色,或者表征出某一像素的颜色与肤色的相似程度[3]。

2.2.1 简单边界肤色模型

简单边界肤色模型依据肤色在颜色空间中相对的集中在某一区域,使用一个或一组已知数学公式来表示肤色范围。简单边界模型要取得好的效果必须解决两个问题[4]:(1)如何选择合适的颜色空间;(2)如何确定规则中的参数。在选择颜色空间时除了要考虑肤色在颜色空间中的聚集程度外,还要考虑肤色与非肤色区域的可分离性。

2.2.2 高斯肤色模型

根据统计理论,在YCbCr空间中肤色的分布是连续的并且满足高斯分布。本文从自建的图像集中选取大量含有肤色的图像,分出肤色像素点,组成训练样本,利用样本的统计方法、EM算法确定Gauss分布的均值和方差。根据肤色在YCbCr空间的高斯分布,对被检测的图像计算像素点距离高斯模型分布中心的马氏距离。按照公式(2)得到各像素点属于肤色区域的概率,即可得到肤色似然图。

p(Cb,Cr)=e0.5(x-m)TC-1(x-m) (2)

其中,m是该图像的平均值;C是协方差矩阵;

xi=[Cbi,Cri]T,C=E{(x-m)(x-m)T}。

2.2.3 基于双肤色模型的肤色分割

简单边界模型运行效率较高,逻辑简单,常用于实时系统检测,但是肤色范围如果设置的太大,则会引入大量非肤色。基于概率的动态阈值模型如高斯模型,相对来说实现较复杂,但是检测精度高。因此本文采用简单边界模型和高斯模型相结合的方法优化肤色检测过程。

首先输入图像如图1(a),选择YCbCr颜色空间中的CbCr平面,设置肤色边界范围:100≤Cb≤127,133≤Cr≤173。如果图像中的像素落在限定的矩形区域内,就认为该像素为肤色,从而得到初次分割结果,如图1(b)。通常采用白色表示肤色区域,黑色表示非肤色区域。

初次分割的结果修正高斯肤色模型,对输入图像应用高斯模型进行肤色相似度判定,得到肤色似然图,如图1(c)。用最大类间方差法确定最佳阈值,得到肤色二值图像如图1(d)。

2.2.4 人脸粗检

对肤色分割得到的二值图像进行后处理,通过膨胀与腐蚀等形态学处理填充小空洞,去除小的噪声,以去除非人脸区域,判定肤色区域内孔的数量、大小及其位置关系,计算连通区域的宽和高,确定候选人脸区域。

2.3 结合AdaBoost的人脸精检测

Viola[5]提出了一种结合Adaboost和Cascade算法的多特征检测系统,具有极高的运行速度,实现了人脸的实时检测,并具有较高的检测准确率,在人脸分析领域引起了广泛的关注。该算法采用一组类似于哈尔小波变换(Haar-Like)的滤波器来计算图象的特征值,包括3种特征:双矩形特征、三矩形特征和四矩形特征。

(a)原始图像 (b)简单边界模型初次分割结果

(c)肤色似然图 (d)高斯模型二次分割结果

图1 基于双肤色模型的肤色分割

本文利用AdaBoost级联分类器扫描候选人脸区域,依次调用每级强分类器对该区域检测,因此AdaBoost级联分类器不用扫描整个图像,从而提高了人脸检测速度,准确的定位出人脸。

3 系统运行及功能分析

3.1 系统运行界面

人脸检测系统基于Windows风格,方便用户操作。系统运行界面如图2,图中为精确定位人脸实例。

3.2 人脸检测功能分析

人脸检测是人脸识别的第一步,检测效果直接影响后续工作。对人脸检测效果进行分析,采用540张静态图像进行测试,包括各种复杂环境和背景、不同尺寸、不同角度的单人脸和多人脸图像,共878个人脸。通过测试,共检测出789张人脸,误检人脸43张,检测率为89.9,平均每张脸检测时间0.963秒。总体说来,检测效果较好,基本满足系统要求。

图2 人脸检测系统运行界面

4 结论

基于双肤色模型和AdaBoost算法,开发了一个实用的人脸检测系统。该系统实现了肤色检测、人脸检测及特征定位等功能。实验证明该系统在检测率和检测速度上均有一定的提高,为后续人脸识别及实际应用提供了有力的保障。

【参考文献】

[1]Yang M H, Kriegnum D J. Ahuja N.Delecting face in images:a survey[J].Pattern Analysis and Machine Intelligence, 2002,24(1):34-58.

[2]贾小军,喻擎苍.基于开源计算机视觉库OpenCV的图像处理[J].计算机应用与软件,2008,25(4):276-278.

[3]Guangzheng Yang, Thomas S Huang. Human face detection in a complex background[J]. Pattern Recognition,1996:345-350.

[4]陈锻生,刘政凯.肤色检测技术综述[J].计算机学报,2006,29(2):194-207.

[5]Viola P, JonesM. Rapid object detection using a boosted cascade ofsimple features[C]//IEEE Conf on ComputerVision and Pattern Recognition, Kaua,i Hawai, USA: IEEE Computer Society, 2001.