首页> 中国专利> 一种改进AdaBoost算法的鲁棒人耳检测方法

一种改进AdaBoost算法的鲁棒人耳检测方法

摘要

一种改进AdaBoost算法的鲁棒人耳检测方法属于图像模式识别技术领域。其特征在于,提出了一种性能良好的复杂背景下的人耳检测方法。它提出四种不对称的Haar-like拐角特征用来描述人耳局部区域的灰度变化;采用了分段选取的策略对Haar-like特征的最优分类阈值进行选取,减少了样本训练时间;对弱分类器的权重进行改进,降低分类器的误检率;还根据训练中样本权重的分布变化,设置排除阈值HW,从而防止过学习现象的产生,使人耳检测的漏检率和误检率得到降低;另外,还提出一种单耳检测策略,使得检测效率和检测效果都得到提高。在PC机和DSP上的应用结果表明了本发明的优异性能。

著录项

  • 公开/公告号CN101398893A

    专利类型发明专利

  • 公开/公告日2009-04-01

    原文格式PDF

  • 申请/专利权人 北京科技大学;

    申请/专利号CN200810223946.9

  • 申请日2008-10-10

  • 分类号G06K9/00(20060101);G06K9/62(20060101);

  • 代理机构

  • 代理人

  • 地址 100083 北京市海淀区学院路30号

  • 入库时间 2023-12-17 21:40:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-09-01

    授权

    授权

  • 2009-05-27

    实质审查的生效

    实质审查的生效

  • 2009-04-01

    公开

    公开

说明书

技术领域

本发明涉及一种图像模式识别技术领域的人耳检测系统,具体是一种改进的AdaBoost人耳检测方法及其硬件实现。

背景技术

随着信息技术的高速发展,生物特征识别技术由于其广泛性、唯一性、稳定性等特点,已经成为新的学术研究和应用热点。人耳作为人体一种特有的生物特征体,除了具有作为生物特征识别必备的基本性质外,它丰富的沟回信息和灰度分布、对于姿态的鲁棒性等特有的优点使得它得到越来越大的关注。由于人耳识别是一种较新的生物特征识别技术,它的研究远没有达到人脸识别那样的深度和广度,因而作为识别系统中非常重要的一个环节——人耳检测也没有引起足够的重视。

目前在人耳检测方面取得的成果大致可分为两类,一类是基于模板的方法,一类是基于表观的方法。人耳检测研究的初期,人们都是利用人耳和人脸的许多共性特征,先将包含有人耳的侧面人脸检测出来,然后用某种方法再检测出侧面人脸中的人耳。这种基于模板的方法对光照条件、人耳相对于人脸位置等因素影响较大,如果人脸信息丢失,人耳检测也便失效;且这些方法只适用于实验室状态下的人耳检测,并未考虑人耳的姿态、饰物、遮挡等因素的影响,一旦将其置于真实世界复杂多变的情况下检测人耳,多样的背景、丰富的种族、地域特征,姿态、年龄、性别、数量等都将对系统的性能造成极大影响。

在人脸检测领域,常用的效果较好的方法是2001年P.Viola和M.Jones在“Robust real-timeobject detection”(P.Viola,M.Jones.Robust real-time object detection.Cambridge ResearchLaboratory,Technical Report:CRL2001/01,2001)构造的基于Haar-like特征和AdaBoost算法的级联式多层人脸检测器,首先采用一种简单的矩形特征,或者称为Haar-like特征,来描述人脸图像的灰度分布。为了快速的提取这些特征,他们还提出了一种新的图像表示——积分图像;其次采用AdaBoost算法从大量Haar-like特征中挑选出很少的一部分构造成所谓的强分类器;最后提出了一种瀑布型检测器结构,可以逐渐将非人脸区域剔除,而把注意力集中在那些更像人脸的部分。P.Viola和M.Jones的人脸检测器具有优越的性能,这在很大程度上要归功于AdaBoost算法。AdaBoost算法最早源于Schapire在1989年在论文“The Strengthof Weak Learnability”(SchapireR.E.The Strength of Weak Learnability[J].Machine Learning,1990,5(2):197-227)提出的Boosting(自举)算法,它是一种能够“Boost”任意给定学习算法精度的普适方法。Boosting就是将一系列粗略的规则加权组合起来得到高度精确的规则。这种思想在人脸检测领域取得很大成功,其后的一系列方法均是在此基础上改进的。

张惟在论文“基于改进AdaBoost算法的人耳检测与跟踪”(张惟,穆志纯,袁立.基于改进AdaBoost算法的人耳监测与跟踪[J],中国图象图形学报,Vol.12(2):222-227)中首次将基于表观的在人脸检测中已成熟应用的AdaBoost算法运用到人耳检测中,提出了一种基于AdaBoost算法的快速人耳检测与跟踪的方法。该方法在离线训练阶段,首先结合Haar-like型特征,依最近邻法则构造出弱分类器空间,然后训练出强分类器,最后将多个强分类器级联成多层人耳检测器。在线检测阶段,为提高检测率,采用了调整分类器阈值和缩放检测子窗口的策略。这种方法虽然较基于模型的方法有很大提高,但她只采用了最原始的AdaBoost算法,仍然存在一定的不足,对于背景简单的图像误报率就高达15%以上,而对于背景复杂的图像其误报率更高,这样高的误报率在现实应用中是不能满足要求的。本发明提出了一种改进的AdaBoost算法,能有效地对复杂背景下的人耳区域进行鲁棒的检测。

发明内容:

本发明的目的和要解决的技术问题是在于实现一个高效的人耳检测器。它具有较高的检测率和较低的误检率,鲁棒性强,在复杂背景下仍然具有良好的检测效果。可以应用到身份验证门禁系统中。

本发明的技术方案主要包括人耳检测器的实现,包括训练和检测两个阶段,如附图1所示。

在训练阶段,首先采集人耳样本和非人耳样本,并对样本进行尺寸和光照的归一化处理;然后利用以上采集到的样本进行训练,提取能够区分人耳样本和非人耳样本的矩形特征(即弱分类器),得到特征库;接着利用特征库结合改进的AdaBoost算法,训练得到一层人耳/非人耳强分类器;重复以上训练过程,得到结构由简单到复杂的多层分类器;最后把这些分类器级联起来,得到一个完整的人耳检测器。

在检测阶段,首先按照1.2的比例连续缩放检测窗口,并用得到的检测窗口按设定的步长遍历图片,从而提取所有被检测的子窗口,得到待检测子图像集;接着计算各子图像的积分图;然后利用训练得到的分类器进行检测,如果任意一层分类器输出低于指定阈值即认为待检测子图像为非人耳而不进行后续判断,只有那些通过所有层分类器判断的子窗口被认为是一个人耳;然后,对检测的结果窗口进行合并和划线。

另外,本发明结合人耳自身不对称的特点,提出了两种人耳检测的策略。第一种是用单耳分类器先对图像进行检测,然后将图像进行镜像变换,再用同一个单耳分类器对镜像过的图像进行检测;第二种是分别用左耳分类器和右耳分类器对图像进行检测,该策略利用单耳训练分类器(正样本中只含左耳或只含右耳),从而防止了训练过程中左右人耳的相互干扰。实验证明,两种检测方式都取得了令人满意的效果,实际应用时选择其中的一种方式即可。

本发明由以下几部分组成:样本的采集、利用积分图像计算矩形特征值、分类器的设计、多层分类器的级联、利用分类器检测和检测结果后处理。具体的技术方案如下:

1.样本的采集

采用手工标定方法,从包含人耳的图片中切割出人耳图像,并随机选择不包含人耳的图片作为非人耳样本。人耳图像和非人耳图像分别作为正例样本和反例样本用于训练分类器。

2.利用积分图像计算矩形特征值

2.1 Haar-like特征

Haar-like特征(Haar-like feature)是P.Viola和M.Jones提出的一种简单矩形特征,有些像Haar-like小波函数。它可以用来反映图象局部的灰度变化。从附图2中可以看出,这种矩形特征能反映检测对象局部特征的灰度变化,比如人耳的沟回等。Haar-like特征的定义是黑色矩形和白色矩形在图像子窗口中覆盖的区域的灰度值总和之差。本发明除了利用传统的边缘特征、线形特征和中心特征外,还引入了4个更适合人耳自身特点的的拐角特征。该拐角特征由大小两个相似矩形组成,大矩形为黑色,小矩形为白色。小矩形面积占大矩形面积的四分之一,并位于大矩形的一角,这就形成了如附图6所示的四个拐角特征。这些拐角特征可以很好地模拟人耳沟回纹理拐角处的灰度变化统计规律,如附图2所示。

从已有的矩形特征可派生出丰富的矩形特征,派生方法是:对没有旋转的矩形特征原型来说,可以垂直或水平地改变矩形的边长;对于旋转45度角的矩形特征原型来说,可以沿正(负)45度角改变矩形的边长。在检测和训练过程中,要利用所有可以派生出的矩形特征对样本图片进行遍历搜索。在一个大小为W×H的窗口中,所能穷举出的矩形特征数的计算方法是:令其中w、h分别为矩形特征原形的长、宽,那么:

(1)从倾角为0度的特征原型能派生出的特征数为:

>X·Y·(W+1-wX+12)·(H+1-hY+12)>

(2)从倾角为45度的特征原型能派生出的特征数为:

>X·Y·[W+1-(w+h)X+12]·[H+1-(w+h)Y+12]>

2.2积分图像

矩形特征定义如下:

>featurei=Σt{1,···,N}ωi·RecSum(ri)>

其中,{1,…,N}表示该矩形特征由N个矩形构成,ωi为第i个矩形的权值,RecSum(ri)为第i个矩形内所有像素的灰度值之和。

接下来举例说明矩形特征。以附图3、附图4或附图5中的一个Haar-like特征原型为例,如附图7所示,构成该特征的两个矩形为r1和r2(r1为背景大矩形,r2为中心的小矩形),而且r1三等分为r11、r12、r13,其中r12就是r2,显然r1包含r2,两个矩形的权值比ω1∶ω2=-1∶3,权值异号且与面积成反比。若r1=(5,3,6,2,0°),r2=(7,3,2,2,0°),那么特征值为:

feature1=-1·RectSum(5,3,6,2,0°)+3·RectSum(7,3,2,2,0°)

正如前面所述,RectSum(ri)为第i个矩形内所有像素的灰度值之和。

经过派生后,每个检测窗口中都含有大量的矩形特征。如果每次计算特征值时都要分2次(或3次)统计矩形内所有象素值之和,那么计算量巨大,将大大降低训练和检测的速度。为了快速计算RectSum(ri),本发明利用了一种叫做“积分图像”的方法。

积分图有两种:倾角为0度的积分图,倾角为45度的积分图。它们的定义和作用各不相同:

(1)对于倾角为0的矩形特征,积分图Sum(x,y)定义为:

>Sum(x,y)=ΣxxΣyyI(x,y)>

如附图8所示,它表示点(x,y)左上方所有像素值之和,I(x′,y′)为原图像上的一个像素值。在实际应用时,Sum(x,y)是采用增量方式计算得到的:

Sum(x,y)=Sum(x,y-1)+Sum(x-1,y)+I(x,y)-Sum(x-1,y-1)

满足Sum(-1,y)=Sum(x,-1)=Sum(-1,-1)=0。在实现时只需按行或按列遍历整张图像一次,就可以得到这张图像的积分图。这种积分图可以用于计算倾角为0度的矩形特征,假设特征为ri=(x,y,w,h,0°),那么

RecSum(ri)=Sum(x,y)+Sum(x-y,y-h)-Sum(x-w,y)-Sum(x,y-h)

只需4次查找积分图就可以得解,运算数据很快;且不管ri尺寸大小,其运算时间一致。

(2)对于倾角为45度的矩形特征,积分图TSum(x,y)定义为:

>TSum(x,y)=ΣyyΣyy-|x-x|I(x,y)>

如附图9所示,它统计点(x,y)正上方的像素值之和,统计范围是从点(x,y)开始向上延伸出的一个倾角为45度的矩形区域与原图像区域的交集区。在实际应用时,TSum(x,y)也是采用增量方式计算得到的:

TSum(x,y)=TSum(x-1,y-1)+TSum(x+1,y-1)-TSum(x,y-2)+I(x,y)+I(x,y-1)

满足:>TSum(-1,y)=TSum(x,-1)=TSum(x,-2)=0TSum(-1,-1)=TSum(-1,-2)=0>

在实现时只需按行或按列遍历整张图像一次,就可以得到这张图像的积分图。这种积分图可以用于计算倾角为45度的矩形特征。若特征为ri=(x,y,w,h,45°),那么:

RecSum(ri)=TSum(x-h+w,y+w+h)+TSum(x,y)

            -TSum(x-h,y+h)-TSum(x+w,y+w)

这时,按上式计算同样只需4次查找积分图就可得解,运算速度很快。而且不管ri尺寸大小,其运算时间一致。

3.分类器的设计

为了快速准确地检测出人耳,人耳检测器采用了分层结构(如附图10所示),由多层结构的从简单到复杂的强分类器级联起来构成。先由结构简单的强分类器排除一部分非人耳子窗口,然后由结构复杂的强分类器对余下的窗口进行判断。

本发明使用新型AdaBoost算法训练每层分类器。AdaBoost算法的一般思想是通过迭代从一组弱分类器中挑选出每一轮中分类错误率最低的弱分类器ht(t=1,…T),并将ht按感知机的形式组合成一个强分类器H(x),从而达到提高弱分类器分类性能的目的。AdaBoost算法之所以被称为自适应的(Adaptive)Boosting算法,是因为其能够对弱分类器集合中分类性能好的弱分类器给予较高权值,而对分类性能差的弱分类器给予较低权值,进而在弱分类器空间中挑选出若干关键分类器,整合为一个强分类器,整合的规则是由挑选出的弱分类器的性能决定的。

本发明在原始AdaBoost算法基础上采用了弱分类器最优阈值的分段选取策略,改进了弱分类器权重的分配方式,还引入了“排除阈值”来防止过学习,从而得到了本发明所用的新型AdaBoost算法。

3.1弱分类器的构造

为了能够显著地提高整个人耳检测过程的速度,必须考虑从各个方面来降低计算成本。最直接,也是最简单的想法就是将一个复杂的分类器拆分成为许多简化的分类器,然后对这些简化了的分类器进行筛选,组成一些较为复杂的分类器,最后再把这些较为复杂的分类器层层相连。这些简化的分类器足够的小以至于可以在大约20条指令内就完成计算。这样,系统的计算速度就可能迅速提高。上述简化了的分类器就叫做弱分类器。在本系统中,弱分类器与经过筛选得到的矩形特征一一对应,弱分类器的原形是:>hj=α1fj(x)<θjα2fj(x)θj,>其中x为待检测窗口,fj(x)为计算矩形特征值的函数,θj为通过训练得到的特征值的阈值,也称为弱分类器的阈值。

新的最优分类阈值的选取方法分为两步:

(1)首先将每个Haar-like特征对应的所有样本的特征值空间划分为n份,每份r个,假设原来的特征值空间是g(i)(i=0,…,num4),num4表示正负样本的总数,我们取g(k)(k=0,r,2r,…,n)作为新的特征值空间。在新的特征值空间中,寻找最优的分类阈值。

(2)其次,在找到的当前最优分类阈值g(j)的左右各延伸r重新进行搜索,即在原始的特征值空间g(i)(i=0,…,num4)中的g(j-r)到g(j+r)中重新进行搜索,找到最优分类阈值。

3.2强分类器的设计

较为复杂的分类器就是强分类器Ht(x),由若干弱分类器组成。当其中所有弱分类器的加权和大于强分类器的阈值时,其中强分类器的阈值在训练过程中确定,可以保证每层强分类器的最小错误率,并作为一个参数记录于所得的分类器中。根据训练记录可以发现它一般在-1到-4之间。训练一层强分类器并确定其阈值时,先对于每个人耳样本xi,计算>PV[i]=Σk=1t0hk(xi),>其中t0表示当前已得到的弱分类器的个数;然后将PV数组按从小到大排序;最后利用人耳样本个数p和最低检测率dmin算出当前强分类器的阈值即用PV数组中第个元素作为阈值,从而保证有个人耳样本能通过该阈值。其中,当待检测窗口的特征值大于强分类器的阈值时,Ht(x)=1;小于强分类器的阈值时,Ht(x)=—1。1表示接受,0表示拒绝。如果判断结果为—1,则认为检测目标x非人耳;但如果判断结果为1,不能最终说明检测目标x就是人耳,因为整个多层分类器是由一组强分类器组成的,只有检测目标x被所有强分类器接受,才能确定它是人耳。

本发明将新型AdaBoost算法结合上述弱分类器构造方法用于训练人耳/非人耳强分类器。本发明在每轮弱分类器训练时,在弱分类器权重中加入了反映分类器对非人耳样本正确识别能力的一项,使弱分类器的权重不仅考虑其总的错误率,同时还要考虑弱分类器对负样本的识别能力,可以有效降低系统的误检率。

训练步骤如下:

Step1:给定弱学习算法和训练集:(x1,y1),…,(xn,yn),其中,xi是输入训练样本向量,且xi∈X,X是训练样本集,yi∈{-1,+1}。

Step2:初始化权值:D1(xi)=1/n,i=1,2,…,n。

Step3:对于T轮训练,for t=1,2,…,T. do:

(1)将弱学习算法在权值Dt下训练,得到预测函数ht:X→{-1,+1};

(2)计算该预测函数的错误率:

>ϵt=Σi=1nDt(xi)[ht(xi)yi]>

以及识别正确的负样本的权值和:

>qt=Σi=1nDt(xi)[yi=-1,ht(xi)=-1]>

(3)求解权重更新系数αt和弱分类器的加权参数αt-new

>at=12ln(1-ϵtϵt)>

>at-new=12ln(1-ϵtϵt)+keqt>

其中k为一个常数,其取值满足在本次循环中,令最小错误率上界下降;

(4)更新样本权值:

其中,Zt是使>Σi=1nDt(xi)=1>的归一化因子。

(5)排除困难样本:

if Dt+1(xi)>HW  then  Dt+1(xi)=0

其中,HW为排除阈值,该步将权重过分集中的困难样本排除,防止过学习现象,本发明通过试验确定HW=12;

Step4:T轮训练完毕,最终的预测函数即最终的强分类器为:

>H(x)=sign(Σi=1Tαt-newht(x)-Th)>

其中,Th是满足错误率要求的判决阈值。

4.多层分类器的级联

级联式多层分类器是指将多个由AdaBoost算法训练的分类器以某种方式连接在一起,在保证获得更好的检测效果的同时,还可以从根本上减少计算时间。之所以要对已经训练好的分类器进行这样的处理,是因为单独使用一个强分类器所获得的检测率和误检率都无法满足实际检测系统的需要,还应当更大幅度的提高其检测率,降低误检率。

级联思想中很关键的一点是可以将一系列小而有效的被自举(boosted)的分类器组合在一起,在检测到大多数正样本的同时,拒绝掉大量的负样本,也就是说在使用更为复杂的分类器获得更低的误检率之前,先用简单的分类器拒绝子窗口中的绝大部分负的子窗口。实际上大多数情况下,一幅图像中的正例只占图像空间中的很少一部分,因此当图像通过最初的几层分类器之后,剩下的子窗口几乎可以忽略不计,所需要的时间也就很少了,因此这样的级联方式可以极大的提高检测效率。多层分类器级联的方式如附图10所示。附图10中T表示子窗口被分类器判断为人耳,F表示子窗口被分类器判断为非人耳,n是级联式分类器中分类器的个数。整个级联是由若干层组成的,每层是一个由AdaBoost算法训练得到的强分类器。对每一层设置阈值,通过调整阈值大小获得不同的误检率。越靠后的层,组成强分类器的弱分类器数目越多,分类器越复杂,分类性能也越强。检测时图像子窗口只有通过所有层才能被判断为是正例,若在其中任一层被判断为反例即被抛弃。级联后的分类器的检测率和误检率如附图11所示。

图中可以看出级联式分类器的分类效果是由每一层决定的,由图中给出的检测率(detection rate)和误检率(false positive rate)计算公式,假设预期的级联式分类器的检测率为0.9,那么就需要有10层分类器,且每一层的检测率为0.99,尽管如此,只要同时保证每一层的误检率为0.3,整体的误检率就可以达到6×10-6。由此可见,尽管检测率和误检率这两个指标是矛盾的,在提高其中一个性能的同时,另一个性能会降低,但级联式分类器还是可以尽量满足实际系统的要求。

5.利用分类器检测

检测过程是构建人耳检测系统的第二个环节。一个训练好的多层分类器就是一个人耳检测器。

在检测目标图像方面,传统检测流程的思路是:按比例逐层缩小待检测图像,形成“图像金字塔”;在“金字塔”中穷举待检测子窗口;把各个待检测子窗口作为分类器的输入,得到检测结果。假设原图分辨率为W×H,每缩放一次原图像,穷举该图像子窗口的计算量为2×ratio2×W×H次乘法,其中ratio为缩放比率,当被检图像较大时,计算量可想而知。

于是,本发明摒弃了以往的金字塔式检测方法,采用新的检测手段,即先令被检图像大小不变,逐层等比放大检测子窗口,然后用各层子窗口按1-6像素的步长遍历被检图像(在PC上实现时,本发明采用的步长是1像素;在DSP上实现时,为减少计算量,本发明采用的步长是6像素),这样在每次缩放检测子窗口时只需重新计算检测窗口的长宽,如附图12所示。利用新策略进行检测后,每1次放大检测窗口的计算量只有2次乘法,即原窗口的长和宽分别乘以放大倍数。这个运算量比起传统方法的2×ratio2×W×H次乘法要小得多了。

在利用多层分类器对图像检测时,本发明采用以下策略:先用前2个强分类器快速将疑似非人耳窗口排除掉,将疑似人耳窗口留给后n-2个强分类器来确认(假设该多层分类器的层数为n)。这样,既减少了系统检测时的运算量,提高了检测速度,又提高了检测的准确性。

6.检测结果后处理

在利用多层分类器进行检测时,检测结果还可能存在一个问题:结果窗口重叠。出现重叠是很正常的,因为检测窗口在待检测图像上的移动步进比较小,这么缓慢的移动速度必然产生很多相似的待检测子图像,得到相似的检测结果。是不是可以通过加大检测窗口的移动步进来减少重叠现象呢?有时可以,条件是待检测图像分辨率较大,如果待检测图像分辨率较小,加大步进将导致检测率下降。

解决结果窗口重叠的方法叫“合并”(merge),这一部分属于对检测结果的“后处理”。合并操作的步骤如下:

1)寻找可合并的结果窗口

设结果窗口的序列为Sequence[m]={result1,result2,…,resultm},m为结果窗口数,result表示结果窗口,P(result→x0,result→y0)表示结果窗口的左上角坐标,result→size表示结果窗口的长度和宽度。

如果结果窗口resulti和resultj同时满足以下条件则认为它们是可合并的:

(1)resultj→x0≤resulti→x0+0.2×resulti→size;

(2)resultj→x0≥resulti→x0-0.2×resulti→size;

(3)resultj→y0≤resulti→y0+0.2×resulti→size;

(4)resultj→y0≥resulti→y0-0.2×resulti→size;

(5)

(6)

如附图13所示,只要resultj的左上角落在阴影区域1中并且右下角落在阴影区域2中,那么resultj和resulti就是可合并的。

2)合并重叠窗口

计算重叠窗口的平均窗口,将平均窗口作为最终输出结果。

7.单耳检测策略

与人脸相比,人耳不具有对称性的特点。在人耳检测器的构建过程中,如果效仿人脸检测,将全部人耳部分左右同时当作正样本进行训练,通过统计学习得到的分类规律必然是左右耳都拥有,而负样本不存在的特点。以右耳为例,由于左右耳本身并不对称,因此,那些右耳拥有,左耳和负样本没有的特征将不会被选中,而这些特征又往往是那些具有较好分类能力的轮廓沟回特征。附图14所示的Haar-like特征在右耳样本中明显存在,但在左耳样本的相同位置却不存在。因此,如果将左右人耳同时当作正样本参加训练,必然会由于左右耳不对称的因素,将左右耳的特点混淆,在一定程度上削弱正负样本之间的对比,使左右人耳分别含有的大量的具有较高判别能力的特征被忽略。

根据以上分析,本发明提出新的人耳检测策略。利用左右人耳样本分别作为正样本进行分类器的训练。在得到分类器之后,可采取两种检测方式。第一种方式,用单耳分类器先对图像进行检测,然后将图像进行镜像变换,再用同一个单耳分类器对镜像过的图像进行检测;第二种方式,分别用左耳分类器和右耳分类器对图像进行检测。这两种检测方式都取得了令人满意的检测效果,实际应用时任选其中一种方式即可。

以上我们介绍了基于改进的AdaBoost人耳检测的具体方法,总体上本发明的创新及其优点主要有:

(1)针对人耳自身特点,提出四种不对称Haar-like拐角特征,用来逼近左右人耳的局部特征,这些特征能很好地描述人耳局部特征灰度变化,有利于弱分类器的构造和后续步骤的进行;

(2)对Haar-like特征的最优分类阈值进行分段选取策略,大大减少了样本的训练时间;

(3)对弱分类器的权重进行改进,对负样本分辨能力较强的弱分类器给予较大权重,提高整个分类器对负样本的分辨能力,降低分类器的误检率;

(4)为了防止传统AdaBoost方法在人耳分类器训练过程中发生过学习现象,本发明根据训练中样本权重的分布变化,设置排除阈值HW,将权重更新超过HW的噪声样本剔除,从而保证分类器训练过程的合理进行,防止过学习现象的产生,使人耳检测的漏检率和误检率得到降低;

(5)提出一种单耳检测策略,使得在训练过程中:用到的弱分类器个数(特征数)较少;训练时间缩短;单耳检测器在保证每层检测率与双耳检测器相当的情况下,每层可以得到比双耳检测器更低的错误率。在检测效果上,单耳检测方法的漏检率和误检率均得到降低。单耳检测策略中采用了两种检测方法,这两种方法均取得了较好的效果。

附图说明:

图1人耳检测系统框架示意图;

图2矩形特征模拟人耳图像灰度变化示意图;

图3基本Haar-like边缘特征示意图;

图4基本Haar-like线形特征示意图;

图5基本Haar-like中心特征示意图;

图6新增加的4个拐角特征;

图7用来举例的Haar-like特征示意图

图8倾角为0的积分图Sum;

图9倾角为45度的积分图TSum;

图10级联式多层分类器结构示意图,数字表示强分类器的层数,字母T表示待检图像被该层强分类器判断为人耳,字母F表示待检图像被该层强分类器判断为非人耳;

图11K层级联分类器的检测率和误检率计算示意图,其中数字表示强分类器的层数,字母di表示第i层强分类器的检测率,字母fi表示第i层强分类器的误检率;

图12本发明采用的检测流程示意图;

图13检测结果窗口可合并区域示意图;

图14同一特征在左右人耳样本中的不同匹配情况示意图;

图15对数组排序后特征值的分布(正方形点表示非人脸样本,圆形点表示人脸样本)示意图;

图16人耳检测系统操作软件的检测界面;

图17人耳检测系统操作软件的生成样本界面;

图18人耳检测系统操作软件的训练界面;

图19自选检测库的检测效果示例(三幅图从左到右依次选自UMIST侧面人脸库、中科院CAS-PEAL侧面人脸库和北京科技大学人耳库);

图20人耳有部分遮挡的图片检测效果示例;

图21基于DSP的人耳检测系统实时检测效果示例。

具体实施方式:

下面结合附图对本发明方法及系统进行详细描述。本发明提出的人耳检测系统的系统流程图如附图1所示。具体实施步骤如下:

1.训练部分

1.1矩形特征值的计算

在本人耳检测系统的训练和检测过程中都离不开矩形特征值的计算。在上文的论述中,曾指出矩形特征在图像上的特征值等于:

>featurei=Σt{1,···,N}ωi·RecSum(ri)>

其中RecSum(ri)为该特征内第i个矩形中所有像素值之和。在训练时,矩形特征内的权值ω1和ω2分别被ω′1和ω′2替代,>ω1=ω1Area,>>ω2=ω2Area,>其中,Area=25×30为样本图像的面积(即像素总个数)。ω1和ω2将被保留起来,在检测人耳时还有用处。

在这里,权值除以Area,主要目的是使特征值与样本图像面积联系起来,这有其具体的作用。通过上文的论述可知,本发明的检测策略为待检图像不变,检测窗口放大。每当检测窗口放大scale倍,可以想象成将样本图像和矩形特征也放大scale倍,然后重新训练样本得到新的多层分类器,最后使用这个新多层分类器对放大后的检测窗口进行检测。实际上不必重新训练,只要证明想象中的新多层分类器里的各弱分类器的阈值和原来一样即可。只要弱分类器的阈值不变,那么强分类器的阈值也不变。弱分类器的阈值其实是某个被选中的矩形特征在某一样本图像上的特征值,简言之,弱分类器的阈值就是一个特征值。假设样本图像和矩形特征都放大scale倍,这时的矩形特征值为:

>featurej=ω1scale2·Area·REcSum(r1)+ω2scale2·Area·RecSum(r2)>

其中ω1,ω2是初始权值,是根据矩形特征的原型的权值比确定的,在训练和检测过程中不变;Area为原样本图像的面积,样本放大scale倍其面积放大scale2倍;r′1,r′2是放大后的矩形特征内的两个矩形,分别对应于原矩形特征内的两个矩形r1和r2,r′1和r′2的面积也是r1和r2的scale2倍;RecSum(r′1)是r′1内所有象素灰度值之和,RecSum(r′2)是r′2内所有象素灰度值之和。由于r1,r2和r′1,r′2在样本图像上的相对位置是一样的,对应样本图像的区域也是一样的,因此RecSum(r′1)=scale2·RecSum(r1),RecSum(r′2)=scale2·RecSum(r2),故>featurej=ω1scale2·Area·RecSum(r1)+ω2Area·RecSum(r2)=featurej,>矩形特征值不变,弱分类器的阈值也不变,原多层分类器可以继续使用,不必放大样本和矩形特征来重新训练生成新的多层分类器了。在本发明的人耳检测系统中,取检测窗口缩放比例scale=1.2。

1.2训练过程总体实现

通过训练,该系统得到了多层分类器。多层分类器的每一层都是用AdaBoost方法训练得到的。如果把基于AdaBoost的训练模块比作中央处理器的话,那么所有样本的所有矩形特征值就是其输入,而多层分类器里的各个强分类器就是其输出。训练之前必须先确定整个系统要达到的最高误检率Fmax为多少,最低检测率Dmin为多少;还必须确定每个强分类器的最高误检率fmax,最低检测率dmin。在确定目标的前提下,整个系统至少需要由>(n=logfmaxFmax)>个强分类器组成。整个训练过程就是一个利用AdaBoost方法构造强分类器的过程。

这里先对整个训练过程进行一个总体的描述:

Step1:确定系统目标误检率Fmax,各强分类器的最大误检率fmax,最小检测率dmin,并推断系统至少需要>(n=logfmaxFmax)>个强分类器组成。

Step2:确定训练系统需要多少人耳样本,多少非人耳样本;假设人耳样本需要p个,非人耳样本需要q个。

Step3:获取初始人耳样本集与非人耳样本集。

Step4:for t=1∶n

(1)训练一个强分类器Ht(x);

(2)组合前t个强分类器H1,H2,…,Ht,对人耳样本集进行验证,淘汰被错误判断的人耳样本(漏判),并修改人耳样本的数量——p的值;

(3)组合前t个强分类器H1,H2,…,Ht,对当前非人耳样本集进行验证,淘汰被正确判断的非人耳样本,并重新获取非人耳样本,以补充非人耳样本集,使其数量重新达到q个。在重新获取非人耳样本过程中,也是组合前t个强分类器对候选非人耳样本进行验证,只有被误判的候选非人耳样本才能被加入到非人耳样本集中。

Step5:保存训练结果。

至此,整个训练过程结束,得到了级联的强分类器。

另外,还有几个需要说明的问题。第一,上述过程中所谓的验证就是利用前t个强分类器组成的临时多层分类器对样本进行检测。第二,在训练过程中,之所以要不断更新非人耳样本集是因为在验证时有一部分非人耳样本会逐渐被筛选掉,并不会通过所有层,被筛选掉的非人耳样本对于下一层的训练已经没有价值了,所以非人耳样本集是需要更新的。

1.3训练强分类器

较为复杂的分类器就是强分类器Ht(x),由若干弱分类器组成。当其中所有弱分类器的加权和大于强分类器的阈值时,Ht(x)=1;小于强分类器的阈值时,Ht(x)=—1。1表示接受,0表示拒绝。如果判断结果为—1,则认为检测目标x非人耳;但如果判断结果为1,不能最终说明检测目标x就是人耳,因为整个多层分类器是由一组强分类器组成的,只有检测目标x被所有强分类器接受,才能确定它是人耳。

下面介绍采用AdaBoost训练一个强分类器的程序实现步骤:

Step1:确定该强分类器的最大误检率fmax,最小检测率dmin

Step2:获取并保存训练样本:

P:表示人耳样本集合叫做P集,人耳样本也叫正例。

N:表示非人耳样本集合叫做N集,非人耳样本也叫负例。

样本可以表示为:(x1,y1),(x2,y2),…,(xm,ym),当yi=1时,xi∈P;当yi=-1时,xi∈N;其中m为样本的总个数。

Step3:计算每个样本窗口内的所有矩形特征值。

Step4:对每个人耳样本赋一个权值w。权值为样本个数的倒数。

Step5:设f为当前强分类器误检率,初值为1;t=1,t为计算强分类器轮数。

Step6:while(f>fmax){

(1)挑选一个矩形特征构成一个弱分类器hi(x),使得该分类器的分类错误相对其它弱分类器来说是最小的;

(2)对于每个人耳样本xi,计算>PV[i]=Σk=1t0hk(xi);>对于每个非人耳样本xj,计算>NV[i]=Σk=1t0hk(xi),>t0表示当前已得到的弱分类器的个数;

(3)对PV数组按从小到大排序:人耳样本个数为p,最低检测率为dmin,那么当前强分类器的阈值即第个元素作为阈值,保证有个人耳样本能通过该阈值;

(4)numfalse=0

for   j=1∶q(非人耳样本个数为q)

  if    then numfalse=numfalse+1

end

f=numfalse/q(当前强分类器的误检率);

(5)更新每个样本的权值;

(6)对样本权值进行归一化;

(7)t=t+1

}

Step7:得到一个强分类器,满足fmax,dmin,阈值为保存训练结果。

至此训练一个强分类器的过程结束。

1.4训练弱分类器

在本系统中,弱分类器与经过筛选得到的矩形特征一一对应,弱分类器的原形是:

>hj=α1fj(x)<θjα2fj(x)θj,>其中x为待检测窗口,fj(x)为计算矩形特征值的函数,θj为通过训练得到的特征值的阈值,也称为弱分类器的阈值。

程序实现弱分类器训练的步骤如下:

Step1:假设样本窗口大小为W×H,在这么大的窗口中存在的矩形特征数可以依照2.1节所示的公式计算出来。对每个样本利用积分图快速计算出所有这些矩形特征值,用一个二维数组存放,记为:Value[i][j],1≤i≤n,n为矩形特征数,1≤j≤m,其中m为样本总个数。

Step2:FAULT=(curlerror+currerror)表示当前分类器的错误率的最小值,初始时:curlerror=1010(称为左错误),currerror=1010(称为右错误)

Step3:for i=1∶n(对于每个特征)

(1)found=0;

(2)for j=1∶meval[j]=Value[i][j](eval存放特征j所在的所有样本上的特征值);

(3)对eval数组按从小到大排序;

(4)for j=1∶m(对每个排序后的样本){

>wl=Σk=1jwk,>>wr=Σk=j+1mwk,>wk是第k个样本的权值;

>wyl=Σk=1jwkyk,>>wyr=Σk=j+1mwkyk,>当第k个样本为人耳样本时yk=+1,否则yk=-1;

curleft=wyl/wl,curright=wyr/wr;

>curlerror=Σk=1jwk[yk-curleft]2,>>currerror=Σk=j+1mwk[yk-curright]2;>

if  (curlerror+currerror)<FAULT then

{FAULT=(curlerror+currerror);

分类器阈值θ=eval[j];

α1=curleft;

α2=curright;

found=1;

 }

}

(5)if found=1 then selection=i,表示特征i被选择;

Step4:得到一个弱分类器,其对应矩形特征序号为selection。

至此,弱分类器的训练过程结束。

在弱分类的训练过程中,分类阈值的选取是一个非常重要的环节。这里对这一环节进行一下分析。通过以上论述可知,数组eval保存一矩形特征在所有样本上的特征值。对eval数组排序后特征值的分布如附图15所示。

这是一个一维的概率分布,并且不存在一个明显的阈值可以完全正确的区分所有的样本,也就是说任何给定的阈值都无法使得该特征所对应的弱分类器能够完全正确地区分人耳样本和非人耳样本。但是,这些特征值的分布还是大致规则的:非人耳样本的特征值相对集中,人耳样本的特征值相对集中,这就可以找到一个大致的阈值将两类的特征值分开。

上述程序实现的过程是这样寻找这个阈值的。假设样本数为m,目标是在eval中寻找一个阈值可以大致把样本分为两类。再假设当前选定的阈值是eval[j](1≤j≤m),计算>wl=Σk=1jwk,>>wr=Σk=j+1mwk,>>wyl=Σk=1jwkyk,>>wyr=Σk=j+1mwkyk,>其中wk是第k个样本的权值,当第k个样本为人耳样本时yk=1,否则yk=-1。对于式子>wylwl=Σk=1jwkykΣk=1jwk,>我们知道wk是正数,yk可正可负,所以>|Σk=1jwkykΣk=1jwk|1,>并且其绝对值越接近1,说明前j个样本的特征值越集中,一个极端情况是,如果前j个样本均为人耳样本,那么wyl/wl值为+1;如果前j个样本均为非人耳样本,那么wyl/wl值为—1。前j个样本的特征值在当前阈值eval[j]左边,于是把curleft=wyl/wl称为左趋近,趋近+1或—1,反映样本在当前阈值eval[j]左边的“集中程度”:如果curleft>0,表明左边人耳样本相对比较集中;如果curleft≤0,表明左边非人耳样本相对比较集中。同理,curright=wyr/wr称为右趋近,反映样本在当前阈值eval[j]右边的“集中程度”:如果curright>0,表明右边人耳样本相对比较集中,如果curright≤0,表明右边非人耳样本相对比较集中。同时,在程序中还设定了>curlerror=Σk=1jwk[yk-curleft]2>与>currerror=Σk=j+1mwk[yk-curright]2>来表示当前阈值左右两边的“不集中的程度”。左边样本“纯度”越高,那么[yk-curleft]2的值越小甚至接近于0,不集中的程度就越低;反之不集中的程度就越高。右边与左边同理。一个最好的阈值,必然使得左右两边的不集中程度同时达到最低,反过来说,如果当前阈值eval[j]能使得左右两边的不集中程度达到最小,那么该矩形特征的阈值就找到了。在阈值确定的前提下,(curlerror+currerror)的值就反映了该阈值对样本的分类能力。

需要说明的是,本人通过研究在以上程序实现的基础上对弱分类器最优分类阈值的选择进行了改进。改进后的程序在对eval数组按从小到大排序后,将eval数组划分为n份,每份r个。然后先按上述方法找出eval[k](k=0,r,2r,…,n)中的最优阈值eval[ki],再从eval[ki-r]到eval[ki+r]这2r个值中找出最终的最优分类阈值。

2检测过程

2.1利用各层分类器检测

经过上述的训练过程,我们得到了一个多层分类器。接着就要利用该多层分类器进行检测,下面分析一下如何编程来实现这一检测过程。

在应用多层分类器对图像检测时,本发明采用以下策略:先用前2个强分类器快速将疑似非人耳窗口排除掉,将疑似人耳窗口留给后n-2个强分类器来确认(假设该多层分类器的层数为n)。检测程序实现的具体步骤如下:

Step1:假设待检测图像为I,大小为W×H。

Step2:当前检测窗口大小为winsizew×winsizeh,初始窗口有winsizew=25,winsizeh=30;窗口放大比例scale=1.2,窗口逐次等比放大。

当W/H≥winsizew/winsizeh时,放大的次数

当W/H<winsizew/winsizeh时,放大的次数

Step3:定义数组mask[W×H],用于存放标记,元素个数和I一样。

Step4:for i=1∶Z{

(1)以winsizew×winsizeh大小的检测窗口遍历I,一共可以得到num个字图像,num=(W-winsizew)×(H-winsizeh);其中检测窗口遍历待检测图片时的步长在PC上实现时采用的是1像素,在DSP系统上实现时为减少计算量而采用了6像素;

(2)将mask[W×H]数组中所有元素清零;

(3)for j=1∶2(检测窗口分2次遍历I){

for k=1:num{

if j=1 then

只用多层分类器的前2层检测第k个子图像。如果检测结果为人脸,那么设置标志:mask[k]=1;

else if mask[k]=1 then

用多层分类器的后n-2层检测第k个子图像(这里假设多层分类器的层数为n)。如果检测结果为人耳,那么将第k个子图像的坐标、大小、当前窗口放大倍数这三个参数保存起来。

}

};

(4)放大检测窗口,使winsizew=winsizew×scale,winsizeh=winsizeh×scale;

(5)矩形特征内两个(或二个)矩形的权值均按>ω=ωwinsizew×winsizeh>更新;

(6)矩形特征内两个(或三个)矩形的左上角坐标,均按照下式进行计算,以第一个矩形为例:(x′1,y′1)=(scale×x1,scale×y1);

(7)矩形特征内各个矩形的长、宽分别乘以scale;

}

Step5:得到初步的检测结果。

在具体用强分类器检测时,假设该强分类器有T个弱分类器。则首先利用积分图像计算出每个弱分类器的特征值,然后求它们的加权和并与强分类器的阈值进行比较。结果大于阈值则检测目标为人耳,反之不是。

2.2利用级联分类器检测

在利用级联分类器检测子图像时:子图像作为输入,多层分类器执行分类判断,输出结果:人耳或非人耳。下面对这个过程进行详细的论述。

Step1:设待检测子图像为x,大小为winsizew×winsizeh;

Step2:计算x的积分图Sum(x),TSum(x);

Step3:设多层分类器的层数为n,本次检测从第start层开始,使用m个强分类器对x进行检测。

Step4:Hi表示第i个强分类器,ht(x)表示Hi中的第t个弱分类器。

Step5:Success=true

Step6:for i=start∶(start+m)

(1)Hi由T个弱分类器组成;

(2)S=0;

(3)for t=1∶T

{利用积分图快速计算ht(x);

S=S+ht(x);

}

(4)if S<Hi的阈值then Success=false,BREAK

Step7:if Success then x为人耳else x为非人耳

然后,按上文中的方案进行检测窗口的合并,将重叠窗口的平均窗口作为最终输出结果。至此,人耳检测系统的构建结束。

3单耳检测策略

分两种检测方式:

(1)用单耳分类器先对待检测的图像进行检测,然后将图像进行镜像,再用同一个单耳分类器对镜像过的进行检测;

(2)分别用左耳分类器和右耳分类器对待检测的图像进行检测。

这两种检测方法都取得了令人满意的检测效果,实际应用时任选其中一种方法即可。

实施例1:基于PC的人耳检测系统

本发明的人耳检测系统各个操作界面分别如附图16、附图17和附图18所示。

利用本发明构建的人耳检测系统,具有高效的性能。在PC机上利用该人耳检测系统可以得到理想的测试结果,测试对象是从中科院侧面人脸库(CAS-PEAL库)、英国曼彻斯特理工大学侧面人脸库(UMIST库)和北京科技大学人耳库(USTB220)中搜集的总共434张带有人耳的图像。检测库图片的挑选原则是:人耳无严重遮挡;人耳图像大小在25×30以上;背景图像的复杂程度适中;要包含旋转一定角度的人耳,以耳平面法线为基准,旋转角度控制在30度以内。

针对人耳具有不对称、沟回纹理多等特点,本发明针对人耳检测提出了如附图6所示的拐角特征。这些拐角特征能够有效地模拟人耳沟回的灰度变化。为验证新增拐角特征的使用情况,本发明利用附图3、附图4、附图5和附图6所示的所有Haar-like特征训练了分类器,并对拐角特征的使用情况进行了统计,如下表:

表1 新增特征数统计表

 

层数012345678910每层特征总数388913182122263728新增特征数01203546335层数11121314151617181920总计每层特征总数27545054353443465162649新增特征数7751184109810111

由统计结果可以发现,新增的四种特征的使用率达到了111/649=17.1%,而在总共可以利用的579224个特征中,它们有95744个,占16.5%。将它们可以使用数量占总数的比例与其实际利用率相比,可以很明显的发现这四个新加的特征得到了非常充分的利用,充分说明了它们的有效性。因此,本改进能够促进分类器性能的提升。

本发明对某个Haar-like特征的最优分类阈值的选取过程中特征最优分类阈值的选取时间进行了测量,测量时以100000次最优分类阈值的选取为一个测量周期,结果统计见表2。

表2 算法改进前后特征最优分类阈值的选取时间比较

从上表可以看出,训练时间有了明显的缩短。如果以最终的分类器有600个弱分类器组成来估计,可以减少51个小时的训练时间。这一改进对分类器的检测性能没有影响,主要作用是缩短了训练时间。

另外,我们对其他的改进方法作了测试,结果表明,本发明中的改进AdaBoost算法构建的人耳检测系统具有比传统人耳检测系统更优越的性能(见表3和表4)。另外,本发明所用到的单耳检测策略确实取得了良好的效果(见表3)。其中在利用逐层放缩的检测窗口检测图像时,本发明所采用的检测窗口移动步长为1像素,充分保证了系统检测性能的准确性。最终,利用本发明所构建的人耳检测系统在三个检测库上的检测效果均达到了97.9%以上的检测率和1.2%以下的误检率。该系统在自选检测库和人耳有遮挡的图片上的检测效果分别见附图19、附图20。

表3 利用本发明构建的左耳检测器与原始左耳检测器检测性能比较

表4 单双耳检测方法性能比较

实施例2:基于DSP的人耳检测系统

人耳识别系统的研究在PC机上进行时,其算法依赖于PC机的特定硬件环境和运行于其上的例如Matlab等专用的应用软件。因此,要实现人耳识别系统最终在人们的日常生活和工作中的大量和广泛的应用,还需解决专用的设备的制造成本、可靠性、功耗等等众多的问题。嵌入式系统本身具有便携、功耗低、计算能力强、运行可靠、利用大量生产制造等特点。于是,将人耳识别技术和嵌入式系统结合起来,发展基于嵌入式平台的人耳识别系统将是一个很好的选择。

将本发明的程序代码移植到了DSP平台上,即可构建嵌入式人耳检测系统。这里基于DSP的人耳检测系统包含有主板、驱动、摄像头、显示器等部分,整个嵌入式系统的构建是基于TI公司的TMS320DM642型DSP处理器。在程序移植过程中,首先要根据芯片设置EMIFA、I2C、缓冲区地址等,然后根据硬件特点对程序进行了一系列改动:第一,为了减少检测程序运行时的计算量,待检图象的范围从720×576(屏幕大小)减少到400×300。本文编程在屏幕上画出矩形框标示。第二,本文利用“查表法”完成了分类器的装载和检测窗口的变化。第三,为了配合实验箱PAL格式视频信号隔行扫描的机制,本发明在积分图像的求取和目标图像矩形框的绘制两个部分的程序上进行了相应的修改。第四,将检测窗口遍历待检图片时的移动步长设为6像素,有效地减少了检测程序运行时的计算量。

最终,本发明成功构建了基于DSP的人耳检测系统,实际检测结果见附图21。

综上所述,本发明能够构建有效的人耳检测器,该检测器在实验中取得了优异的检测结果,具有非常广泛的应用前景。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号