复杂背景图像中的鲁棒人脸检测方法

文档序号:6631663阅读:179来源:国知局
专利名称:复杂背景图像中的鲁棒人脸检测方法
技术领域
复杂背景图像中人脸检测方法属于人脸识别技术领域。
背景技术
人脸检测就是在图像或图像序列中确定人脸的位置、大小等信息。它目前广泛应用于人脸识别、视频监控、智能人机接口等系统中。人脸检测尤其是复杂背景下的人脸检测同时也是一个困难的问题。这是由于外貌、肤色、表情、在三维空间中的运动等人脸本身的原因以及胡须、头发、眼镜、光照等外界因素造成人脸模式类内变化巨大,并且由于背景物体非常复杂,难于与人脸区分开来。
目前人脸检测的主流方法是基于样本统计学习的检测方法。此类方法一般引入了“非人脸”这个类别,通过对收集的样本进行统计学习获得“人脸”类别区别于“非人脸”类别的特征、模型的参数,而不是根据直观印象得到表层规律。这在统计意义上更为可靠,不仅避免了由于观察的不完整、不精确而带来的错误,还可通过增加训练样本扩充检测的范围,提高检测系统的鲁棒性;另外此类方法大多采用由简单到复杂的多层分类器结构,先由结构简单的分类器排除掉绝大部分背景窗口,然后由复杂的分类器对剩余的窗口进行进一步判断,从而达到较快的检测速度。但由于此类方法并没有考虑到实际图像中人脸和非人脸两类模式分类错误风险极不平衡的特点(这是由于图像中人脸出现的先验概率远低于非人脸的先验概率,并且人脸检测主要目的是找出人脸的位置,所以人脸被误分为非人脸的风险远大于非人脸误判为人脸),只采用基于最小分类错误率的方法来训练每一层分类器,通过调整分类器的阈值来达到对人脸较低的错误拒识率(False Rejection Rate,FRR),这样并不能同时达到对非人脸模式较低的错误接受率(False Acceptance Rate,FAR);从而造成分类器层数过多、结构过于复杂、检测速度慢,使算法整体性能下降。针对此类算法存在的缺陷,本发明提出了一种基于风险敏感AdaBoost算法(Cost Sensitive AdaBoost,简称CS-AdaBoost)的人脸检测方法,采用最小化分类风险的原则使训练得到的每一层分类器在保证对人脸模式极低的拒识率的同时,尽可能降低非人脸类别的误接受率,从而以更少的分类器层数、更简单的分类器结构实现复杂背景图像下更高性能的人脸检测,这是目前所有其他文献里没有使用过的方法。

发明内容
本发明的目的在于实现一个能在复杂背景下鲁棒定位人脸的人脸检测器。该人脸检测器的实现包括训练和检测两个阶段。
在训练阶段,首先应该进行样本的采集,包括人脸和非人脸样本的采集,然后对样本进行尺寸和光照的归一化处理;然后利用训练样本,进行微结构特征抽取,得到特征库;然后利用特征库结合CS-AdaBoost算法,训练得到一层人脸/非人脸强分类器;重复以上训练过程,得到结构由简单到复杂的多层分类器;最后把这些分类器级联起来,得到一个完整的人脸检测器。
在检测阶段,首先是按照一定比例连续放缩输入图像,然后在得到的系列图像中判别其中每一个一定尺寸的小窗口(定义输入图像中的一个矩形区域子图像为一个小窗口)。对每一个小窗口,首先进行灰度归一化处理,然后提取其微结构特征,用训练好的人脸检测器对小窗口进行判断,如果任意一层分类器输出低于指定阈值即认为该小窗口为非人脸而不进行后续判断,只有那些通过所有层分类器判断的小窗口被认为是一个人脸。从而得到极高的人脸检测正确率。该方法已经应用于基于人脸的考勤签到系统等中。
本发明由以下几部分组成样本采集与归一化、积分图计算和微结构特征提取、特征选择和分类器设计、多层分类器的级联。
1.样本采集与归一化1.1样本的采集即采用人手工标定的方法,从包含人脸的图片中切割出人脸图像,从不包含人脸的风景图片中随机切割出非人脸图像。人脸图像和非人脸图像分别作为正例样本和反例样本用于训练分类器。采集过程如图2所示。
1.2尺寸归一化将收集好的各尺寸的人脸和非人脸图像归一化为指定尺寸。设原始样本图像为[F(x,y)]M×N,图像宽度为M,高度为N,图像位于第x行第y列的象素点的值为F(x,y)(0≤x<M,0≤y<N);设尺寸归一化后图像为[G(x,y)]W×H,图像宽度为W,高度为H,实验中取W=H=20。这样尺寸归一化可以看成是将源图像点阵[F(x,y)M×N映射成目标图像点阵[G(x,y)]W×H的过程。本发明使用反向投影和线性插值将原始样本图像变换到标准尺寸样本图像,则输入图像[F(x,y)]M×N与归一化后图像[G(x,y)]W×H之间的对应关系为G(x,y)=F(x/rx,y/ry)其中rx和ry分别为x和y方向的尺度变换因子rx=N/H,ry=M/W。
根据上式,输出图像点阵中的点(x,y)对应于输入图像中的点(x/rx,y/ry)。由于x/rx、y/ry的取值一般不为整数,故需要根据附近已知离散点处的值来估计F(x/rx,y/ry)的取值。根据线性插值方法,对于给定(x,y),令x/rx=x0+Δxy/ry=y0+Δy,0≤Δx,Δy<1]]>其中x0=[x/rx],Δx=x/rx-x0y0=[y/ry],Δy=y/ry-y0,]]>[●]为取整函数。插值过程可表示为G(x,y)=F(x0+Δx,y0+Δy)=F(x0,y0)ΔxΔy+F(x0+1,y0)(1-Δx)Δy+F(x0,y0+1)Δx(1-Δy)+F(x0+1,y0+1)(1-Δx)(1-Δy)1.3灰度归一化由于外界光照、成像设备等因素可能导致图像亮度或对比度异常,出现强阴影或反光等情况。所以还需要对几何归一化后的样本进行灰度均衡化处理,改善其灰度分布,增强模式间的一致性。本发明采用灰度均值、方差归一化对样本进行灰度均衡化处理,将样本图片灰度的均值μ和方差σ调整到给定值μ0和σ0。
首先采用下式计算样本图像G(x,y)(0≤x<W,0≤y<H)的均值和方差μ-=1WHΣy=0H-1Σx=0W-1G(x,y)]]>σ‾=1WHΣy=0H-1Σx=0W-1(G(x,y)-μ‾)2]]>然后对每个像素点的灰度值进行如下变换I(x,y)=σ0σ‾(G(x,y)-μ‾)+μ0]]>从而将图像灰度的均值和方差调整到给定值μ0和σ0,完成样本的灰度归一化。
2.微结构特征快速提取本发明采用图5中的五种类型微结构模板来提取人脸和非人脸样本的高维微结构特征每一种微结构特征通过计算模板黑色区域和白色区域内所对应图像中像素灰度和的差值来得到(此处是为了区别两块区域,分别给予不同的颜色,下同),并且模板在图像中的位置以及模板的尺寸可以改变。具体特征提取方式如下定义S(x1,y1;x2,y2)为区域(x1≤x′≤x2,y1≤y′≤y2)内的像素灰度和S(x1,y1;x2,y2)=Σx1≤x′≤x2Σy1≤y′≤y2I(x′,y′)]]>
设微结构模板左上角的像素坐标为(x,y),则如图5所示五种类型微结构(前四种微结构中黑色区域与白色面积相等,第五种类型微结构中黑色区域在白色区域中的分布对称)分别为(a)S(x,y;x+w-1,y+h-1)-S(x+w,y;x+2w-1,y+h-1)(b)S(x,y;x+w-1,y+h-1)-S(x,y+h;x+w-1,y+2h-1)(c)2S(x+w,y;x+2w-1,y+h-1)-S(x,y;x+3w-1,y+h-1)(d)S(x,y;x+2w-1,y+2h-1)-2S(x,y;x+w-1,y+h-1)--2S(x+w,y+h;x+2w-1,y+2h-1)(e)S(x,y;x+w-1,y+h-1)-S(x+2,y+2;x+w-3,y+h-3)由于每一种特征提取只涉及到矩形区域中像素和的计算问题,所以可以利用整幅图像的积分图像(Integral Image)快速得到任意尺度、任意位置的一种微结构特征。
2.1积分图像对于一个图像I(x,y),(x≥0,y≥0),定义其对应的积分图像II(x,y)为从(0,0)到(x,y)范围内的所有像素之和,即II(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′),]]>并且定义II(-1,y)=0,II(x,-1)=0。
由此有S(x1,y1;x2,y2)=II(x2,y2)+II(x1-1,y1-1)-II(x2,y1-1)-II(x1-1,y2)。
即原始图像I(x,y)中任何一个矩形区域中的像素和S(x1,y1;x2,y2)通过积分图经3次加减法可以计算出;同样定义平方积分图像SqrII(x,y)为从(0,0)到(x,y)范围内的所有像素平方之和,即SqrII(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x,y′)·I(x′,y′).]]>其中SqrII(-1,y)=0,SqrII(x,-1)=0。
平方积分图像可用于计算每个矩形区域的方差(见2.3节)。
2.2微结构特征的快速提取由于每一种特征提取只涉及到矩形区域中像素和的计算问题,所以以上任意一种微结构特征可以通过积分图像若干次加减快速计算出,其中第(a)种类型微结构特征的计算公式(图6所示)
g(x,y,w,h)=2·II(x+w-1,y-1)+II(x+2·w-1,y+h-1)+II(x-1,y+h-1)-2·II(x+w-1,y+h-1)-II(x+2·w-1,y-1)-II(x-1,y-1)第(b)种类型微结构特征g(x,y,w,h)=2II(x+w-1,y+h-1)+II(x-1,y-1)-II(x+w-1,y-1)-2H(x-1,y+h-1)-II(x+w-1,y+2h-1)+II(x-1,y+2h-1)第(c)种类型微结构特征g(x,y,w,h)=2II(x+2w-l,y+h-1)+2II(x+w-1,y-1)-2II(x+2w-1,y-1)-2II(x+w-1,y+h-1)-II(x+3w-1,y+h-1)-II(x-1,y-1)+II(x-1,y+h-1)+II(x+3w-1,y-1)第(d)种类型微结构特征g(x,y,w,h)=-II(x-1,y-1)-II(x+2w-1,y-1)-II(x-l,y+2h-1)-4II(x+w-1,y+h-1)+2II(x+w-1,y-1)+2II(x-1,y+h-1)-II(x+2w-1,y+2h-1)+2II(x+2w-1,y+h-1)+2II(x+w-1,y+2h-1)第(e)种类型微结构特征g(x,y,w,h)=II(x+w-1,y+h-1)+II(x-1,y-1)-II(x+w-1,y-1)-II(x-1,y+h-1)-II(x+w-3,y+h-3)-II(x+1,y+1)+II(x+1,y+h-3)+II(x+w-1,y+1)改变参数x,y,w,h可以提取不同位置、不同尺度的特征。对于一个20×20像素的样本图像,共可得到92267个五种类型的微结构特征,组成该样本的特征矢量FV(j),1≤j≤92267。
2.3特征的归一化为了减轻光照对于人脸检测的影响,需要对每一个20×20像素样本图像进行灰度均值和方差的归一化,所以首先要快速计算出小窗口的均值μ和方差σ,然后对每一维特征进行归一化,其中的20×20像素小窗口区域(x0≤x′≤x0+19,y0≤y′≤y0+19)内的像素灰度和的μ和σ分别为(如图6所示)μ=[II(x0+19,y0+19)+II(x0-1,y0-1)-II(x0-1,y0+19)-II(X0+19,y0-1)]/400σ={[SqrII(x0+19,y0+19)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+19)-SqrII(x0+19,y0-1)]/400-μ2}1/2对每一维微结构特征可以进行如下的归一化
FV(j)=σ0σ‾FV‾(j)]]>对于一个20×20像素的样本图像,共得到92267维微结构特征FV(j),1≤j≤92267。
3.特征选择和分类器设计为达到足够快的检测速度,一个人脸检测器必须采用分层结构(如图7所示),由多层结构的从简单到复杂的强分类器级联起来构成。先由结构简单的强分类器排除掉图像中的背景窗口,然后由结构复杂的强分类器对余下窗口进行判断(此处的强分类器是指在训练集上达到足够高性能的分类器;下文中的弱分类器是指在训练集上错误率略低于0.5的分类器)。
本发明使用CS-AdaBoost算法训练每层强分类器。CS-AdaBoost算法是一种弱分类器集成算法,可以将弱分类器组合成在训练集上的强分类器;且CS-AdaBoost算法中区别对待两类分类错误带来的风险,使训练集上的总分类错误风险最小化。对于人脸检测问题,就是使训练得到的强分类器在保证人脸类别上的足够低的分类错误(FRR)的基础上同时尽量降低非人脸类别的分类错误(FAR)。
3.1弱分类器的构造本发明中弱分类器是使用一维特征构造的树分类器hj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>其中sub是一个20×20像素的样本,gj(sub)表示从该样本提取得到的第j个特征,θj是第j个特征对应的判决阈值(该阈值通过统计所有采集的人脸和非人脸样本的第j个特征使得人脸样本的FRR满足规定的要求来得到),hj(sub)表示使用第j个特征构造的树分类器的判决输出。这样每个弱分类器只需要比较一次阈值就可以完成判决;共可得到92267个弱分类器。
3.2基于CS-AdaBoost算法的强分类器设计将CS-AdaBoost算法结合上述弱分类器构造方法用于训练人脸/非人脸强分类器。训练步骤如下(记训练样本集L={(subi,li)},i=1,...,n,li=0,1是样本图像subi的类别标号,分别对应非人脸类别和人脸类别,其中人脸样本nface个,非人脸样本nnonface个)3.2.1参数的初始化训练样本误分类风险的初始化。对于每个人脸样本的误分类风险C(i)=2cc+1,]]>对每个非人脸样本的误分类风险C(i)=2c+1]]>(c是人脸类别是非人脸类别的误分类风险倍数,c值应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表1);训练样本权重的初始化。初始每个样本的权重为D1(i)=(c+1)·C(i)2c·nface+2·nnonface;]]>选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表1;统计样本集上每维特征的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号,1≤j≤92267)Fmax(j)=max1≤i≤nFVi(j),Fmin(j)=min1≤i≤nFVi(j);]]>3.2.2重复以下过程T次(t=1,...,T)3.2.2.1使用第j个特征(1≤j≤92267)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>3.2.2.2令ϵt=argmin1≤j≤92267ϵj,]]>并将其对应的弱分类器作为hj;3.2.2.3计算参数αt=12ln(1-ϵtϵt);]]>3.2.2.4更新样本的权重Dt+1(i)=Dt(i)exp(-αtliht(subi))exp(λαtli)Zt,]]>其中λ=c-1c+1,]]>i=1....,n,Zt=Σi=1nDt(i)exp(-αtliht(subi))exp(λαtli).]]>3.2.3输出最后的强分类器 3.3多层强分类器的级联由于单层强分类器很难同时实现高分类速度,极低的FRR和极低的FAR等目标,所以整个人脸检测器必须采用分层结构,由简单到复杂将多层强分类器级联起来,如图7所示。在检测时只要某个图像窗口不能通过其中任何一层,可立即排除掉不进行后续的判断,否则由后续更复杂的强分类器进行进一步的判断。;所以对于明显不像人脸的窗口图像,在前几级就可被排除,无需后续计算,从而大大节省了计算量。
使用11580个人脸样本和2000000张非人脸样本作为训练样本集,多层强分类器级联的具体训练步骤如下(1)初始化i=1;定义每层强分类器的训练目标是在人脸训练集上FRR≤0.02%,在非人脸训练集上FAR≤60%;定义整个人脸检测器在人脸训练集上的目标FRR≤0.5%,在非人脸训练集上的目标FAR≤3.2×10-6,其中FAR和FRR的定义如下FAR=被判别为人脸的非人脸样本个数÷非人脸样本总数×100%FRR=被判别为非人脸的人脸样本个数÷人脸样本总数×100%(2)使用训练样本集采用3.2节中的方法训练第i层强分类器;(3)用训练得到的前i层分类器对样本集进行检测;(4)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(2)继续进行训练;否则停止训练。
最后训练得到的人脸检测器包括19层强分类器,共使用了3139个弱分类器。整个检测器在人脸验证集上的FRR约为0.15%,在非人脸训练集上FAR约为3.2×10-6。表1给出其中若干层分类器的训练结果。
表1 一些人脸/非人脸强分类器训练结果

在检测时如果一个窗口通过所有层分类器判决,则认为该窗口包含一个人脸。
本发明的特征在于,它是一种能够在复杂背景和光照下鲁棒地检测各种人脸的技术,并且在标准视频中能够达到实时的检测速度。它首先对收集到的样本进行尺寸归一化和光照归一化,以最大限度地消除输入样本因光照和尺寸的不同而造成的类内差异,然后高效率地提取能很好区别人脸与非人脸模式结构特点的微结构特征,在此基础上利用CS-AdaBoost算法训练得到具有极低FRR和极低FAR的强分类器,然后把多层强分类器级联成一个完整的人脸检测器,得到最终的人脸位置。
在由图像采集设备和计算机组成的系统中,本检测方法包括训练阶段和检测阶段。其中训练阶段依次含有以下步骤1.样本的采集利用摄像头、数码相机、扫描仪等设备采集图像,并将其中的人脸人工标定切割出来,建立人脸训练样本数据库;从不包含人脸的风景图片中随机切割出非人脸训练图像。共得到11580个人脸样本和2000000张非人脸样本作为训练样本集2.归一化处理,包含样本光照和大小的线性归一化(2.1)尺寸归一化设原始样本图像为[F(x,y)]M×N,图像宽度和高度分别为M和N,尺寸归一化后为[G(x,y)]W×H,实验中取W=H=20。使用反向投影和线性插值从原始样本图像得到归一化后样本图像,则输入图像与归一化后图像之间的对应关系有G(x,y)=F(x/rx,y/ry)其中rx和ry分别为x和y方向的尺度变换因子rx=N/H,ry=M/W。由于x/rx、y/ry的取值一般不为整数,故需要根据附近已知离散点处的值来估计F(x/rx,y/ry)的取值。本发明采用线性插值方法。对于给定(x,y),令x/rx=x0+Δxy/ry=y0+Δy,0≤Δx,Δy<1]]>其中x0=[x/rx],Δx=x/rx-x0y0=[y/ry],Δy=y/ry-y0,]]>[●]为取整函数,可得G(x,y)=F(x0+Δx,y0+Δy)=F(x0,y0)ΔxΔy+F(x0+1,y0)(1-Δx)Δy+F(x0,y0+1)Δx(1-Δy)+F(x0+1,y0+1)(1-Δx)(1-Δy)。
(2.2)灰度归一化对尺寸归一化后的样本图像G(x,y)的每个像素的灰度进行如下变换,将均值μ和方差σ调整到给定值μ0和σ0,得到样本图像I(x,y)I(x,y)=σ0σ‾(G(x,y)-μ‾)+μ0.]]>
其中μ‾=1WHΣy=0H-1Σx=0W-1G(x,y),σ‾=1WHΣy=0H-1Σx=0W-1(G(x,y)-μ‾)2;]]>3.样本特征库的获取计算出积分图以快速提取微结构特征,它依次含有以下步骤(3.1)计算每个样本的积分图根据定义使用II(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)]]>计算每个样本对应的积分图II(x,y),并且有II(-1,y)=0,II(x,-1)=0。
(3.2)微结构特征库的提取利用每一种微结构特征的定义以及以上积分图快速提取每一个样本对应的92267个特征,从而分别构成人脸样本的特征库和非人脸样本的特征库。
4.分类器设计用以上训练样本集训练以及CS-AdaBoost算法训练每一层人脸/非人脸强分类器,并将多层强分类器级联起来组成一个完整的人脸检测器。包括以下步骤(4.1)初始化i=1;定义每层强分类器的训练目标是在人脸训练集上FRR≤0.02%,在非人脸训练集上FAR≤60%;定义整个人脸检测器在人脸训练集上的目标FRR≤0.5%,在非人脸训练集上的目标FAR≤3.2×10-6;(4.2)训练第i层强分类器;(4.3)用训练得到的前i层分类器对样本集进行检测;(4.4)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(4.2)继续进行训练;否则停止训练。
其中步骤(4.2)依次含有以下步骤(4.2.1)参数的初始化训练样本误分类风险的初始化。对于每个人脸样本的误分类风险C(i)=2cc+1,]]>对每个非人脸样本的误分类风险C(i)=2c+1]]>(c是人脸类别是非人脸类别的误分类风险倍数,c值应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表1);训练样本权重的初始化。初始每个样本的权重为D1(i)=(c+1)·C(i)2c·nface+2·nnonface;]]>选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表1);
统计样本集上每维特征的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号,1≤j≤92267)Fmax(j)=max1≤i≤nFVi(j),Fmin(j)=min1≤i≤nFVi(j);]]>(4.2.2)重复以下过程T次(t=1,...,T)(4.2.2.1)使用第j个特征(1≤j≤92267)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>(4.2.2.2)令ϵtargmin1≤j≤92267ϵj,]]>并将其对应的弱分类器作为hj;(4.2.2.3)计算参数αt=12ln(1-ϵtϵt);]]>(4.2.2.4)更新样本的权重Dt+1(i)=Dt(i)exp(-αtliht(subi))exp(λαtli)Zt,]]>其中λ=c-1c+1,]]>i=1,...,n,Zt=Σi=1nDt(i)exp(-αtliht(subi))exp(λαtli).]]>(4.2.1)输出最后的强分类器 由以上各个步骤可以训练得到一个完整的人脸检测器。
在检测阶段,该发明采用以下步骤来判断一张输入图像中是否包含人脸(一个实际的检测过程如图)(1)输入图像的采集利用摄像头、数码相机、扫描仪等设备采集图像。
(2)输入图像的放缩及其图像中每一个小窗口的快速判断为检测不同尺寸的人脸,采用前文使用的线性插值方法按照一定比例连续缩小12次输入图像(本发明采用1.25的比例),共得到由13个不同尺寸的输入图像,分别判断每张输入图像中所有的20×20像素的小窗口,这样可以检测尺寸从20×20像素到280×280像素的人脸。具体来说包括以下步骤(2.1)输入图像的放缩采用前文使用的线性插值方法按比例q=1.25连续缩小12次输入图像I(x,y)得到输入图像序列{Ii(x,y)}(i=0,…,12);
(2.2)积分图像的计算使用上文迭代公式分别计算每个图像Ii(x,y)所对应的积分图像IIi(x,y)和平方积分图像SqrIIi(x,y),(i=0,…,9);(2.3)小窗口的穷举判断从每幅图像Ii(x,y)的左上角开始穷举判别所有20×20像素尺寸的小窗口,对任一个小窗口[x0,y0;x0+19,y0+19]的处理步骤如下(2.3.1).利用整幅图像的积分图IIi(x,y)和平方积分图SqrIIi(x,y)计算小窗口的均值μ和方差σ;μ=[IIi(x0+19,y0+19)+IIi(x0-1,y0-1)-IIi(x0-1,y0+19)-IIi(x0+19,y0-1)]/400σ={[SqrIIi(x0+19,y0+19)+SqrIIi(x0-1,y0-1)-SqrIIi(x0-1,y0+19)-SqrIIi(x0+19,y0-1)]/400-μ2}1/2(2.3.2).利用前文介绍方法快速提取该小窗口的微结构特征,并进行特征归一化处理;(2.3.3).采用训练好的多层人脸/非人脸强分类器对小窗口进行判断;如果通过所有层强分类器的判断,则认为该小窗口包含一个人脸,输出其位置;否则抛弃掉该小窗口,不进行后续处理;利用以上步骤可以快速鲁棒地检测一张输入图像中的所有人脸。
为验证本发明的有效性,我们在多个公开数据库上进行了实验,并给出一个具体的实现例子。
在CMU测试集上我们将本发明的性能与目前世界公认最好算法的性能进行了比较。CMU测试集共包含130张具有复杂背景的图片,507个人脸。实验中对图像按1.25的比例进行最多13次缩放,共搜索判断了71040758个图像窗口。比较结果见表2,可以看出本文算法总体性能优于Viola[Viola P,Jones M.Rapid object detection using a boosted cascadeof simple features.Proc on Computer Vision Pattern Recognition,2001]、Schneiderman[Schneiderman H,Kanade T.Probabilistic modeling of local appearanceand spatial relationships for object recognition.Proc.on CVPR,1998]、Rowley[RowleyH A,Baluja S,and Kanade T.Neural network-based face detection.IEEE Transactionson Pattern Analysis and Machine Intelligence,1998,20(1)23-38]等方法的性能,特别是在低虚警的情况下,例如10个虚警时,本文算法的人脸检测率为90.1%,比其他算法的检测率高7%~14%,远优于其他算法。其中与Viola的基于常规AdaBoost算法得到的检测器相比,我们的人脸检测器使用了19层强分类器3139个弱分类器,而其使用了38层强分类器6000余个弱分类器,我们的检测器在结构上远比其简单,所以本发明具有更优异的性能和更快的检测速度。对于386×288的标准视频图像,采用本文算法可以达到18帧/秒以上的检测速度(PIII1.8GHZ主频,512M内存)。
表2与其它检测方法在CMU正面直立人脸测试集上的性能比较 另外在BANCA数据库上还与Identix公司的著名产品FaceIT的检测性能进行了比较。BANCA数据库包括6540张具有复杂背景和光照的图片,每张图片中包含一张正面直立人脸,人脸的俯仰变化较大。本发明的正确检测率为98.8%,FaceIT的正确检测率为94.9%;在交由第三方-中国航天信息公司在其收集的每张图像包含一张人脸的图像集上进行的测试中,本文算法的检测正确率为98.6%,FaceIT的检测正确率为98.0%。


图1一个典型的人脸检测系统的硬件构成。
图2训练样本的获取过程。
图3获得的典型人脸样本示例。
图4人脸检测系统的构成。
图5五种微结构特征模板。
图6积分图的计算和微结构特征的提取示例。
图7多级强分类器的级联。
图8强分类器的训练过程。
图9一张图像中人脸的实际检测过程示例。
图10基于本算法的人脸识别签到系统。
具体实施例方式
在实现一个人脸检测系统时,首先应该通过收集足够多的样本训练得到人脸检测器,然后就可使用人脸检测器对任意输入图像进行检测。整个系统的硬件结构如图1所示,系统的训练过程和检测过程如图4所示,下面详细介绍系统的各个部分A)训练系统的实现A.1训练样本的获取利用摄像头、数码相机、扫描仪等设备采集图像,将其中的人脸人工标定切割出来,建立人脸训练样本数据库;而非人脸训练样本则是从不包含人脸的风景图片等中随机割取。在本例中共收集到使用11580个人脸样本和2000000张非人脸样本作为训练集。
A.2样本归一化A.2.1尺寸归一化设原始样本图像为[F(x,y)]M×N,图像宽度和高度分别为M和N,尺寸归一化后为[G(x,y)]W×H,实验中取W=H=20。使用反向投影和线性插值从原始样本图像得到归一化后样本图像,则输入图像与归一化后图像之间的对应关系有G(x,y)=F(x/rx,y/ry)其中rx和ry分别为x和y方向的尺度变换因子rx=N/H,ry=M/W。对于给定(x,y),令x/rx=x0+Δxy/ry=y0+Δy,0≤Δx,Δy<1]]>其中x0=[x/rx],Δx=x/rx-x0y0=[y/ry],Δy=y/ry-y0,]]>[●]为取整函数,可得G(x,y)=F(x0+Δx,y0+Δy)=F(x0,y0)ΔxΔy+F(x0+1,y0)(1-Δx)Δy+F(x0,y0+1)Δx(1-Δy)+F(x0+1,y0+1)(1-Δx)(1-Δy)。
A.2.2光照归一化对尺寸归一化后的样本图像G(x,y)的每个像素的灰度进行如下变换,将均值μ和方差σ调整到给定值μ0和σ0,得到样本图像I(x,y)I(x,y)=σ0σ‾(G(x,y)-μ‾)+μ0.]]>其中μ‾=1WHΣy=0H-1Σx=0W-1G(x,y),σ‾=1WHΣy=0H-1Σx=0W-1(G(x,y)-μ‾)2;]]>
A.3样本特征库的获取A.3.1样本积分图的计算根据定义使用II(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)]]>计算每个样本对应的积分图II(x,y),并且有II(-1,y)=0,II(x,-1)=0。
A.3.2微结构特征库的提取利用每一种微结构特征的定义以及以上积分图快速提取每一个样本对应的92267个特征,分别进行归一化,从而分别构成人脸样本的特征库和非人脸样本的特征库。
A.4人脸检测器的训练用以上训练样本集训练以及CS-AdaBoost算法训练每一层人脸/非人脸强分类器,并将多层强分类器级联起来组成一个完整的人脸检测器。包括以下步骤A.4.1初始化i=1;定义每层强分类器的训练目标是在人脸训练集上FRR≤0.02%,在非人脸训练集上FAR≤60%;定义整个人脸检测器在人脸训练集上的目标FRR≤0.5%,在非人脸训练集上的目标FAR≤3.2×10-6;A.4.2训练第i层强分类器;A.4.3用训练得到的前i层分类器对样本集进行检测;A.4.4如果FRR、FAR未达到预定值,则i←i+1,返回步骤(4.2)继续进行训练;否则停止训练。
前面所述的步骤A.4.2依次含有以下步骤A.4.2.1参数的初始化训练样本误分类风险的初始化。对于每个人脸样本的误分类风险C(i)=2cc+1,]]>对每个非人脸样本的误分类风险C(i)=2c+1]]>(c是人脸类别是非人脸类别的误分类风险倍数,c值应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表1);训练样本权重的初始化。初始每个样本的权重为D1(i)=(c+1)·C(i)2c·nface+2·nnonface;]]>选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表1);统计样本集上每维特征的极大值Fmax(i)和极小值Fmin(j)(其中j为特征序号,1≤j≤92267)Fmax(j)=max1≤i≤nFVi(j),Fmin(j)=min1≤i≤nFVi(j);]]>
A.4.2.2重复以下过程T次(t=1,...,T)A.4.2.2.1使用第j个特征(1≤j≤92267)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>A.4.2.2.2令ϵtargmin1≤j≤92267ϵj,]]>并将其对应的弱分类器作为ht;A.4.2.2.3计算参数αt=12ln(1-ϵtϵt);]]>A.4.2.2.4更新样本的权重Dt+1(i)=Dt(i)exp(-αtliht(subi))exp(λαtli)Zt,]]>其中λ=c-1c+1,]]>i=1,…,n,Zt=Σi=1nDt(i)exp(-αtliht(subi))exp(λαtli).]]>A.4.2.3输出最后的强分类器 B)检测系统的实现在检测阶段,该发明包括以下步骤B.1图像的采集利用摄像头、数码相机、扫描仪等设备采集图像。
B.2输入图像金字塔的构成以及积分图像的计算为检测不同尺寸的人脸,采用前文使用的线性插值方法按照一定比例连续缩小12次输入图像(本发明采用1.25的比例),共得到由13个不同尺寸的输入图像,分别判断每张输入图像中的每一个20×20像素的小窗口(定义输入图像中的一个矩形区域子图像为一个小窗口),这样可以检测尺寸从20×20像素到280×280像素的人脸。具体来说包括以下步骤B.2.1输入图像的放缩采用前文使用的线性插值方法按比例q=1.25连续缩小12次输入图像I(x,y)得到输入图像序列{Ii(x,y)}(i=0,…,12);B.2.2积分图像的计算使用上文迭代公式分别计算每个图像Ii(x,y)所对应的积分图像IIi(x,y)和平方积分图像SqrIIi(x,y),(i=0,…,9);B.2.3小窗口的穷举判断从每幅图像Ii(x,y)的左上角开始穷举判别所有20×20像素尺寸的小窗口,对任一个小窗口[x0,y0;x0+19,y0+19]的处理步骤如下B.2.3.1利用整幅图像的积分图IIi(x,y)和平方积分图SqrIIi(x,y)计算小窗口的均值μ和方差σ;μ=[IIi(x0+19,y0+19)+IIi(x0-1,y0-1)-IIi(x0-1,y0+19)-IIi(x0+19,y0-1)]/400σ={[SqrIIi(x0+19,y0+19)+SqrIIi(x0-1,y0-1)-SqrIIi(x0-1,y0+19)-SqrIIi(x0+19,y0-1)]/400-μ2}1/2B.2.3.2利用前文介绍方法快速提取该小窗口的微结构特征,并进行特征归一化处理;B.2.3.3采用训练好的多层人脸/非人脸强分类器对小窗口进行判断;如果通过所有层强分类器的判断,则认为该小窗口包含一个人脸,输出其位置;否则抛弃掉该小窗口,不进行后续处理;利用以上步骤可以快速鲁棒地检测一张输入图像中的所有人脸。
实施例1基于人脸的识别签到系统(如图10)人脸认证是近来受到广泛关注的生物特征认证技术中最友好的一种认证方式,旨在利用人脸图像进行计算机自动个人身份认证,以代替传统的密码、证件、印章等身份认证方式,具有不易伪造、不会丢失以及方便等优点。本系统利用人脸信息来对人身份进行自动验证。其中使用的人脸检测模块是本文的研究成果。此外本系统还参加了ICPR2004组织的FAT2004竞赛。此次竞赛共有包括来自美国的Carnegie Mellon大学、德国的Neuroinformatik研究所、英国的Surrey大学等11个学术和商业机构的13个人脸识别算法参加。本实验室所提交的系统在三个评价指标上都比第二名以低约50%错误率的结果获得第一名。本文的研究成果应用在本实验实所提交系统的人脸检测模块中,从而保证了系统的总体性能居于世界先进水平。
综上所述,本发明能够在具有复杂背景的图像中鲁棒地检测人脸,在实验中获得了优异的检测结果,具有非常广泛的应用前景。
权利要求
1.复杂背景图像中的鲁棒人脸检测方法,其特征在于,该方法是一种基于人脸和非人脸模式的分类错误风险敏感分类器的统计学检测方法,该方法首先对收集到的样本进行尺寸归一化和光照归一化,以最大限度地消除输入样本因光照和尺寸的不同而造成的类内差异,然后高效率地提取能很好反映人脸模式结构特点的微结构特征,在此基础上利用CS-AdaBoost算法选择出最具鉴别性的特征组成具有极低误拒识率和极低误接受率的强分类器,然后把多层强分类器级联成一个完整的人脸检测器,最后使用后处理算法把检测到的人脸候选进行归并处理得到最终的人脸位置;在由图像采集设备和计算机组成的系统中,本检测方法包括训练阶段和检测阶段;其中训练阶段依次含有以下步骤步骤1.样本的采集利用包含摄像头、数码相机、扫描仪在内的任一种设备采集图像,并将其中的人脸人工标定切割出来,建立人脸训练样本数据库;从不包含人脸的风景图片中随机切割出非人脸训练图像;共得到11580个人脸样本和2000000张非人脸样本作为训练样本集;步骤2.归一化处理,包含样本光照和大小的线性归一化;步骤2.1尺寸归一化,把步骤1得到的人脸和非人脸图像归一化为指定尺寸;设原始样本图像为[F(x,y)]M×N,图像宽度和高度分别为M和N,尺寸归一化后为[G(x,y)]W×H,实验中取W=H=20;使用反向投影和线性插值从原始样本图像得到归一化后样本图像,则输入图像与归一化后图像之间的对应关系有G(x,y)=F(x/rx,y/ry)其中rx和ry分别为x和y方向的尺度变换因子rx=N/H,ry=M/W;由于x/rx、y/ry的取值一般不为整数,故需要根据附近已知离散点处的值来估计F(x/rx,y/ry)的取值;本发明采用线性插值方法;对于给定(x,y),令x/rx=x0+Δxy/ry=y0+Δy,0≤Δx,Δy<1]]>其中x0=[x/rx],Δx=x/rx-x0y0=[y/ry],Δy=y/ry-y0,]]>[·]为取整函数,可得G(x,y)=F(x0+Δx,y0+Δy)=F(x0,y0)ΔxΔy+F(x0+1,y0)(1-Δx)Δy;+F(x0,y0+1)Δx(1-Δy)+F(x0+1,y0+1)(1-Δx)(1-Δy)步骤2.2灰度归一化对尺寸归一化后的样本图像G(x,y)的每个像素的灰度进行如下变换,将均值μ和方差σ调整到给定值μ0和σ0,得到样本图像I(x,y)I(x,y)=σ0σ‾(G(x,y)-μ‾)+μ0.]]>其中μ‾=1WHΣy=0H-1Σx=0W-1G(x,y),σ‾=1WHΣy=0H-1Σx=0W-1(G(x,y)-μ‾)2;]]>步骤3.样本特征库的获取计算出积分图以快速提取微结构特征,它依次含有以下步骤步骤3.1计算每个样本的积分图根据定义使用II(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)]]>计算每个样本对应的积分图II(x,y),并且有II(-1,y)=0,II(x,-1)=0;步骤3.2微结构特征库的提取设定下述五种类型微结构模板来把取人脸样本的高维微结构特征,每一种微结构特征通过计算模板黑色区域和白色区域内所对应图像中像素灰度和的差值来得到,所述微结构特征用g(x.y.w.h)表述,对于所述五种类型微结构特征向量,分别表示如下(a)类黑色区域和白色区域左右对称且面积相等用w其中各区域的宽,h表示其中各区域的高g(x,y,w,h)=2·II(x+w-1,y-1)+II(x+2·w-1,y+h-1)+II(x-1,y+h-1)-2·II(x+w-1,y+h-1)-II(x+2·w-1,y-1)-II(x-1,y-1)(b)类黑色区域和白色区域上下对称且面积相等,w、h的定义与(a)类相同g(x,y,w,h)=2II(x+w-1,y+h-1)+II(x-1,y-1)-II(x+w-1,y-1)-2II(x-1,y+h-1)-II(x+w-1,y+2h-1)+II(x-1,y+2h-1)(c)类在水平方向,黑色区域位于两块白色区域之间,且黑色区域和每块白色区域的面积相等,w、h的定义与(a)类相同g(x,y,w,h)=2II(x+2w-1,y+h-1)+2II(x+w-1,y-1)-2II(x+2w-1,y-1)-2II(x+w-1,y+h-1)-II(x+3w-1,y+h-1)-II(x-1,y-1)+II(x-1,y+h-1)+II(x+3w-1,y-1)(d)类两块黑色区域分别处于第一象限和第三象限,而两块白色区域分别处于,且每块黑色区域和每块白色区域的的面积相等w、h的定义与(a)类相同g(x,y,w,h)=-II(x-1,y-1)-II(x+2w-1,y-1)-II(x-1,y+2h-1)-4II(x+w-1,y+h-1)+2II(x+w-1,y-1)+2II(x-1,y+h-1)-II(x+2w-1,y+2h-1)+2II(x+2w-1,y+h-1)+2II(x+w-1,y+2h-1)(e)类黑色区域位于白色区域有中央,且黑色区域的分布对称且黑色区域的上、下两边、左、右两边分别距离白色区域的上、下两边、左、右两边各为2个像素的距离,w、h分别表示白色区域周框的宽和高g(x,y,w,h)=II(x+w-1,y+h-1)+II(x-1,y-1)-II(x+w-1,y-1)-II(x-1,y+h-1)-II(x+w-3,y+h-3)-II(x+1,y+1)+II(x+1,y+h-3)+II(x+w-1,y+1)对于一个20×20像素的样本图像参数x.y.w.h后共有92267个,分布于所述五种类型中的微结构特征,组成该样本的特征点是FV(j),1≤j≤92267;步骤3.3特征的归一化,即对每一个像素样本图像进行灰度均值和方差的归一化设每一个20×20像素小窗口区域,即(x0≤x′≤x0+19,y0≤y′≤y0+19)内的像素灰度和的内值为μ,方差为σ,则μ=[II(x0+19,y0+19)+II(x0-1,y0-1)-II(x0-1,y0+19)-II(x0+19,y0-1)]/400σ={[SqrII(x0+19,y0+19)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+19)-SqrII(x0+19,y0-1)]/400-μ2}1/2接着对每个微结构特征作如下归一化FV(j)=σ0σ‾FV‾(j)]]>对于一个20×20像素的样本图像,共得到92267维微结构特征FV(j),1≤j≤92267步骤4.特征选择和分类器设计用以上训练样本集训练以及CS-AdaBoost算法训练每一层人脸/非人脸强分类器,并将多层强分类器级联起来组成一个完整的人脸检测器。包括以下步骤步骤4.1初始化i=1;定义每层强分类器的训练目标是在人脸训练集上FRR≤0.02%,在非人脸训练集上FAR≤60%;定义整个人脸检测器在人脸训练集上的目标FRR≤0.5%,在非人脸训练集上的目标FAR≤3.2×10-6;步骤4.2训练第i层强分类器;步骤4.3用训练得到的前i层分类器对样本集进行检测,并计算FRR、FARFAR=被判别为人脸的非人脸样本个数÷非人脸样本总数×100%FRR=被判别为非人脸的人脸样本个数÷人脸样本总数×100%步骤4.4如果FRR、FAR未达到步骤4.1设定的预定值,则i←i+1,返回步骤4.2继续进行训练;否则停止训练;其中步骤4.2依次含有以下步骤步骤4.2.1参数的初始化训练样本误分类风险的初始化;对于人脸样本的误分类风险Ci=2cc+1,]]>对非人脸样本的误分类风险Ci=2c+1,]]>c是人脸类别是非人脸类别的误分类风险倍数,c值应大于1且随着强分类器层数的增多逐渐减小接近于1;训练样本权重的初始化;初始每个样本的权重为D1(i)=CiΣjCj;]]>选择迭代次数T,T即为希望使用的弱分类器的个数,T应随着强分类器层数的增多逐渐增多;统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j),其中j为特征序号,1≤j≤92267;步骤4.2.2重复以下过程T次,t=1,...,T步骤4.2.2.1使用第j个特征,1≤j≤92267)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>弱分类应用hj(sub)表示,简称hjhj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>其中sub是一个20×20像素的样本,gj(sub)是从该样本把取得到的第j个特征;θj是第j个特征对左右的判决阈值,为设定值(该阈值通过统计所有采集的人脸和非人脸样本的第j个特征使得人脸样本的FRR满足规定的要求来得到);hj(sub)是使用第j个特征构造的树分类器的判决输出,相反地,可得到92267个弱分类器;li=o.l是样本图像subi的类别标号,分别对应非人脸类别和人类脸别,其中人脸样本nface个,非人脸样本nnonface个,共同构成训练样本集L={(subi,li)},i=1,...,n,li=0,1;步骤4.2.2.2令ϵt=argmin1≤j≤92267ϵj,]]>并将其对应的弱分类器作为ht;步骤4.2.2.3计算参数αt=12ln(1-ϵtϵt);]]>步骤4.2.2.4更新样本的权重Dt+1(i)=Dt(i)exp(-αtliht(subi))exp(λαtli)Zt,]]>其中λ=c-1c+1,]]>i=1,...,n,Zt=Σi=1nDt(i)exp(-αtliht(subi))exp(λαtli).]]>步骤4.2.3输出最后的强分类器 由以上各个步骤可以训练得到一个完整的人脸检测器;在检测阶段,该发明采用以下步骤来判断一张输入图像中是否包含人脸步骤1.输入图像的采集利用摄像头、数码相机、扫描仪等任一设备采集图像;步骤2.输入图像的放缩及其图像中每一个小窗口的快速判断为检测不同尺寸的人脸,采用前文使用的线性插值方法按照一定比例连续缩小12次输入图像(本发明采用1.25的比例),共得到由13个不同尺寸的输入图像,分别判断每张输入图像中的每一个20×20像素的小窗口,这样可以检测尺寸从20×20像素到280×280像素的人脸;具体来说包括以下步骤步骤2.1输入图像的放缩采用前文使用的线性插值方法按比例q=1.25连续缩小12次输入图像I(x,y)得到输入图像序列{Ii(x,y)},i=0,...,12;步骤2.2积分图像的计算使用上文迭代公式分别计算每个图像Ii(x,y)所对应的积分图像IIi(x,y)和平方积分图像SqrIIi(x,y),i=0,...,9;步骤2.3判断图像中每一个的小窗口从每幅图像Ii(x,y)的左上角开始判别图像中每一个20×20像素尺寸的小窗口,对任一个小窗口[x0,y0;x0+19,y0+19]的处理步骤如下步骤2.3.1利用整幅图像的积分图IIi(x,y)和平方积分图SqrIIi(x,y)计算小窗口的均值μ和方差σ;μ=[IIi(x0+19,y0+19)+IIi(x0-1,y0-1)-IIi(x0-1,y0+19)-IIi(x0+19,y0-1)]/400σ={[SqrIIi(x0+19,y0+19)+SqrIIi(x0-1,y0-1)-SqrIIi(x0-1,y0+19)-SqrIIi(x0+19,y0-1)]/400-μ2}1/2步骤2.3.2利用前文介绍方法快速提取该小窗口的微结构特征,并进行特征归一化处理;步骤2.3.3采用训练好的多层人脸/非人脸强分类器对小窗口进行判断;如果通过所有层强分类器的判断,则认为该小窗口包含一个人脸,输出其位置;否则抛弃掉该小窗口,不进行后续处理;利用以上步骤可以快速鲁棒地检测一张输入图像中的所有人脸。
全文摘要
复杂背景下的人脸检测技术属于人脸识别领域。其特征在于,提出了一种性能鲁棒的复杂背景下图像中的人脸检测方法。它采用高效率和高冗余度的微结构特征来表达人脸模式中眼睛、嘴巴等区域的灰度分布特点;并采用风险敏感的AdaBoost算法从中选择出最具有区分人脸和非人脸的微结构特征构成强分类器,使训练得到的每一层分类器在保证对人脸类别极低的拒识率的情况下,尽可能降低非人脸样本的误接受率,从而以更简单的结构实现复杂背景图像下更高性能的人脸检测;另外还使用了后处理算法进一步降低误检率。在多个公开数据库上以及竞赛评测的结果证明了本发明的优异性能。
文档编号G06K9/00GK1731417SQ200510086248
公开日2006年2月8日 申请日期2005年8月19日 优先权日2005年8月19日
发明者丁晓青, 马勇, 方驰, 刘长松, 彭良瑞 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1