人脸检测与跟踪系统的设计

2011-01-05 08:15王迺琳刘瑞安张咪咪
关键词:人脸分类器模板

王迺琳,刘瑞安,张咪咪

(天津师范大学 物理与电子信息学院,天津 300387)

人脸检测与跟踪系统的设计

王迺琳,刘瑞安,张咪咪

(天津师范大学 物理与电子信息学院,天津 300387)

基于Adaboost人脸检测原理,结合Windows下的Visual C++编程,设计了人脸检测系统.通过MIT人脸库和自建人脸库结合的方法,且对该人脸库进行有效的训练,实现人脸检测功能,提高了检测率和检测速度.利用连续自适应均值移动算法(Continuously Adaptive Mean Shift,Camshift)对人脸进行跟踪,并对Camshift算法进行改进,利用Adaboost人脸检测初始化模板的方法,将检测与跟踪结合起来,有效提高了人脸跟踪效率.

人脸检测;人脸跟踪;Adaboost算法;Camshift算法

人脸检测和跟踪是模式识别与计算机视觉研究领域重要的研究课题,在自动人脸识别、视频会议、智能视频监控、高级人机交互和医疗诊断等多个领域具有重要的应用价值.目前,国内外比较成功的跟踪方法有:1997年Crowley J L等人[1]结合人眼检测模型、肤色模型和相关匹配方法实现了人脸实时跟踪;梁路宏[2]等提出了一种基于双眼模板匹配与人工神经网的人脸跟踪算法;佘九华等[3]利用Adaboost人脸检测算法并结合Camshift算法改进了颜色直方图模型;王亮亮等[4]利用Adaboost算法进行快速人脸检测,通过Canny滤波获取精确的人脸区域,建立肤色直方图模型,并在Camshift算法的基础上运用人脸形态约束,通过Kalman滤波进行实时人脸跟踪.

人脸检测与跟踪系统由人脸检测系统和跟踪系统2部分组成,本研究基于Adaboost检测原理,对训练系统进行改进,设计了人脸检测系统.由于MIT人脸库的样本为灰度图像,且分辨率比较低,可能会影响训练的效果.因此,本研究自建了人脸样本库,样本选取数目更多,包含了正脸、侧脸、复杂背景以及多个大小不同的人脸,采用更大的样本库且选取了2倍于人脸样本数目的非人脸样本来进行Adaboost训练.同时,使用新的分类器进行检测,可实现多姿态的人脸检测,提高了检测率和检测速度.引入Adaboost人脸检测算法实现人脸的自动初始化,将检测与跟踪结合起来,提高了跟踪效率.利用人脸检测训练所得到的更有效的分类器特征进行检测,检测结果更准确,将其作为跟踪的初始窗口,基于Camshift算法进行跟踪.本系统的开发平台是Visual C++6.0,采用VC++6.0调用OpenCV[5],主要是利用OpenCV提供的接口实现并优化了人脸检测与跟踪的功能.

1 Adaboost算法

Adaboost算法是一种分类器算法,算法的核心思想是从一个很大的特征集中选择很小的一部分关键视觉特征,从而产生一个极其有效的分类器.它通过一定的方法将大量分类能力一般的简单分类器叠加起来,构成一个分类能力很强的强分类器,再将若干个强分类器串联成为级联分类器完成图像搜索检测.对于每一种特征而言,弱学习器决定弱分类器的最佳门限值,使其具有最小的误分样本数,全部检测过程的形式是一个退化的决策树.

(3)选择具有最小误差εt的简单分类器h t加入到强分类器中.

(4)更新每个样本所对应的权重和该轮分类器的权值.权值更新后,第t轮循环结束,进入下一轮循环.

通过线性加权叠加,形成级联强分类器.遵循“先重后轻”的级联分类器思想,将由重要特征构成的结构较简单的强分类器放在前面,这样可以先排除大量的非人脸样本,从而提高检测速度.图1给出了Adaboost人脸检测算法进行训练和检测的流程图.

图1 Adaboost训练检测过程Figure 1 Adaboost training test process

2 Camshift算法

Camshift[6-8]算法流程如图2所示.

图2 Camshift算法流程Figure 2 Camshift algorithm flow chart

首先选择初始搜索窗口,使窗口恰好包含整个跟踪目标,然后对窗口中每个像素的H通道上的值采样,从而得到目标的色调直方图,将该直方图保存下来作为目标的颜色直方图.在跟踪过程中,对视频图像处理区域的每一个像素,通过查询目标的颜色直方图模型可以得到该像素为目标像素的概率,图像处理区域之外的其他区域作为概率为0的区域.经上述处理,视频图像转换为目标颜色概率分布图,也称为目标颜色投影图.为便于显示,将投影图转化为8位的灰度投影图,概率为1的像素值设为255,概率为0的像素值为0,其他像素也转换为相应的灰度值.

Camshift算法的具体运算步骤如下:

第1步:在颜色概率分布图中初始化一个搜索窗口W,其大小为S.

第2步:利用Mean Shift算法使搜索窗口“收敛”.

第3步:重新设置搜索窗口的大小S并计算跟踪目标的输出参数.

第4步:跳转到第2步进入下一帧的循环.

对于人脸跟踪系统,选择椭圆模型可以很好地近似人脸,在输出跟踪人脸的参数时,以椭圆模型的形式描述跟踪结果.椭圆模型参数包括椭圆的长轴、短轴和方向角(长轴与水平方向夹角).通过计算搜索窗口的二阶矩,可以得到被跟踪目标的长轴、短轴和方向角.

根据上述步骤计算的结果为输出每一帧图像中最优匹配目标的中心和椭圆参数,在输出的视频序列图像中描绘出该区域,从而形成对目标的连续跟踪.

3 人脸检测系统的实现

基于Adaboost的人脸检测系统主要包含2个模块:训练部分和检测部分,其中训练过程起着决定性的作用.

3.1 训练部分

在Adaboost训练之前,需要准备样本,包括正样本和负样本,本研究中即为人脸图片和非人脸图片.一般来说,一个标准的人脸样本至少应该是一幅包含有一个人脸角度偏转角度不大的全人脸图片[5].

实验中用到的标准人脸库是MIT-CBCL的人脸库,此人脸样本库包括2 429个人脸样本,4 548个非人脸样本,图像格式为pgm,分辨率为19×19.除此之外,还用到了自建人脸库中的图片.图3为部分正人脸样本,正样本具有多样化特征,存在有胡须、戴眼镜、头发遮挡、表情各异等多种情况.图4是部分负样本图像,图像出自自然和人为的各种环境,具有较强的代表性[6].

图3 部分正人脸样本Figure 3 Part of face samples

图4 部分负样本图像Figure 4 Part of negative samples

训练时使用的是Windows系统下兼容性较好的JPG图像格式,所以需要把pgm图像转化为JPG图像.转化完成以后,由于人脸样本宽度较小,不利于正样本打包处理,本研究再将19×19的JPG图像转化为40×40的JPG图像.样本制备成功以后,需要生成样本描述文件.样本描述文件是在训练过程开始之前,把样本的列表生成一个文件保存起来,以备训练时调用.一般情况下,正样本的样本描述文件中记录了样本图片的文件名和样本的选择区域,负样本的样本描述文件只是文件名列表.正样本和负样本的列表描述文件均为txt格式.

MIT人脸库的样本为灰度图像,且分辨率较低,可能会影响训练的效果.本研究自建了人脸样本库,自建人脸库包括:个人收集的部分生活照和网上搜索得到的部分明星图片,利用iSee图片专家从图片中进行人脸区域的选取.自建的人脸样本需要手动添加到正样本文件列表中,得到融合的样本列表文件之后,对正样本进行打包,得到Vec.vec文件.Adaboost训练之前还需要初始化大量的参数,包括4类:与样本相关的参数、与特征相关的参数、与训练类型相关的参数和与控制相关的参数.至此,训练的全部准备工作已经完成.

样本的训练过程是按照Adaboost算法选择弱分类器,形成强分类器,再由强分类器级联成为1个有效的分类器.训练程序在后台执行训练操作,训练流程图如图5所示.

图5 训练程序流程图Figure 5 Training flow chart

3.2 检测部分

检测部分是根据训练所得到的分类器特征(一般存储为xml文件)对输入图片进行检测,检测结果是图像中目标所在的位置.人脸检测的过程如图6所示.

图6 人脸检测流程图Figure 6 Face detection flow chart

4 人脸跟踪系统的实现

传统的Camshift算法一般采用手动选取初始化模板的方法,缺点是需要人员参与,在无人情况下,无法做到人脸跟踪.如需在无人情况下初始化跟踪模板,则需要人脸检测参与进来[8].

本研究结合Adaboost与Camshift算法设计的人脸跟踪系统根据人脸检测训练所得到的更有效的分类器特征(一般存储为xml文件)进行检测,检测结果作为跟踪的初始窗口,计算颜色直方图,得到各种颜色的概率分布,并记录这时人脸区域的面积为S.然后连续从视频流中抓取下一帧图像,用Camshift算法进行跟踪.在每次跟踪时,判断跟踪目标区域面积是否大于S/3且小于5S/3,如果在此范围内,则继续跟踪;如果不在,则采用Adaboost检测人脸,再作为人脸跟踪的初始窗口,依次迭代,从而实现人脸的自动跟踪.

5 测试结果

5.1 人脸检测

使用标准的人脸检测测试图片Lena为样本,测试不同参数下的准确率与耗时情况.测试过程中,主要更改了测试样本的大小、搜索窗口的比例系数和检测目标的相邻矩形的最小个数.为了避免结果的随机性,本测试采用多次(10次)检测求平均值的办法.检测结果如图7所示,检测结果比较如表1所示.

图7 人脸检测结果Figure 7 Face detecting result

表1 不同参数的检测结果比较Table 1 Results comparing of different parameters

本研究还进行了不同人脸检测算法的性能测试,包括主成分分析(Principle Component Analy-sis,PCA)算法、人工神经网络(Artrficial Neural ANetwork,ANN)算法和支持向量机(Support Vector Machines,SVM)算法.为了对人脸检测能力进行分析,采用大量的静态图片进行测试.图像来源包括CMU测试集、ORL测试集和从互联网下载等,包含各种环境和背景、不同尺寸、不同角度的多人脸图像.用这样一组同样的图片测试,并对比Adaboost检测算法和本研究所采用的方法.测试图片共540张,包含722个人脸,检测结果如表2所示.

表2 不同人脸检测算法测试结果Table 2 Detecting results of different algorithms

实验表明,使用新的分类器检测人脸,在检测率上优于其他算法,并且缩短了检测时间,说明本研究所采用的方法具有更好的应用性和推广性,可将其应用在人脸跟踪系统上,使初始化模板更加准确.

5.2 人脸跟踪

引进了Adaboost人脸检测的方法初始化跟踪模板.在实际的检测过程中,首先检测到了人脸的区域,并且把它确定为跟踪模板.自动初始化界面如图8所示.

图8 自动初始化的界面Figure 8 Auto initialization interface

得到跟踪模板后,Camshift跟踪开始,图9为自动初始化后的跟踪人脸效果图.

图9 自动初始化后的跟踪人脸效果图Figure 9 Rendering of face tracking

6 结论

本研究在Windows环境下,通过Visual C++编程,实现了Adaboost人脸检测功能和Camshift人脸跟踪功能.系统通过MIT人脸库和自建人脸库结合的方法,对该人脸库进行了有效训练,实验证明该系统在检测率和检测速度上均有一定的提高.大量的检测实验证明:做为检测对象的样本越复杂(样本包含了正脸、侧脸、复杂背景以及多个大小不同的人脸),图片参数的设置对检测结果起到越大的影响.同时,提出一种新的人脸跟踪优化算法,该算法利用Adaboost人脸检测初始化模板的方法,实现了人脸跟踪功能.

[1] Crowley J L,Berard F.Multi-modal tracking of faces for video communications[J].Computer Vision and Pattem Recognition,1997:640-645.

[2] 梁路宏,艾海舟.基于人脸检测的人脸跟踪算法[J].计算机工程与应用,2001,17:42-45.

[3] 佘九华,王敬东,李鹏.基于Camshift的人脸跟踪算法[J].计算机技术与发展,2008,18(9):12-15.

[4] 王亮亮,孙即祥,谭志国.基于人脸检测和CAMSHIFT算法的人脸跟踪系统[J].微计算机应用,2008,29(2):14-17.

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

[6] Schmidt A,Kasiński A.The performance of the haar cascade classifiers applied to the face and eyes detection[J].Advances in Soft Computing,2007,45:816-823.

[7] 李大湘,彭进业,邓楠.基于多模型及SVM的单人脸跟踪系统[J].微计算机应用,2006,27(3):181-184.

[8] 邢昕,汪孔桥,沈兰蓀.基于器官跟踪的人脸实时跟踪方法[J].电子学报,2000,28(6):29-31.

Design of face detection and tracking system

WANGNailin,LIURuian,ZHANGMimi

(College of Physics and Electronic Information,Tianjin Normal University,Tianjin 300387,China)

Based on the face detection theory of Adaboost,incorporating with the program of Visual C++in Windows,a face detection system is designed.This system realizes the function of face detection and increases detection rate and speed by the combination of MIT face database and self-created face database,and the effective training of face database.Utilizing continuously adaptive mean shift(Camshift)algorithm to track the face,the Camshift algorithm is improved.Utilizing the method of initialization template of Adaboost face detection,the detection is combined with tracking to increase the face tracking efficiency.

face detection;face tracking;Adaboost algorithm;Camshift algorithm

TP391.41

A

1671-1114(2011)01-0045-05

2010-05-18

天津自然科学基金(09JCYBJC00100);滨海新区科技特派员科技专项(SB20080079);天津师范大学博士基金(52LX32)

王迺林(1984—),女,硕士研究生.

刘瑞安(1966—),男,教授,主要从事检测技术方面的研究.

(责任编校 纪翠荣)

猜你喜欢
人脸分类器模板
铝模板在高层建筑施工中的应用
铝模板在高层建筑施工中的应用
有特点的人脸
一起学画人脸
三国漫——人脸解锁
基于实例的强分类器快速集成方法
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
铝模板在高层建筑施工中的应用
城市综改 可推广的模板较少