分散矩形特征结合软级联的人眼检测研究
2012-01-04党艳军舒文斌高智勇
党艳军,舒文斌,高智勇
(中南民族大学 生物医学工程学院,武汉 430074)
眼睛是人脸最突出的特征之一,对人脸识别、瞳孔定位以及驾驶员疲劳驾驶的判断、人机接口的应用都有重要的作用[1-3].自从Viola将AdaBoost算法与级联结构引入人脸检测领域取得重大突破以来,越来越多的学者开始研究AdaBoost级联学习[4].刘艺等人提出一种双层结构AdaBoost分类器用于人眼的定位,其仅从级联方式上作了改进,算法本身使用的haar特征并未改变[5].唐旭晟等人采用改进AdaBoost级联结构与支持向量机相结合的方式,实现在复杂背景图像中人眼的快速、准确定位[6].由于支持向量机的引入,使得计算非常复杂.韩晶等将AdaBoost与主动红外下的亮瞳效应相结合,用于连续视频的人眼检测,能够大大提高检测速度[7].然而,对特定红外光源的要求,使得这种检测方法应用的空间受到限制.本文从AdaBoost级联学习算法本身出发,从haar特征模板和级联分类器训练过程上做出改进,采用分散矩形特征并对其进行优化,提出一种新的软级联参数调整的方法,在加快分类器训练速度的同时提高了分类器的分类能力,并且在人眼检测的实验中得到了验证.
1 分散矩形特征
1.1 AdaBoost级联学习
AdaBoost级联学习是将训练的层分类器(强分类器)级联起来组成一个分类能力更强的分类器[4,8].在开始训练之前,设置每层的最小检出率和最大误检率为一个固定的参数.当本层强分类器训练完成后,就与之前训练的层分类器级联在一起,并对后面层的样本作过滤,直到训练的层数达到设定的最大层数或者级联分类器的最大误检率达到要求,才停止训练.
1.2 haar特征模板的扩展
Adaboost级联学习过程中重要的一步是计算样本的haar特征值,在计算该值的时候,是通过haar特征模板矩形的位置来计算的,haar特征值的计算公式如下:
(1)
其中,Ri表示第i个矩形区域所有像素灰度值的和;wi表示第i个矩形的权重系数,白色矩形为正整数,灰色矩形为负整数,具体取值方法见文献[8];n表示单一模板中矩形的个数,n取2,3或者4.图1为基本的haar特征模板,图2为扩展的haar特征模板.
图1 基本haar特征模板
图2 扩展的haar特征模板
从图2可以看到,扩展的haar特征模板增加了45°方向上和中心特征信息的编码,从而有效地提高了分类器所选特征的表达能力,并且对旋转的图像鲁棒性增强.
1.3 分散矩形特征
基本的haar特征模板中的矩形在水平或垂直方向上相连、对齐.扩展的haar特征模板中的矩形倾斜45°,但依然受限于边界的相邻、对齐约束.为了更好表达各个方向上的信息,采用分散矩形特征模板[9].分散矩形特征模板如图3所示.
图3 分散矩形特征模板
分散矩形特征模板只采用两个矩形,因此公式(1)中的n取2.两矩形随意移动,产生如图3所示的4种情况.图3中,(a)的情况属于基本的haar特征模板;(b)的情况是两矩形错切,这样就打破了边界对齐的约束条件;(c)是相离的情况,打破边界相连的约束条件;(d)是两矩形重叠的情况.尽管只采用两个矩形,但分散矩形特征模板几乎能编码所有方向上的信息,这样会极大提高特征的表达能力.
1.4 分散矩形特征的优化
由于分散矩形特征不需要相连对齐,导致分散矩形特征数量的组合暴增.以本文实验所用样本大小24×12为例,在该窗口中会产生3185000个分散矩形特征.如此大的特征数量必然造成训练的相当耗时,因此必须对特征做出优化.文献[9]中提出了分散矩形特征的概念,但并没有进行优化.本文从以下三方面进行优化.
(1) 剔除小的特征,若两矩形的宽、高均小于2,则剔除;
(2) 剔除完全重合的矩形特征;
(3) 剔除两矩形相对位置完全相同的特征,若两矩形移动过程中位置交换,但相对位置没有变化,则剔除掉该特征.
经过以上三方面的优化,特征数量大大减少,在24×12的窗口中的分散矩形特征为841137个.
2 训练参数的调整
2.1 软级联的引入
传统的AdaBoost级联学习的最小检出率和最大误检率在每一层强分类器的训练中都是固定不变的.然而,随着训练层数的增加,训练难度越来越大,固定的参数会使训练非常耗时,显然并不合理.因此采用软级联的方式,动态调整每层的训练参数[2,10].文献[2]给出一种参数调整的方法,其中每层的最小检出率和最大误检率随着层数的增加而增加.然而,训练到最后几层强分类器时,如果仅仅增加最大误检率,而没有降低最小检出率的要求,训练的负担仍然没有减轻,训练速度的提高不明显.因此,我们提出在减小最小误检率的同时增加最大误检率的方法来加快训练速度.
2.2 新的参数调整方法
本文按照指数变化规律设置每层的最小检出率和最大误检率,具体如下:
(2)
(3)
式(2)、(3)分别表示第n层强分类器的最小检出率和最大误检率.其中,T表示设置的训练总层数,为已知参数;n为第几层;参数k1、k2、α>0根据训练要求求出.
本文用于人眼检测研究的参数设置为训练总层数T=18,第一层训练的最小检出率为0.995,最大误检率为0.45.为保证最大误检率的合理性,选取级联分类器的中间层误检率参数限定为0.5,由式(2)、(3)可得:
(2)
(3)
(3)
由上式可计算出k1=0.004935,α=0.237061,k2=0.444112.将这三个参数代入式(2)、(3)得出每层的最小检出率和最大误检率.
3 实验结果及分析
3.1 样本库的建立
由于没有人眼图库可供直接使用,从因特网上下载BioID和MIT人脸库,手工截取眼睛部分作为训练正样本.左右眼分开截取,训练以右眼为例.截取图片2238张,归一化为24×12大小.负样本为网上下载的风景、建筑、美食等不包含人眼的图片.选择负样本5104张.部分正样本如图4所示.
图4 部分正样本
3.2 分散矩形特征的实验结果
实验一采用分散矩形特征替代原始haar特征模板,设置级联分类器的训练层数T=18,最小检测率dmin=0.995,最大误检率fmax=0.5,按照1.4节优化方法,优化前与优化后错切、相离、重叠特征所占的比重如表1.
表1 优化前后分散矩形特征所占比重
从表1可以看出采用分散矩形特征后(无论是否优化),相离、重叠的特征所占比重都很大,这说明分散矩形特征分类器能够选择这些特征,其表达能力要强于原始haar特征,从而提高了分类能力.需要说明的是,错切特征包含图3中(a)、(b)的特征模板.优化后的候选特征数目大约相当于优化前的1/4,所以在相同的检测率设置下使用的总特征数会多于优化前.
在训练时间上采用分散矩形特征模板比原始Haar特征模板长很多.本文优化了分散矩阵特征,优化后的分散矩形特征相比优化前的分散矩阵特征优势在于训练所需时间上,实验测得优化后训练所需时间是优化前的1/3.
3.3 软级联的实验结果
实验二在优化分散矩形特征的基础上,采用软级联的方法,动态调整每层检出率和误检率.设置的参数为第2.2节计算的参数.实验表明:软级联的训练时间比没有采用软级联方法所需训练时间减少了1/4.
为了测试训练出来的分类器性能,从Caltech人脸库里选出200张图片作为测试集.测试的结果如表2和图5所示.由于一张人脸图片中有可能检出多个错误的人眼,故误检数目会超出200.
表2 Caltech人脸库上检测结果
图5 分类器在Caltech人脸库上的ROC图
从表2和图5可以看出,采用分散矩形特征训练出来的分类器分类能力明显比采用原始特征训练的分类器要强.在分散矩形特征的基础上采用软级联的方法训练出来的分类器分类能力有所下降,但是训练速度加快,总体上比原始特征训练的分类器要好.
如图5所示,分类器并没有达到Viola论文中的高检测率[4],原因有以下几点:1)训练样本的分辨率只有24×12,训练的有效信息减少;2)训练的样本数目减少,样本库不够丰富;3)训练所设置的参数也不一样.
4 结语
本文从AdaBoost级联学习算法出发,采用优化的分散矩形特征结合软级联进行人眼检测研究.引入分散矩形特征,增强了特征的表达能力,使分类器的分类能力有所提高;分散矩形特征优化后,训练所需时间缩短为优化前的1/3.软级联的引入,加快了训练的速度,使训练时间缩短为原来的1/4.从人眼检测实验结果来看,采用分散矩形特征结合软级联训练的分类器的分类能力要优于采用原始特征训练的分类器.
[1]Lin Kunhui,Huang Jiyong,Chen Jiawei,et al.Real-time eye detection in video streams[C]//IEEE.Fourth International Conference on Natural Computation.Jinan: IEEE Computer Society,2008:193-197.
[2]Hea Z ,Tan T ,Suna Z.Topology modeling for Adaboost-cascade based object detection[J].Journal Pattern Recognition Letters Archive,2010,31(9): 912-919.
[3]赵雪竹.基于AdaBoost算法的驾驶员疲劳检测[D].广州:华南理工大学,2010.
[4]Viola P ,Jones M.Rapid object detection using a boosted cascade of simple features[C]//CVPR.Proceedings IEEE Conf on Computer Vision and Pattern Recognition.Hawaii:CVPR,2001.
[5]刘 艺,龚卫国,李伟红.双层结构Adaboost健壮分类器用于人眼精确定位[J].计算机应用,2008,3(28): 801-803.
[6]唐旭晟,欧宗瑛,苏铁明,等.复杂背景下人眼的快速定位[J].计算机辅助设计与图形学学报,2006,10(18): 1535-1540.
[7]韩 晶,王元庆.基于亮瞳效应的连续AdaBoost人眼检测[J].电子测量技术,2009,8(32):114-117.
[8]王 健.基于Gentle Adaboost算法的人脸检测研究[D].成都:电子科技大学,2008.
[9]张维泽.基于简单局部特征学习[D].杭州:浙江大学,2010.
[10]Bourdev L,Brandt J.Robust object detection via soft cascade[C]//CVPR.Proc IEEE Conf on Computer Vision and Pattern Recognition (CVPR’05).San Diego:CVPR,2005: 236-243.