李 凯
(江西理工大学理学院,江西赣州 341000)
随着互联网络的快速发展,人们对智能化人脸检测技术越来越重视。人脸检测就是检测一幅图像中人脸所在的位置[1]。常用的人脸检测方法有基于知识的方法[2]、基于特征的方法[3]、基于模板匹配的方法[4]、基于统计的方法[5]。在视频中的检测需要满足实时性,Viola等[6-7]提出了一种基于AdaBoost的人脸检测算法,同时建立了第一个真正实时的人脸检测系统,从根本上解决了检测速度问题,具有较好的识别效果。但利用AdaBoost算法的人脸检测具有一定的局限性,算法对于侧面及多姿态的人脸检测误检率较高。针对这个问题,本文提出了一种动态视频流实时多人脸检测算法,并对该法的检测效率和速度进行了评价。
肤色是表征人脸的显著特征信息,具有相对的稳定性。视频图像的大小、表情、姿态等因素不会对肤色特征造成较大的影响。因为肤色与背景颜色存在较大差别,所以能够运用肤色特征分割视频图像中的人脸区域。本文选择在能够将图像的亮度与色度分离的YCbCr色彩空间中建模,并使用简单门限的方法分割肤色的区域,然后运用膨胀处理,将离散的像素点以一定规则连接起来,并运用腐蚀的方法腐蚀掉较小的噪声点。最终分割出视频图像的肤色区域。图1是一幅图像分割肤色区域的过程图。图1a是一幅原始的图像。图1b将RGB色彩空间中的图像转化YCbCr色彩空间中并运用简单门限的方法分割的效果图。从图中可以看出分割出来的二值化图像眼睛部分是黑色的,脸部的其他部分是白色的,需要将图像中离散的像素点连接起来,以分割出全部的肤色区域。图1c是经过膨胀处理后二值化图像的效果图,从图中可以看出一些很小的非肤色区域的较小噪声点也连接在一起。图1d是通过腐蚀处理,减小图像中噪声点后的效果图。从图1可以看出,通过以上的处理,肤色区域被完整地从图像中分割出来。
图1 图像分割的过程
AdaBoost[8-9]算法是研究人员提出的一种通过不断学习提高分类性能的算法。算法采用了一种Haarlike[10]特征选择策略,通过灰度变化选取人脸特性。图2中列举了几种比较常见的特征。Lienhart和Maydt在2002年扩展了几种Haar-like特征。Haar-like特征能够很好地选取视频图像中的数据特征点,但这种选取方式运行耗费时间过多,为了加快特征选取的速度,可以使用数学中常用的积分图的方法。AdaBoost算法首先提取样本图像中的Haar-like特征,然后将图像的特征数据作为训练数据训练弱分类器。假设样本空间为(x,y),从样本空间中选择m组训练样本,训练样本的权重为1/2m。选择一个弱学习算法迭代运算T次,每次运算后都按照分类结果调整训练样本的权重,并且赋予分类错误的训练样本更大的权重,在迭代运算中更加注意上次分类错误的训练样本的分类情况。弱分类器经过不断迭代最终获得一个分类函数序列(f1,f2,…,fT)。赋予分类函数一个权重,分类效果差的分类函数赋予较小的权重。经过T次迭代运算,最终得到一个由弱分类器加权形成的强分类器F。
图2 几种基本的Haar-like特征
AdaBoost算法的详细工作步骤如下:
1)输入n个训练样本:{(x1,y1),(x2,y2),…,(xn,yn)},其中i=1,2,…,n,yi为训练样本类别标签(yi=0,1)分别表示l个负样本(非人脸)、m个正样本(人脸),l+m=n。
2)初始化权重
3)设t=1,2,…,T。
(1)归一化训练样本的权值为
(2)每个特征j对应一个弱分离器hj为
用该弱分离器对所有样本进行分类,然后计算对所有样本进行分类的错误率的和ξj,即
(3)选择具有最小错误率ξt的弱分离器ht(x)作为本次迭代得到的最佳弱分类器。
(4)更新样本对应的相应权重,即
4)经过T次迭代,选出T个最佳弱分类器,形成最后的强分类器,即
式中:at=lg(1/βt)。
针对传统的AdaBoost人脸检测算法对侧面及多姿态人脸检测误检率较高且检测速度较慢等问题,为了得到性能更好的人脸检测算法,本文提出了一种动态视频流实时多人脸检测算法。该算法在YCbCr空间中建立简单的肤色模型,运用简单门限以及一些形态学的运算,分割视频图像中的肤色区域,缩小AdaBoost算法的搜索范围以降低算法的运行时间。最后运用AdaBoost方法在该区域内精确地寻找出人脸所在的位置。
算法的详细工作步骤如下:
1)摄像头实时采集视频图像。
2)将RGB色彩空间中的视频图像转化到YCbCr色彩空间中。
3)运用简单门限的方法分割视频图像中的肤色区域。
4)运用腐蚀和膨胀等形态学的方法处理分割出来的肤色区域。
5)运用AdaBoost算法构造的分类器,在肤色区域内精确地定位人脸所在的位置。
6)标记出人脸所在的位置。
动态视频流多人脸检测算法的流程图如图3所示。
图3 动态视频流多人脸检测算法流程图
为验证算法的有效性,本文在实验环境为Inter(R)Core(TM)i5 CPU 2.53 GHz,2 Gbyte 内存的计算机上,运用MATLAB2012和OpenCV2.3.1[11]混合编程实现了一个人脸检测系统。并通过两个实验验证本文所提出的算法在静态图像和动态视频流中的算法性能。
实验一:用本文提出的检测方法检测静态图像。图5为使用该算法的人脸检测效果图。图4a中包含4个人脸,检测出4个、误检0个。图4b包含8个人脸,检测出8个、误检0个。图4c包含19个人脸,检测出18个人脸、误检0个。通过实验一能够得出,该算法在人脸数较少时检测效果较好,但人脸数较多时有一定的漏检。由于在肤色区域内检测人脸区域,算法的误检率也有所降低。
图4 静态图像的人脸检测效果图
实验二:为进一步验证本文提出算法在实时动态视频流中的有效性,本文运用笔记本式计算机自带的摄像头实时获取动态视频流并且检测人脸区域,调节视频图像大小为320×240,帧频为20 f/s(帧/秒)。实时动态检测的效果如图5、图6所示。
图5为实时动态视频流单人脸检测效果图。图6是实时动态视频流多人脸检测效果图。从图5和图6中可以看出本文提出的实时动态视频流多人脸检测算法对有遮挡、侧面以及多人脸检测都具有较好的检测效果。该算法克服了AdaBoost算法对侧面及多姿态人脸检测误检率较高的问题,能够很好地跟踪检测人脸区域。
为了得到算法的具体性能数据,本文分别采用Adaboost算法和本文方法定位动态视频流中单个和多个人脸所在的位置。表1、表2为相应的数据信息。
图5 实时动态视频流单人脸检测效果图
图6 实时动态视频流多人脸检测效果图
表1 动态视频中单人脸测试结果比较
表2 动态视频中多人脸测试结果比较
从表中可以看出本文的算法降低了视频中人脸检测的误检率。文中没有被检测出人脸的视频帧主要发生在只有部分人脸在摄像头范围内的情况。该算法对侧脸以及多人脸检测效果良好。由于算法仅仅在肤色区域内搜索人脸所在的位置,因此算法的运行时间也明显减少。综上所述,本文提出的算法具有良好的性能与可行性。
本文提出一种动态视频流实时多人脸检测算法,并实现了一个动态视频流人脸检测系统。该算法先在YCb-Cr色彩空间中建立肤色模型,然后运用简单门限以及腐蚀和膨胀的方法分割视频图像中的肤色区域,最后运用AdaBoost算法在该肤色区域内精确定位出人脸所在的位置。仿真实验表明,该算法比传统的算法有更低的误测率和更快的检测速度,算法能够在动态视频流中实时检测,具有较高的实用价值。
:
[1]YANG M H,KRIEGMAN D,AHUJA N.Detecting faces in images:a survey[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,24(1):34-58.
[2]HUANG T S,YANG G Z.Human face detection in a complex background[J].Pattern Recognition,1994,27(1):53-63.
[3]PENV P S,ARICK J J.Local facture analysis:a general statistical theory for object representation[J].Network:Computation in Neural Systems,1996,7(3):477-500.
[4]SAKAI T,NAGAO M.Line extraction and pattern detection in a photograph[J].Pattern Recognition,1969(1):233-248.
[5]ROWLEY H A,BALUJA S,KANADE T.Neural network-based face detection[J].IEEE Trans.Pattern Analysis and Machine Intelligence,1998,20(1):23-38.
[6]VIOLA P,JONES M.Rapid object detection using a boosted cascade of simple features[C]//Proc.the IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Hawaii,USA:IEEE Press,2001:511-518.
[7]VIOLA P,JONES M.Robust real-time face detection[J].International Journal of Computer Vision,2004,57(2):137-154.
[8]徐品,童癸,瞿静.基于AdaBoost算法和人眼定位的动态人脸检测[J].电视技术,2011,35(9):114-117.
[9]韩帅,王景存.基于AdaBoost的检测与跟踪技术在电子警察中的应用[J].电视技术,2012,36(1):118-121.
[10]LIENHART R,MAYDT J.An extended set of haar-like features for rapid object detection[J].IEEE ICIP,2002(1):900-903.
[11]BRADSKI G,KAEHLAER A.Learning OpenCV:computer vision with the OpenCV library[M].[S.l.]:O’Reilly,2008.