具体实施方式
本发明是在AdaBoost人脸检测原型算法的基础上提出的,在保持原型人脸检测算法的检测准确度的前提下,针对算法中瀑布式级联分类器部分,提出一种具有更高实时性能的人脸检测分类器实现方法。
AdaBoost人脸检测原型算法包含金字塔图像生成、积分图像计算、Harr特征提取及瀑布式级联分类器几个重要计算过程。金字塔图像的生成和积分图像计算较为简单,计算量相对较少;Harr特征计算及瀑布式级联分类器将按24*24大小在金字塔图像集合中进行遍历,据统计,约占总计算量的80%以上。
金字塔图像是对原始图像以一定尺度进行缩小组成待检测图像集合。金字塔图像保证了人脸训练模板对图像中待检人脸的在尺度特性上遍历性。在金字塔图像集合中,以一定的步进规则,AdaBoost人脸检测算法在24*24范围上进行人脸检测,并实现空间位置上遍历性。
如本发明申请人设计的检测系统采用的输入图像为352*288,考虑数据对齐,尺度缩小因子约为0.8,则金字塔图像由13级图像组成,图像大小分别为:352*288、288*232、232*192、184*152、152*120、120*96、96*80、80*64、64*56、56*40、40*32、32*24,各级图像对应搜索步进分别为:3、2、2、2、2、2、1、1、1、1、1、1、1,步进单位为像素,搜索步进方式呈“Z”字形搜索,先水平遍历,再垂直遍历。即将在75232个24*24的图像块上进行人脸检测。通常,人脸信息损失较大的情况下,在352*288的图像上,最多可摆放180张24*24大小人脸,即存在99.7%的冗余计算,此为遍历造成冗余计算,即遍历性冗余计算。
在AdaBoost算法原理中,按24*24完成人脸模型库,选取人脸的不同Harr特征完成简单分类器和强分类器的学习训练。以若干简单分类器组成强分类器,以若干强分类器级联组成瀑布式级联分类器。分类计算过程,以强分类器综合简单分类器分类结果,做出进一步分类检测还是“非人脸”退出的判断。由于分类器的训练完备性和普遍适应性,对于以“个体”出现的待检人脸,需以个体特征在完备的特征集中进行逐一搜索,因此,在分类器内部计算过程也存在较多的冗余计算,此为特征性冗余计算。
本发明的基于AdaBoost算法的人脸检测方法,包括以下步骤:(1)将待测图像利用缩放算法生成金字塔图像集合;(2)在金字塔图像集合中以预定大小步进地利用AdaBoost人脸检测器搜索人脸,以便判定该检测区域内是否存在人脸,AdaBoost人脸检测器包含Harr特征计算及瀑布式级联分类器,瀑布式级联分类器包括强分类器及简单分类器;(3)标定人脸位置,按所在的金字塔图像及缩小比例,换算到与原始图像中,确定所检人脸位置及大小;
其中所述步骤(2)包括以下分步骤:
(2.1)设置分类器人脸判定快速跳转控制和分类器非人脸判定快速退出控制;
(2.2)将强分类器的分类计算合并到简单分类器中,构建成新瀑布式级联分类器;
(2.3)通过新瀑布式级联分类器进行人脸和非人脸的检测:当判定该检测区域为人脸时,跳转进入下一级强分类器进行进一步判别,直至所有强分类器完成判断,如均判为人脸,则最终判断为人脸;当判定该检测区域为非人脸时,则退出瀑布式级联分类器,并给出“非人脸”的判定结果,转入下一检测区域进行检测。
分类器人脸判定快速跳转控制加快了强分类器间的跳转,减少分类器内部计算过程的特征性冗余计算;分类器非人脸判定快速退出控制,加快了非人脸判断退出,以减少分类器内部计算过程的特征性冗余计算。同时,在以上两种控制的基础上,构建了新瀑布式级联分类器,同步实现人脸及非人脸的判定,并根据人脸及非人脸的判断,减少级联分类器的冗余计算,同时,减少遍历性冗余计算,从而提高级联分类器整体实时检测性能,并可以检测更多路监控视频图像中人脸。
优选地,步骤(2.1)中的分类器人脸判定快速跳转控制为:
设α
t_T为当前强分类器中所属简单分类器α
t之和,即
设αt_F(w)为当前强分类器中弱分类器判为人脸的αt之和,
设J(w)为强分类器跳转标志,J(w)=1时,表示当前强分类器已判定为人脸,可跳转至下一强分类器进行进一步判定;
强分类器中α_th为当前强分类器人脸判定阈值,如强分类器分类计算结果达到该阈值,则立即进行跳转;
依据步骤(2.1)中的分类器人脸判定快速跳转控制,强分类器的分类计算合并到简单分类器为:
优选地,步骤(2.1)中的分类器非人脸判定快速退出控制为:
设αt_R(w)为当前强分类器中所属未参与判别弱分类器αt之和,
设α
t_T为当前强分类器中所属简单分类器α
t之和,即
设αt_F(w)为当前强分类器中弱分类器判为人脸的αt之和,
设R(w)为分类器非人脸退出标志,R(w)=1时,表示当前分类器已判定为非人脸,将不需要后级分类器进行进一步分类判别,直接退出;
依据步骤(2.1)中的分类器非人脸判定快速退出控制,强分类器的分类计算合并到简单分类器为:
优选地,步骤(2.2)中的新瀑布式级联分类器为:
设α
t_T为当前强分类器中所属简单分类器α
t之和,即
设αt_F(w)为当前强分类器中弱分类器判为人脸的αt之和,
设αt_R(w)为当前强分类器中所属未参与判别弱分类器αt之和,
设J(w)为强分类器跳转标志,J(w)=1时,进行人脸判定快速跳转,
设R(w)为分类器非人脸退出标志,R(w)=1时,进行非人脸判定快速退出,
22级强分类器所包含的简单分类器级数分别为:
7,15,30,30,50,50,50,100,120,140,160,180,200,200,200,200,200,200,200,200,200,200;
则简单分类器共计有2932级,新瀑布式级联分类器也由2932级组成;
设T1,T2,T3,Λ,T21,T22为各强分类器所属的简单分类器起始级,则新瀑布式级联分类器的2932级为:1,2,3,ΛT1,ΛT2,ΛT3,ΛΛ,ΛT21,ΛT22,Λ2932;则新瀑布式级联分类器为:
下面说明本发明的一个具体实施例。
一、AdaBoost人脸检测算法总体流程为:
1、对于待检测图像352*288,以约0.8比例对图像进行缩小,直至图像接近24*24止,组成金字塔形待测图像集合,如图1所示;该金字塔图像由13级图像组成,图像大小分别为:352*288、288*232、232*192、184*152、152*120、120*96、96*80、80*64、64*56、56*40、40*32、32*24。计算各级图像的积分图和平方积分图。
2、在金字塔形待测图像集合中,按24*24大小,以一定步进规则,使用AdaBoost人脸检测器搜索人脸,如图2所示;各级图像对应搜索步进分别为:3、2、2、2、2、2、1、1、1、1、1、1、1,步进单位为像素,搜索步进方式呈“Z”字型搜索,先水平后垂直遍历,也可采用“И”字型进行遍历搜索,先垂直后水平遍历。AdaBoost人脸检测器包含Harr特征计算及瀑布式级联分类器,完成该24*24区域内是否存在人脸的判断。
根据AdaBoost人脸检测器检测的人脸结果,标定人脸位置,按所在的金字塔图像及缩小比例,换算到与原始图像中,确定所检人脸位置及大小。
二、AdaBoost人脸检测器
AdaBoost人脸检测器主要由积分图像计算、Harr特征计算和瀑布式级联分类器组成。
1、积分图像的计算包含:积分图像及平方积分图像。
对于图像内一点A(x,y),其积分图ii(x,y)为:
对于图像内一点A(x,y),其平方积分图ii2(x,y)为:
其中ii(x′,y′)为图像中像素点(x′,y′)处亮度Y分量,其值域为0~255。通过上面的计算公式,可以看出,积分图像和平方积分图像的计算仅与输入图像Y分量、图像大小有关,因此,该部分计算可独立进行,计算出与输入图像大小相同的积分图像及平方积分图像,为Harr特征计算使用。
2、Harr特征计算,我们选取了5种Harr特征,其计算过程分别为:
Type 0(如图3a所示):
计算方法:BCEF-ABDE=(B+F-C-E)-(A+E-B-D)=D+F-A-C+2(B-E)
Type 1(如图3b所示):
计算方法:BCEF-ABDE=(B+F-C-E)-(A+E-B-D)=D+F-A-C+2(B-E)
Type 2(如图3c所示):
计算方法:CDGH+ABEF-2BCFG=ADEH-3BCFG=A+H-D-E+3(C+F-B-G)
Type 3(如图3d所示):
计算方法:CDGH+ABEF-2BCFG=ADEH-3BCFG=A+H-D-E+3(C+F-B-G)
Type 4(如图3e所示):
计算方法:
ABDE+EFHI-BCEF-DEGH
=A+E-B-D+E+I-H-F+E+G-D-H+E+C-B-F
=4E-2(B+D-H-F)+A+C+G+I
5种Harr特征计算过程中,A、B、C、D、E、F、G、H、I为检测块对应位置的积分图值。
3、瀑布式级联分类器
瀑布式级联分类器为机器学习训练得到,如图4所示,通常由数级强分类器(节点分类器)构成,各个强分类器以级联形式连接。每个强分类器又包含不同级数的简单分类器(弱分类器),简单分类器选取不同的Harr特征进行分类,分类结果经强分类器加权求和得到该级强分类器的分类结果。如未检出人脸特征,则退出,并做出“不是人脸”的判断;如检出人脸特征,将进入下一级强分类器进行进一步的分类判断,直至完成所有分类器的分类判断,即所有强分类器均判定为人脸,则瀑布式级联分类器做出最终判断“该区域为人脸”。
简单分类器,定义为h(x,f,p,s,θ),由一个特征f,阈值θ和指示不等号方向的p组成,简单分类器的分类结果为:
其中s计算为:
me=ii(x+24,y+24)+ii(x,y)-ii(x+24,y)-ii(x,y+24)
sq=ii2(x+24,y+24)+ii2(x,y)-ii2(x+24,y)-ii2(x,y+24)
上面计算式中,f(x)为该简单分类器选定的Harr特征,参数θ和p为训练该简单分类器得到的参数。me、sq为积分图和平方积分图的计算结果。ii(x,y)和ii2(x,y)分别为积分图和平方积分图。
强分类器利用若干个简单分类器进行分类,强分类器可表示为:
其中:
式中,h(x,f,p,s,θ)为简单分类器的分类结果,αt为对应强分类器的模型参数,α_th为该强分类器阈值,at和α_th均是通过大量样本训练得到。
级联分类器在24*24的积分图数据块上完成人脸检测判断。本专利涉及的级联分类器包含22个强分类器(节点分类器),以级联方式组成。各个强分类器包含不同级数的简单分类器,以下为各级强分类器所包含的简单分类器级数:
7,15,30,30,50,50,50,100,120,140,160,180,200,200,200,200,200,200,200,200,200,200
强分类器总计为:22个;简单分类器总计为:2932个。
级联分类器为人脸检测算法的核心部分,图5为级联分类器算法流程示意图。
三、瀑布式级联分类器的改进
如图5所示,在进行人脸检测分类时,需完成强分类器所包含的各简单分类器的分类判断,各个简单分类器分类结果经加权后输入强分类器进行分类判断,并由强分类器做出“退出”或进入“下一级强分类器”的判断。如完成所有22级强分类器分类判断,并无“退出”,则该区域被判为“人脸”。
弱分类器计算公式为:
式中,f(x)为Harr特征,θ为弱分类器训练阈值,s为本检测块的归一化均方根,p为指示不等号方向因子,也是训练参数。
强分类器计算公式为:
其中:
级联分类器中,ε
t被定义为分类器分类最小错误率,通常,应使0<ε
t<0.5,则一定有β
t>1,α
t>0。因此,可知α_th>0,且因h(x,f,p,s,θ)取1或0,则
从上面的分析中,可以看出,简单分类器在分类计算过程中存在“冗余计算”,即强分类器只对h(x,f,p,s,θ)取1的特征进行综合判别。这种“冗余计算”来源于检测算法对各种各样人脸的普遍适应性,即要求分类器的学习训练应具有普遍适应性,则选取的用于检测的Harr特征集应较为完备;在进行人脸检测时,所检人脸相当于“个体”,即部分Harr特征可判定为“人脸”特征,另一部分判定为“非人脸”特征,这些特征将在强分类器中综合并完成最终的判定。可以看出h(x,f,p,s,θ)取1,强分类器的判定将偏向于“人脸”,而h(x,f,p,s,θ)取0时,强分类器的判定将偏向于“非人脸”。因此,可以将“人脸”判定检测和“非人脸”判定检测加入到分类器分类判断中,如已达到“人脸”判定条件,判为“人脸”,则停止,当前强分类器中剩余的简单分类器检测可不必再进行了,直接转入下一级强分类器检测进行进一步检测判别;如已达到判定为“非人脸”的条件,则停止,当前强分类器中剩余的简单分类器检测可不必再进行了,而且后级强分类器检测也不必再进行了,直接退出级联分类器分类检测。因此,我们有如下改进:
1、分类器“人脸”判定快速跳转控制
由上分析,我们将强分类器的分类计算合并到简单分类器中,则有:设α
tT为当前强分类器中所属简单分类器α
t之和,即
设αtF(w)为当前强分类器中弱分类器判为人脸的αt之和
设J(w)为强分类器跳转标志,J(w)=1时,表示当前强分类器已判定为人脸,可跳转至下一强分类器进行进一步判定;
强分类器中α_th为当前强分类器“人脸”判定阈值,如强分类器分类计算结果达到该阈值,则立即进行跳转”;
我们可以将原强分类器及简单分类器分类判别计算改进为:
可以看出,上式是在原简单分类器分类计算的基础上,增加J(w)跳转标志实现至下一强分类器的快速跳转,并将强分类器∑αt×h(x,f,p,s,θ)≥α_th分类判断转化到简单分类器。如强分类器分类计算结果达到阈值α_th,则立即进行跳转,这样,减少了“人脸”判定的部分冗余计算。
2、分类器“非人脸”判定快速退出控制
设αt_R(w)为当前强分类器中所属未参与判别弱分类器αt之和;
设α
tT为当前强分类器中所属简单分类器α
t之和,即
设αtF(w)为当前强分类器中弱分类器判为人脸的αt之和;
设R(w)为分类器“非人脸”退出标志,R(w)=1时,表示当前分类器已判定为“非人脸”,将不需要后级分类器进行进一步分类判别了,可以直接退出;
我们可以将原强分类器及简单分类器分类判别计算改进为:
可以看出,上式是在原简单分类器分类计算的基础上,增加R(w)跳转标志实现级联分类器的快速退出。主要思路为:在简单分类器分类判断中,实现强分类器的判断跟踪;当发现强分类器分类计算结果已不能达到阈值α_th,即已不再可能被判定为“人脸”,则立即退出级联分类器分类判断,这样,减少了“非人脸”判定的部分冗余计算,可转入下一区域开始新瀑布式级联分类器分类判断了。
3、合并分类器“人脸”判定快速跳转控制和“非人脸”判定快速退出控制
从分类器“人脸”判定快速跳转控制及分类器“非人脸”判定快速退出控制的实现过程可以看出,两种控制分别实现了分类器两类判断的快速跳转或退出,在计算方面也可以将其合并,合并之后,新瀑布式级联分类器同时具有了简单分类器和强分类器的功能,并同步实现“人脸”判定检测和“非人脸”判定检测。
两控制合并如下:
设α
t_T为当前强分类器中所属简单分类器α
t之和,即
设αt_F(w)为当前强分类器中弱分类器判为人脸的αt之和;
设αt_R(w)为当前强分类器中所属未参与判别弱分类器αt之和;
设J(w)为强分类器跳转标志,J(w)=1时,进行“人脸”判定快速跳转;
设R(w)为分类器“非人脸”退出标志,R(w)=1时,进行“非人脸”判定快速退出;
22级强分类器所包含的简单分类器级数分别为:
7,15,30,30,50,50,50,100,120,140,160,180,200,200,200,200,200,200,200,200,200,200
则简单分类器共计有2932级,新瀑布式级联分类器(如图6所示)也由2932级组成;
设T1,T2,T3,Λ,T21,T22为各强分类器所属的简单分类器起始级,则新瀑布式级联分类器的2932级为:1,2,3,ΛT1,ΛT2,ΛT3,ΛΛ,ΛT21,ΛT22,Λ2932;
则新瀑布式级联分类器为:
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。