复杂背景图像中鲁棒的眼睛精确定位方法

文档序号:6631664阅读:306来源:国知局
专利名称:复杂背景图像中鲁棒的眼睛精确定位方法
技术领域
复杂背景图像中眼睛定位方法属于人脸识别技术领域。
背景技术
本发明提出的方法所要解决的问题是得到人脸位置信息后进行的眼睛精确定位问题。眼睛精确定位是人脸信息处理的一项关键技术,广泛应用于人脸识别、人机交互、智能人机接口等系统中。复杂背景下眼睛精确定位也是一个极具挑战性的问题。这除了是由于光照、尺寸、姿态、平面旋转、图像质量等因素给眼睛外观带来复杂的变化外,眼睛的开闭、眼镜的反光、头发和镜框的遮挡等也给眼睛的精确定位带来很多困难;特别是在眼睛闭合的情况下,眉毛以及粗镜框都会给眼睛定位带来较大干扰。
目前提出的眼睛精确定位主流方法是基于启发式规则的方法。这类方法主要是根据眼睛的先验知识来制定定位规则。这些先验知识包括器官分布知识、形状知识、颜色知识、物理特性等。这类方法一般适应外界变化的能力较差,往往只能处理器官的一种或几种变化,稳定性和精度与实际应用的要求还有差距。造成这个现象的原因主要是它们仅考虑了器官的局部外观,而没有考虑器官与邻近区域或器官间的约束关系。这样当脸部存在与目标器官外观相似的物体时,就会给定位带来影响。比如眼睛闭合时的外观与眉毛、粗镜框很相似。所以要综合考虑器官局部特征以及能够表达这种约束关系的全局特征才能获得更鲁棒的定位效果。
本发明在全面细致考察眼睛定位问题特点的基础上,提出了基于全局和局部特征相结合的眼睛精确定位方法,可以鲁棒地实现复杂背景下高性能的眼睛精确定位,这是目前所有其他文献里没有使用过的方法。

发明内容
本发明的目的在于实现一个能在各种环境下稳定精确地定位人脸双眼中心的方法。它包括训练和检测两个阶段。
在训练阶段,首先采集大量样本,即采用人手工标定的方法,从人脸图像中收集训练样本,然后对样本进行归一化处理。利用采集到的训练样本,进行特征抽取,得到训练样本的特征库。在特征库的基础上,通过实验确定分类器的参数,训练得到眼睛定位分类器。
在检测阶段,对一张输入的人脸图像区域I(x,y),0≤x<Wface,0≤y<Hface,首先估计左右人眼可能存在的区域,然后在两个区域中穷举判断所有的小窗口(定义小窗口为输入图像中的一个矩形区域子图像),对每一个小窗口抽取特征,然后使用单眼检测器进行判断,从而得到区域中所有人眼候选位置;然后将左右眼睛候选结合起来利用全局性质从中选择出最佳组合方式,定位得到眼睛的最终位置。由此可以得到极好的眼睛定位准确率。该方法已经应用于一个基于人脸的考勤签到系统。
本发明由以下几部分组成样本采集与归一化、利用投影函数估计左右眼睛所在区域、单眼检测器的训练、眼睛对检测器的训练(如图4)。以下进行详细介绍。
1.样本采集与归一化1.1样本的采集为训练单眼检测器,采用人手工标定的方法,从人脸图片中切割出单只眼睛图像,并从人脸图像非眼睛部位随机割取非眼睛样本。单只眼睛图像和非眼睛图像分别作为正例样本和反例样本用于训练单眼检测器。共收集到6800个眼睛样本,随机选择70000张非眼睛样本。一些训练样本如图3(a)所示。
另外为训练眼睛对检测器,还根据人手工标定的眼睛位置,按照图10所示的比例从人脸图像中剪裁得到眼睛对样本,并从人脸图像中随机割取非眼睛对样本。眼睛对图像和非眼睛对图像分别作为正例样本和反例样本用于训练单眼检测器。一些采集到的样本如图3(b)示。这样采集到的样本不只包括两只眼睛还包括眉毛、鼻子等部位,体现了眼睛与周围器官的约束关系。
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=24,H=12,对眼睛对样本取W=25,H=15。这样尺寸归一化可以看成是将源图像点阵[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.估计左右眼睛所在的矩形区域Ωlefeye和Ωrighteye本发明使用人脸图像竖直方向投影的均值、方差函数来确定Ωlefteye和Ωrighteye在水平方向上的分界线,然后根据从训练样本中统计到的眼睛在人脸区域竖直方向上的分布规律,确定Ωlefteye和Ωrighteye的上下边界,从而估计出Ωlefteye和Ωrighteye。
2.1竖直方向投影函数对于灰度图像I(x,y)(0≤x,0≤y),则[y1,y2]和[x1,x2]区域内竖直方向投影的均值函数MPFv(x)和方差函数VPFv(x)定义为
MPFv(x)=1y2-y1Σy=y1y2I(x,y)]]>VPFv(x)=1y2-y1Σy=y1y2[I(x,y)-MPFv(x)]2]]>MPFv(x)、VPFv(x)刻画了图像在竖直方向的平均亮度及亮度的变化程度。
2.2利用投影函数确定眼睛区域由于人脸区域中额头、鼻梁竖直方向的平均亮度一般比眼睛区域竖直方向的平均亮度高,而竖直方向上的变化却不如眼睛区域的变化剧烈。所以取检测到的人脸区域的上半部分,其垂直方向灰度投影的均值函数与方差函数的比值 在鼻梁附近会存在一个明显的峰值,以此峰的位置作为左右两眼所在区域的竖直分界线,如图5(b)示。有xpeak=argmax0≤x≤WfaceMPFv(x)VPFv(x)]]>Ωlefteye、Ωrighteye的上下边界则可以利用人脸样本中眼睛在竖直方向的分布位置统计出来。由以上得到Ωlefteye=
,其中(0,0.05Hface)为区域左上角位置,(xpeak,0.45Hface)为区域右下角位置;Ωrighteye=[xpeak,0.05Hface;Wface,0.45Hface];Hface为统计得到的人脸高度,Xpeak为所达峰值处的x值。
3.单眼检测器的训练在Ωlefteye、Ωrighteye两个区域中分别使用单眼检测器检测给出左右眼睛20个候选位置,并估计出每个候选位置的置信度。
单眼检测器的训练使用归一化后的单眼睛样本和非眼睛样本的微结构特征库,利用AdaBoost算法训练得到单只眼睛检测器;其具体训练过程如下3.1特征提取本发明采用图6中的五种类型微结构模板来提取单眼睛和非单眼样本的高维微结构特征每一种微结构特征通过计算模板所覆盖图像中黑色区域和白色区域内像素灰度和的差值来得到,并且模板相对于图像的位置以及模板的尺寸可以改变。具体特征提取方式如下定义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),则如图4所示五种类型微结构(前四种微结构中黑色区域与白色面积相等,第五种类型微结构中黑色区域在白色区域中的分布对称)分别为(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)快速得到任意尺度、任意位置的一种微结构特征。
3.1.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。
平方积分图像可用于计算每个矩形区域的方差(见3.1.3节)。
3.1.2微结构特征的快速提取由于每一种特征提取只涉及到矩形区域中像素和的计算问题,所以以上任意一种微结构特征可以通过积分图像若干次加减快速计算出,其中第(a)种类型微结构特征的计算公式(图7所示)
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)=2H(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)种类型微结构特征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)种类型微结构特征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)种类型微结构特征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可以提取不同位置、不同尺度的特征。对于尺寸归一化为24×12像素的人眼模式,共得到42727个特征,组成该样本的特征矢量FV(j),1≤j≤42727。
3.1.3特征的归一化为了减轻光照对于单眼检测的影响,需要对每一个24×12像素样本图像进行灰度均值和方差的归一化,所以首先要快速计算出小窗口的均值μ和方差σ,然后对每一维特征进行归一化,其中的24×12像素小窗口区域(x0≤x′≤x0+23,y0≤y′≤y0+11)内的像素灰度和的μ和σ分别为(如图7所示)μ=[II(x0+23,y0+11)+II(x0-1,y0-1)-II(x0-1,y0+11)-II(x0+23,y0-1)]/288σ={[SqrII(x0+23,y0+11)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+11)-SqrII(xO+23,y0-1)]/288-μ2}1/2对每一维微结构特征可以进行如下的归一化
FV(j)=σ0σ‾FV‾(j)]]>对于一个24×12像素的样本图像,共得到42727维微结构特征FV(j),1≤j≤42727。
3.2特征选择和分类器设计为达到足够快的检测速度,一个单眼检测器必须采用分层结构(如图8所示),由多层结构从简单到复杂的强分类器级联起来构成。先由结构简单的强分类器排除掉图像中的背景窗口,然后由结构复杂的强分类器对余下窗口进行判断(此处的强分类器是指在训练集上达到足够高性能的分类器;下文中的弱分类器是指在训练集上错误率略低于0.5的分类器)。
本发明使用AdaBoost算法选择特征和训练分类器。一方面AdaBoost算法在每轮迭代中选择出性能最好的基于单个特征的弱分类器,达到特征选择的目的;另一方面把这些弱分类器集成为一个强分类器,并通过将多个强分类器级联起来得到一个性能优秀的眼睛检测器。具体来说,包括以下几个组成部分3.2.1弱分类器的构造本发明中弱分类器是使用一维特征构造的树分类器hj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>其中sub是一个24×12像素的样本,gi(sub)表示从该样本提取得到的第j个特征,θi是第j个特征对应的判决阈值,hj(sub)表示使用第j个特征构造的树分类器的判决输出。这样每个弱分类器只需要比较一次阈值就可以完成判决;共可得到42727个弱分类器。
3.2.2基于AdaBoost算法的眼睛/非眼睛强分类器设计将CS-AdaBoost算法结合上述弱分类器构造方法用于训练眼睛/非眼睛强分类器。训练步骤如下(记训练样本集L={(subi,li)},i=1,...,n,li=0,1是样本图像subi的类别标号,分别对应非眼睛类别和眼睛类别,其中眼睛样本neye个,非眼睛样本nnoneye个)3.2.2.1参数的初始化训练样本误分类风险的初始化。对于每个眼睛样本的误分类风险C(i)=2cc+1,]]>对每个非眼睛样本的误分类风险C(i)=2c+1]]>(c是眼睛类别是非眼睛类别的误分类风险倍数,c值应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表1);训练样本权重的初始化。初始每个样本的权重为D1(i)=1n;]]>
选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表1;统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号,1≤j≤42727)Fmax(j)=max1≤i≤nFVi(j),]]>Fmin(j)=min1≤i≤nFVi(j);]]>3.2.2.2重复以下过程T次(t=1,...,T)a.)使用第j个特征(1≤j≤42727)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>b.)令ϵt=argmin1≤j≤42727ϵj,]]>并将其对应的弱分类器作为ht;c.)计算参数αt=12ln(1-ϵtϵt);]]>d.)更新样本的权重Dt+1(i)=Dt(i)exp(-αtyiht(subi))Zt,]]>其中i=1,...,n,Zt=Σi=1nDt(i)exp(-αtyiht(subi)).]]>3.2.2.3输出最后的强分类器 对于通过强分类器判断的模式,本发明采用P(1|f(sub))=ef(sub)ef(sub)+e-f(sub)]]>得到模式属于眼睛的后验概率,此处f(sub)=Σt=1Tαt(ht(sub)-12).]]>3.2.3多层强分类器的级联由于单层强分类器很难同时实现高分类速度,极低的FRR和极低的FAR等目标,所以整个眼睛检测器必须采用分层结构,由简单到复杂将多层强分类器级联起来,如图8所示。在检测时只要某个图像窗口不能通过其中任何一层,可立即排除掉,从而大大节省了计算量。
多层强分类器级联的具体训练步骤如下a)初始化i=1;定义每层强分类器的训练目标是在眼睛训练集上FRR≤0.1%,在非眼睛训练集上FAR≤60%定义整个眼睛检测器在眼睛训练集上的目标FRR≤1%,在非眼睛训练集上的目标FAR≤5×10-4;b)使用训练样本集采用3.2.2节中的方法训练第i层强分类器;c)用训练得到的前i层分类器对样本集进行检测;d)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(b)继续进行训练;否则停止训练。
共训练得到7层结构从简单到复杂的强分类器;由这些强分类器级联构成一个完整的眼睛检测器。
表1 眼睛/非眼睛强分类器训练结果

4.眼睛对分类器的训练为了排除候选中的虚警和不精确的定位结果,本发明将左右眼睛候选联合起来,使用眼睛对分类器来验证每一对候选,最后根据后验概率从所有候选对中估计出双眼的最佳位置。
眼睛对分类器的训练使用归一化后的眼睛对样本和非眼睛对样本,分别提取两类样本的特征库,利用AdaBoost算法训练得到眼睛对分类器。由于眼睛对分类器所使用微结构特征及训练过程与前文单眼检测器的完全相同,都是使用AdaBoost算法从大量微结构特征中选择基于单个特征的弱分类器来构成强分类器,并将多层强分类器级联在一起。其具体训练过程同样包括特征提取、特征选择、强分类器的训练、多层强分类器的级联。
4.1特征提取采用图6中的五种类型微结构模板来提取双眼和非眼睛对样本的高维微结构特征。同样可以利用整幅图像的积分图像II(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)]]>快速得到任意尺度、任意位置的一种微结构特征。同样定义平方积分图像SqrII(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)·I(x′,y′),]]>用于计算每个矩形区域的方差。
由于每一种特征提取只涉及到矩形区域中像素和的计算问题,所以以上任意一种微结构特征可以通过积分图像若干次加减快速计算出,其中第(a)种类型微结构特征的计算公式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)-2II(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-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)种类型微结构特征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)种类型微结构特征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)对于尺寸归一化为25×15像素的眼睛对模式,共得到71210个特征,组成该样本的特征矢量FV(j),1≤j≤71210。
为了减轻光照的影响,需要对每一个25×15像素样本图像进行灰度均值和方差的归一化,所以首先要快速计算出小窗口的均值μ和方差σ,然后对每一维特征进行归一化,其中的25×15像素小窗口区域(x0≤x′≤x0+24,y0≤y′≤y0+14)内的像素灰度和的μ和σ分别为μ=[II(x0+24,y0+14)+II(x0-1,y0-1)-II(x0-1,y0+14)-II(x0+24,y0-1)]/365σ={[SqrII(x0+24,y0+14)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+14)-SqrII(x0+24,y0-1)]/365-μ2}1/2对每一维微结构特征可以进行如下的归一化
FV(j)=σ0σ‾FV‾(j)]]>对于一个25×15像素的样本图像,共得到71210维微结构特征FV(j),1≤j≤71210。
4.2特征选择和分类器设计为达到足够快的验证速度,一个眼睛对检测器必须采用分层结构(如图8所示),先由结构简单的强分类器排除掉图像中的背景窗口,然后由结构复杂的强分类器对余下窗口进行判断。本部分仍然使用AdaBoost算法选择特征和训练分类器。具体来说包括以下几个组成部分4.2.1弱分类器的构造弱分类器仍使用一维特征构造的树分类器hj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>共可得到71210个弱分类器。
4.2.2基于AdaBoost算法的眼睛/非眼睛强分类器设计将CS-AdaBoost算法结合上述弱分类器构造方法用于训练眼睛对强分类器。训练步骤如下(记训练样本集L={(subi,li)},i=1,...,n,li=0,1是样本图像subi的类别标号,分别对应非眼睛对类别和眼睛对类别,其中眼睛对样本neye个,非眼睛对样本nnoneye个)4.2.2.1参数的初始化训练样本误分类风险的初始化。对于每个眼睛对样本的误分类风险C(i)=2cc+1,]]>对每个非眼睛对样本的误分类风险C(i)=2c+1]]>(c是眼睛对类别是非眼睛对类别的误分类风险倍数,c值应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表2);训练样本权重的初始化。初始每个样本的权重为D1(i)=1n;]]>选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表2;统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号,1≤j≤71210)Fmax(j)=max1≤i≤nFVi(j),Fmin(j)=min1≤i≤nFVi(j);]]>4.2.2.2重复以下过程T次(t=1,...,T)
a.)使用第j个特征(1≤j≤71210)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>b.)令ϵt=argmin1≤j≤71210ϵj,]]>并将其对应的弱分类器作为hj;c.)计算参数αt=12ln(1-ϵtϵt);]]>d.)更新样本的权重Dt+1(i)=Dt(i)exp(-αtyiht(subi))Zt,]]>其中i=1,...,n,Zt=Σi=1nDt(i)exp(-αtyiht(subi)).]]>4.2.2.3输出最后的强分类器 对于通过强分类器判断的模式,本发明采用P(1|f(sub))=ef(sub)ef(sub)+e-f(sub)]]>得到模式属于眼睛对的后验概率,此处f(sub)=ΣtTαt(ht(sub)-12).]]>4.2.3多层强分类器的级联整个眼睛对验证器采用分层结构,如图8所示。
多层强分类器级联的具体训练步骤如下a)初始化i=1;定义每层强分类器的训练目标是在眼睛对训练集上FRR≤0.1%,在非眼睛对训练集上FAR≤50%;定义整个眼睛对检测器在眼睛对训练集上的目标FRR≤1%,在非眼睛对训练集上的目标FAR≤1×10-3;b)使用训练样本集采用4.2.2节中的方法训练第i层强分类器;c)用训练得到的前i层分类器对样本集进行检测;d)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(b)继续进行训练;否则停止训练。
共训练得到9层结构从简单到复杂的强分类器,使用了1347个特征;由这些强分类器级联构成一个完整的眼睛对检测器。
表2 眼睛对强分类器训练结果

本发明的特征在于,它是一种能够适应不同情况的鲁棒地精确定位人眼睛的技术。它首先对收集到的眼睛样本和眼睛对样本进行适当的尺寸归一化和光照归一化,以最大限度地消除输入样本因光照和尺寸的不同而造成的类内差异,然后高效率地提取能很好反映模式结构特点的微结构特征,在此基础上利用AdaBoost算法组成具有极低的误检率和低误接受率的强分类器,然后把多层分类器级联成一个完整的眼睛检测器和眼睛对验证器,从候选中得到精确的眼睛位置。
在由图像采集设备和计算机组成的系统中,本检测方法包括训练阶段和检测阶段。其中训练阶段依次含有以下步骤1.样本采集与归一化(1.1)样本的采集为训练单眼检测器,采用人手工标定的方法,从人脸图片中切割出单只眼睛图像,并从人脸图像非眼睛部位随机割取非眼睛样本。单只眼睛图像和非眼睛图像分别作为正例样本和反例样本用于训练单眼检测器。一些训练样本如图3(a)所示。
另外为训练眼睛对检测器,还根据人手工标定的眼睛位置,按照图10所示的比例从人脸图像中剪裁得到眼睛对样本,并从人脸图像中随机割取非眼睛对样本。眼睛对图像和非眼睛对图像分别作为正例样本和反例样本用于训练单眼检测器。一些采集到的样本如图3(b)示。这样采集到的样本不只包括两只眼睛还包括眉毛、鼻子等部位,体现了眼睛与周围器官的约束关系。
(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=24,H=12,对眼睛对样本取W=25,H=15。这样尺寸归一化可以看成是将源图像点阵[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=x0+Δxy/ry=y0+Δy,0≤Δx,Δy<1]]>其中x0=[r/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.单眼检测器的训练单眼检测器的训练使用归一化后的单眼睛样本和非眼睛样本的微结构特征库,利用AdaBoost算法训练得到单只眼睛检测器;其具体训练过程如下(2.1)特征提取本发明采用图6中的五种类型微结构模板来提取单眼睛和非单眼样本的高维微结构特征每一种微结构特征通过计算模板所覆盖图像中黑色区域和白色区域内像素灰度和的差值来得到,并且模板相对于图像的位置以及模板的尺寸可以改变。由于每一种特征提取只涉及到矩形区域中像素和的计算问题,所以可以利用整幅图像的积分图像快速得到任意尺度、任意位置的一种微结构特征。
(2.1.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′).]]>则原始图像I(x,y)中任何一个矩形区域中的像素和可通过积分图经3次加减法快速计算出。
而以上任意一种微结构特征可以通过对应的积分图像经过若干次加减计算出。
我们以图6第(a)种类型特征的提取过程为例说明微结构特征的快速提取。如图7所示,在计算出整幅图像的积分图像后,对于左上角像素坐标为(x,y)、宽度为w个像素、高度为h个像素的第(a)种类型微结构特征可以如下计算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)改变参数x,y,w,h可以提取不同位置、不同尺度的特征。其它类型的特征可以采取类似的方法提取。对于尺寸归一化为24×12像素的人眼模式,共得到42727个特征;(2.2)特征选择和分类器设计本发明使用AdaBoost算法选择特征和训练分类器。一方面AdaBoost算法在每轮迭代中选择出性能最好的基于单个特征的弱分类器,达到特征选择的目的;另一方面把这些弱分类器集成为一个强分类器,并通过将多个强分类器级联起来得到一个性能优秀的眼睛检测器。具体来说,包括以下几个组成部分(2.2.1)弱分类器的构造弱分类器要具有非常高的分类速度,整个强分类器才能达到足够高的分类速度。本发明对应于每一维特征构造最简单的树分类器来作为弱分类器hj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>
其中sub是一个24×12像素的样本,gj(sub)表示从该样本提取得到的第j个特征,θj是第j个特征对应的判决阈值,hj(sub)表示使用第j个特征构造的树分类器的判决输出。这样每个弱分类器只需要比较一次阈值就可以完成判决;共可得到42727个弱分类器。
(2.2.2)基于AdaBoost算法的眼睛/非眼睛强分类器设计本发明将AdaBoost算法结合上述弱分类器构造方法用于训练眼睛/非眼睛强分类器。训练算法步骤如下(记给定训练集L={(subi,li)},i=1,...,n,li=0,1是样本图像subi的类别标号,分别对应非眼睛类别和眼睛类别)(2.2.2.1)参数的初始化训练样本权重的初始化。初始每个样本的权重为D1(i)=1n;]]>选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表1;统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号,1≤j≤42727);(2.2.2.2)重复以下过程T次(t=1,...,T)a.)使用第j个特征(1≤j≤42727)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>b.)令ϵt=argmin1≤j≤42727ϵj,]]>并将其对应的弱分类器作为ht;c.)计算参数αt=12ln(1-ϵtϵt);]]>d.)更新样本的权重Dt+1(i)=Dt(i)exp(-αtyiht(subi))Zt,]]>其中i=1,...,n,Zt=Σi=1nDt(i)exp(-αtyiht(subi)).]]>(2.2.2.3)输出最后的强分类器 对于通过强分类器判断的模式,本发明采用P(1|f(x))=ef(x)ef(x)+e-f(x)]]>得到模式属于眼睛的后验概率,此处f(x)=Σt=1Tαt(ht(x)-12).]]>(2.2.3)多层强分类器的级联整个眼睛检测器必须采用分层结构,由简单到复杂将多层强分类器级联起来,如图8所示。
多层强分类器级联的具体训练步骤如下a)初始化i=1;定义每层强分类器的训练目标是在眼睛训练集上FRR≤0.1%,在非眼睛训练集上FAR≤60%;定义整个眼睛检测器在眼睛训练集上的目标FRR≤1%,在非眼睛训练集上的目标FAR≤5×10-4;b)使用训练样本集采用(2.2.2)节中的方法训练第i层强分类器;c)用训练得到的前i层分类器对样本集进行检测;d)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(b)继续进行训练;否则停止训练。
共训练得到7层结构从简单到复杂的强分类器;由这些强分类器级联构成一个完整的眼睛检测器。
3.眼睛对分类器的训练眼睛对分类器的训练使用归一化后的眼睛对样本和非眼睛对样本,分别提取两类样本的特征库,利用AdaBoost算法训练得到眼睛对分类器。由于眼睛对分类器所使用微结构特征及训练过程与前文单眼检测器的完全相同,都是使用AdaBoost算法从大量微结构特征中选择基于单个特征的弱分类器来构成强分类器,并将多层强分类器级联在一起。其具体训练过程同样包括特征提取、特征选择、强分类器的训练、多层强分类器的级联。
(3.1)特征提取采用图6中的五种类型微结构模板来提取双眼和非眼睛对样本的高维微结构特征。同样可以利用整幅图像的积分图像II(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)]]>快速得到任意尺度、任意位置的一种微结构特征。同样定义平方积分图像SqrII(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)·I(x′,y′),]]>用于计算每个矩形区域的方差。
由于每一种特征提取只涉及到矩形区域中像素和的计算问题,所以以上任意一种微结构特征可以通过积分图像若干次加减快速计算出。对于尺寸归一化为25×15像素的眼睛对模式,共得到71210个特征,组成该样本的特征矢量FV(j),1≤j≤71210。
为了减轻光照的影响,需要对每一个25×15像素样本图像进行灰度均值和方差的归一化,所以首先要快速计算出小窗口的均值μ和方差σ,然后对每一维特征进行归一化,其中的25×15像素小窗口区域(x0≤x′≤x0+24,y0≤y′≤y0+14)内的像素灰度和的μ和σ分别为μ=[II(x0+24,y0+14)+II(x0-1,y0-1)-II(x0-1,y0+14)-II(x0+24,y0-1)]/365σ={[SqrII(x0+24,y0+14)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+14)-SqrII(x0+24,y0-1)]/365-μ2}1/2对每一维微结构特征可以进行如下的归一化FV(j)=σ0σ‾FV‾(j)]]>对于一个25×15像素的样本图像,共得到71210维微结构特征FV(j),1≤j≤71210。
(3.2)特征选择和分类器设计为达到足够快的验证速度,一个眼睛对检测器必须采用分层结构(如图8所示),先由结构简单的强分类器排除掉图像中的背景窗口,然后由结构复杂的强分类器对余下窗口进行判断。本部分仍然使用AdaBoost算法选择特征和训练分类器。具体来说包括以下几个组成部分(3.2.1)弱分类器的构造弱分类器仍使用一维特征构造的树分类器hj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>共可得到71210个弱分类器。
(3.2.2)基于AdaBoost算法的眼睛/非眼睛强分类器设计将CS-AdaBoost算法结合上述弱分类器构造方法用于训练眼睛对强分类器。训练步骤如下(记训练样本集L={(subi,li)},i=1,...,n,li=0,1是样本图像subi的类别标号,分别对应非眼睛对类别和眼睛对类别,其中眼睛对样本neye个,非眼睛对样本nnoneye个)(3.2.2.1)参数的初始化训练样本误分类风险的初始化。对于每个眼睛对样本的误分类风险C(i)=2cc+1,]]>对每个非眼睛对样本的误分类风险C(i)=2c+1]]>(c是眼睛对类别是非眼睛对类别的误分类风险倍数,c值应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表2);训练样本权重的初始化。初始每个样本的权重为D1(i)=1n;]]>选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表2;统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号,1≤j≤71210)Fmax(j)=max1≤i≤nFVi(j),Fmin(j)=min1≤i≤nFVi(j);]]>(3.2.2.2)重复以下过程T次(t=1,...,T)a.)使用第j个特征(1≤j≤71210)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>b.)令ϵt=argmin1≤j≤71210ϵj,]]>并将其对应的弱分类器作为hj;c.)计算参数αt=12ln(1-ϵtϵt);]]>d.)更新样本的权重Dt+1(i)=Dt(i)exp(-αtyiht(subi))Zt,]]>其中i=1,...,n,Zt=Σi=1nDt(i)exp(-αtyiht(subi)).]]>(3.2.2.3)输出最后的强分类器 对于通过强分类器判断的模式,本发明采用P(1|f(sub))=ef(sub)ef(sub)+e-f(sub)]]>得到模式属于眼睛对的后验概率,此处f(sub)=Σt=1Tαt(ht(sub)-12).]]>(3.2.3)多层强分类器的级联整个眼睛对验证器采用分层结构,如图8所示。
多层强分类器级联的具体训练步骤如下e)初始化i=1;定义每层强分类器的训练目标是在眼睛对训练集上FRR≤0.1%,在非眼睛对训练集上FAR≤50%;定义整个眼睛对检测器在眼睛对训练集上的目标FRR≤1%,在非眼睛对训练集上的目标FAR≤1×10-3;f)使用训练样本集采用4.2.2节中的方法训练第i层强分类器;g)用训练得到的前i层分类器对样本集进行检测;h)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(b)继续进行训练;否则停止训练。
共训练得到9层结构从简单到复杂的强分类器;由这些强分类器级联构成一个完整的眼睛对检测器。
在眼睛检测阶段,对于一张输入的人脸区域,使用以下步骤来精确定位眼睛中心位置1.估计左右眼睛所在的区域Ωlefteye和Ωrighteye使用人脸图像竖直方向投影的均值、方差函数来确定Ωlefteye和Ωrighteye在水平方向上的分界线,然后根据从训练样本中统计到的眼睛在人脸区域竖直方向上的分布规律,确定Ωlefteye和Ωrighteye的上下边界,从而估计出Ωlefteye和Ωrighteye。
(1.1)利用投影函数确定眼睛区域的左右分界线取检测到的人脸区域的上半部分,以其垂直方向灰度投影的均值函数与方差函数的比值 的峰值作为左右两眼所在区域的竖直分界线,如图5(b)示。定义此位置为xpeakxpeak=argmax0≤x<WfaceMPFv(x)VPFv(x)]]>(1.2)利用样本统计信息得到眼睛区域的上下边界Ωlefteye、Ωrighteye的上下边界则可以利用样本中眼睛在人脸竖直方向的分布位置统计出来。有Ωlefteye=(x,y),0<x<xpeak,0.05Hface<y<0.45HfaceΩrighteye=(x,y),xpeak<x<Wface,0.05Hface<y<0.45Hface2.利用单眼检测器检测眼睛候选在Ωlefteye、Ωrighteye两个区域中分别使用单眼检测器检测给出左右眼睛20个候选位置,并估计出每个候选位置的置信度。眼睛候选的具体检测过程如下(2.1)输入人脸图像的积分图像的计算计算输入人脸图像I(x,y)对应的积分图像II(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)]]>和平方积分图像SqrII(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)·I(x′,y′).]]>(2.2)判别左右眼区域中的每一个的小窗口判别Ωlefteye、Ωrighteye两个区域中的每一个的24×12像素尺寸的小窗口,对任一个小窗口[x0,y0;x0+23,y0+11]的处理步骤如下(2.2.1).利用整幅图像的积分图IIi(x,y)和平方积分图SqrIIi(x,y)计算小窗口的均值μ和方差σ;μ=[II(x0+23,y0+11)+II(x0-1,y0-1)-II(x0-1,y0+11)-II(x0+23,y0-1)]/288σ={[SqrII(x0+23,y0+11)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+11)-SqrII(x0+23,y0-1)]/288-μ2}1/2(2.2.2).利用前文介绍方法快速提取该小窗口的微结构特征,并进行特征归一化处理;(2.2.3).采用训练好的多层眼睛/非眼睛强分类器对小窗口进行判断;如果通过所有层强分类器的判断,则认为该小窗口包含一个眼睛候选,输出其位置及其置信度;否则抛弃掉该小窗口,不进行后续处理;根据候选的置信度大小输出最多前20个候选位置。
3.眼睛候选对的验证为了排除眼睛候选中的误检测和不精确的定位结果,本发明将左右眼睛候选配对,提取候选周围区域更多的特征,然后使用眼睛对分类器来验证每一对候选,最后根据后验概率从所有候选对中估计出双眼的最佳位置。具体来说对每一对眼睛候选,包括以下处理步骤(3.1)根据左右眼候选位置割取图像进行尺寸归一化对每一对眼睛候选,首先根据左右眼候选位置按照模板(图10)所示位置割取图像,然后进行尺寸归一化和光照归一化,得到25×15像素的眼睛候选对图像PI(x,y);(3.2)输入图像积分图像的计算计算图像PI(x,y)对应的积分图像PII(x,y)=Σ0≤x′≤xΣ0≤y′≤yPI(x′,y′).]]>(3.3)眼睛候选对图像PI(x,y)的判断对每一眼睛候选对图像PI(x,y)的验证步骤如下
(3.3.1).利用整幅图像的积分图提取微结构特征;(3.3.2).采用训练好的第i层强分类器对图像进行判断;(3.3.3).如果通过判断,则i←i+1,返回步骤(3.3.1);否则抛弃掉该眼睛候选对;如果通过所有层强分类器的判断,则认为该候选对为有效候选对,输出其位置及其置信度;最后,对所有通过判断的候选对按照置信度从大到小排序,取置信度最大的前3对候选对的平均位置作为眼睛中心位置。输出眼睛位置。
为验证本发明的有效性,我们进行了如下实验眼睛定位算法使用的测试集包括如下3部分测试集1由Yale B、AeroInfo、公安部一所人脸数据库组成,共包括209个人的4353张图像。其中Yale B数据库包括15个人,165张图像,其特点是光照变化比较复杂;AeroInfo数据库,由中国航天信息有限公司提供,包括165个人的3740张图像,其特点是外界光照、人脸的姿态变化复杂,并且背景复杂,人脸图像质量差;公安部一所人脸数据库,包括30个人的448张图像,其特点是光照变化复杂,有的人佩戴的眼镜还有强烈的反光;测试集2由BANCA人脸数据库的英语部分组成,共包括82个人的6540张图像。其特点是图像背景和图像质量有很大变化,包括受控、降质和恶劣三种场景下采集到的图像,另外光照和人脸姿态变化也很复杂,多人还佩戴有黑框眼镜;测试集3JAFFE数据库,包括213张人脸图像,其特点是人脸表情变化丰富;在来源和变化如此丰富的集合上进行的测试应该能真实反映出一个定位算法的性能表1 与其它定位算法在不同允许误差下的性能比较 与其它方法的性能比较如表1所示。其中与Identix[http//www.identix.com/]公司的著名产品FaceIT相比,本文算法在不同测试集上性能稳定,均优于FaceIT的定位精度,而FaceIT在实验中对人眼的开闭、人脸的尺寸等因素比较敏感;与Zhou[ZhouZH,Gengx.Projection functions for eye detection.Pattern Recognition,2004]方法相比,本文方法在JAFFE数据库上误差在0.10内的定位准确率即为98.6%,而其方法误差在0.25内的定位准确率仅为97.2%。


图1一个典型的眼睛定位系统的硬件构成。
图2训练样本的收集流程。
图3单个眼睛样本和眼睛对样本示例。
图4眼睛定位系统的结构框5眼睛定位过程示例。
图6采用的五种微结构特征模板。
图7积分图的计算和微结构特征的提取示例。
图8多级强分类器的级联结构。
图9基于AdaBoost算法的强分类器的训练流程。
图10眼睛对模板比例示意图。
图11基于本算法的人脸识别签到系统。
具体实施例方式
整个人眼定位系统的硬件结构如图1所示,系统的训练过程和识别过程如图4所示,下面详细介绍系统的各个部分系统的输入是单个人脸区域图像。人脸检测部分不包含在本发明中,不进行详细说明。
A)训练系统的实现A.1样本采集与归一化A.1.1样本的收集为训练单眼检测器,采用人手工标定的方法,从人脸图片中切割出单只眼睛图像,并从人脸图像非眼睛部位随机割取非眼睛样本。单只眼睛图像和非眼睛图像分别作为正例样本和反例样本用于训练单眼检测器。一些训练样本如图3(a)所示。
另外为训练眼睛对检测器,还根据人手工标定的眼睛位置,按照图7所示的比例从人脸图像中剪裁得到眼睛对样本,并从人脸图像中随机割取非眼睛对样本。眼睛对图像和非眼睛对图像分别作为正例样本和反例样本用于训练单眼检测器。一些采集到的样本如图3(b)示。这样采集到的样本不只包括两只眼睛还包括眉毛、鼻子等部位,体现了眼睛与周围器官的约束关系。
A.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=24,H=12,对眼睛对样本取W=25,H=15。本发明使用反向投影和线性插值将原始样本图像变换到标准尺寸样本图像,则输入图像[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=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.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,完成样本的灰度归一化。
A.2单个眼睛检测器的训练单眼检测器的训练使用归一化后的单眼睛样本和非眼睛样本的微结构特征库,利用AdaBoost算法训练得到单只眼睛检测器;其具体训练过程如下A.2.1特征提取由于微结构特征可以利用整幅图像的积分图快速得到图像中任意尺度、任意位置的一种微结构特征,从而为眼睛的实时检测提供了可能。本发明采用图6中的五种类型微结构模板来提取人眼模式的高维微结构特征;通过计算图像中对应黑色区域和白色区域内像素灰度的差值得到特征,表达出眼睛模式的特点。
A.2.1.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′).]]>则原始图像I(x,y)中任何一个矩形区域中的像素和可通过积分图经3次加减法快速计算出。
A.2.1.2微结构特征的快速提取以上任意一种微结构特征可以通过对应的积分图像经过若干次加减计算出。
我们以图6第(a)种类型特征的提取过程为例说明微结构特征的快速提取。如图7所示,在计算出整幅图像的积分图像后,对于左上角像素坐标为(x,y)、宽度为w个像素、高度为h个像素的第(a)种类型微结构特征可以如下计算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)其中x,y,w,h受到下列约束x0≤x,y0≤y,x+2·w≤x0+24,y+h≤y0+12改变参数x,y,w,h可以提取不同位置、不同尺度的特征。其它类型的特征可以采取类似的方法提取。对于尺寸归一化为24×12像素的人眼模式,共得到42727个特征;A.2.2特征选择和分类器设计本发明使用AdaBoost算法选择特征和训练分类器。一方面AdaBoost算法在每轮迭代中选择出性能最好的基于单个特征的弱分类器,达到特征选择的目的;另一方面把这些弱分类器集成为一个强分类器,并通过将多个强分类器级联起来得到一个性能优秀的眼睛检测器。具体来说,包括以下几个组成部分A.2.2.1弱分类器的构造弱分类器要具有非常高的分类速度,整个强分类器才能达到足够高的分类速度。本发明对应于每一维特征构造最简单的树分类器来作为弱分类器
hj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>其中sub是一个24×12像素的样本,gj(sub)表示从该样本提取得到的第j个特征,θj是第j个特征对应的判决阈值,hj(sub)表示使用第j个特征构造的树分类器的判决输出。这样每个弱分类器只需要比较一次阈值就可以完成判决;共可得到42727个弱分类器。
A.2.2.2基于AdaBoost算法的眼睛/非眼睛强分类器设计本发明将AdaBoost算法结合上述弱分类器构造方法用于训练眼睛/非眼睛强分类器。训练算法步骤如下(记给定训练集L={(subi,li)},i=1,...,n,li=0,1是样本图像subi的类别标号,分别对应非眼睛类别和眼睛类别)A.2.2.2.1参数的初始化训练样本权重的初始化。初始每个样本的权重为D1(i)=1n;]]>选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表1;统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号,1≤j≤42727);A.2.2.2.2重复以下过程T次(t=1,...,T)a.)使用第j个特征(1≤j≤42727)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>b.)令ϵt=argmin1≤j≤42727ϵj,]]>并将其对应的弱分类器作为hj;c.)计算参数αt=12ln(1-ϵtϵt);]]>d.)更新样本的权重Dt+1(i)=Dt(i)exp(-αtyiht(subi))Zt,]]>其中i=1,...,n,Zt=Σi=1nDt(i)exp(-αtyiht(subi)).]]>A.2.2.2.3输出最后的强分类器
对于通过强分类器判断的模式,本发明采用P(1|f(x))=ef(x)ef(x)+e-f(x)]]>得到模式属于眼睛的置信度,此处f(x)=Σt=1Tαt(ht(x)-12).]]>A.2.2.3多层强分类器的级联由于单层强分类器很难同时实现高分类速度,极低的FRR和极低的FAR等目标,所以整个眼睛检测器必须采用分层结构,由简单到复杂将多层强分类器级联起来,如图8所示。在检测时只要某个图像窗口不能通过其中任何一层,可立即排除掉,从而大大节省了计算量。
多层强分类器级联的具体训练步骤如下e)初始化i=1;定义每层强分类器的训练目标是在眼睛训练集上FRR≤0.1%,在非眼睛训练集上FAR≤60%;定义整个眼睛检测器在眼睛训练集上的目标FRR≤1%,在非眼睛训练集上的目标FAR≤5×10-4;f)使用训练样本集采用(2.2.2)节中的方法训练第i层强分类器;g)用训练得到的前i层分类器对样本集进行检测;h)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(b)继续进行训练;否则停止训练。
共训练得到7层结构从简单到复杂的强分类器;由这些强分类器级联构成一个完整的眼睛检测器。
A.3利用眼睛对分类器对眼睛候选对的验证为了排除候选中的虚警和不精确的定位结果,本发明将左右眼睛候选配对,提取候选周围区域更多的特征,然后使用眼睛对分类器来验证每一对候选,最后根据后验概率从所有候选对中估计出双眼的最佳位置。眼睛对分类器的训练包括以下步骤A.3.1特征提取采用图6中的五种类型微结构模板来提取双眼和非眼睛对样本的高维微结构特征。同样可以利用整幅图像的积分图像II(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)]]>快速得到任意尺度、任意位置的一种微结构特征。同样定义平方积分图像SqrII(x,y)=Σ0≤x′≤xΣ0≤y′≤yI(x′,y′)·I(x′,y′),]]>用于计算每个矩形区域的方差。
由于每一种特征提取只涉及到矩形区域中像素和的计算问题,所以以上任意一种微结构特征可以通过积分图像若干次加减快速计算出。对于尺寸归一化为25×15像素的眼睛对模式,共得到71210个特征,组成该样本的特征矢量FV(j),1≤j≤71210。
为了减轻光照的影响,需要对每一个25×15像素样本图像进行灰度均值和方差的归一化,所以首先要快速计算出小窗口的均值μ和方差σ,然后对每一维特征进行归一化,其中的25×15像素小窗口区域(x0≤x′≤x0+24,y0≤y′≤y0+14)内的像素灰度和的μ和σ分别为μ=[II(x0+24,y0+14)+II(x0-1,y0-1)-II(x0-1,y0+14)-II(x0+24,y0-1)]/365σ={[SqrII(x0+24,y0+14)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+14)-SqrII(x0+24,y0-1)]/365-μ2}1/2对每一维微结构特征可以进行如下的归一化FV(j)=σ0σ‾FV‾(j)]]>对于一个25×15像素的样本图像,共得到71210维微结构特征FV(j),1≤j≤71210。
A.3.2特征选择和分类器设计为达到足够快的验证速度,一个眼睛对检测器必须采用分层结构(如图8所示),先由结构简单的强分类器排除掉图像中的背景窗口,然后由结构复杂的强分类器对余下窗口进行判断。本部分仍然使用AdaBoost算法选择特征和训练分类器。具体来说包括以下几个组成部分A.3.2.1弱分类器的构造弱分类器仍使用一维特征构造的树分类器hj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>共可得到71210个弱分类器。
A.3.2.2基于AdaBoost算法的眼睛/非眼睛强分类器设计将CS-AdaBoost算法结合上述弱分类器构造方法用于训练眼睛对强分类器。训练步骤如下(记训练样本集L={(subi,li)},i=1,...,n,li=0,1是样本图像subi的类别标号,分别对应非眼睛对类别和眼睛对类别,其中眼睛对样本neye个,非眼睛对样本nnoneye个)A.3.2.2.1参数的初始化训练样本误分类风险的初始化。对于每个眼睛对样本的误分类风险C(i)=2cc+1,]]>对每个非眼睛对样本的误分类风险C(i)=2c+1]]>(c是眼睛对类别是非眼睛对类别的误分类风险倍数,c值应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表2);训练样本权重的初始化。初始每个样本的权重为D1(i)=1n;]]>选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表2;统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号,1≤j≤71210)Fmax(j)=max1≤i≤nFVi(j),Fmin(j)=min1≤i≤nFVi(j);]]>A.3.2.2.2重复以下过程T次(t=1,...,T)a.)使用第j个特征(1≤j≤71210)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi-li)|;]]>b.)令ϵt=argmin1≤j≤71210ϵj,]]>并将其对应的弱分类器作为hj;c.)计算参数αt=12ln(1-ϵtϵt);]]>d.)更新样本的权重Dt+1(i)=Dt(i)exp(-αtyiht(subi))Zt,]]>其中i=1,...,n,Zt=Σi=1nDt(i)exp(-αtyiht(subi)).]]>A.3.2.2.3输出最后的强分类器 对于通过强分类器判断的模式,本发明采用P(1|f(sub))=ef(sub)ef(sub)+e-f(sub)]]>得到模式属于眼睛对的后验概率,此处f(sub)=Σt=1Tαt(ht(sub)-12).]]>A.3.2.3多层强分类器的级联整个眼睛对验证器采用分层结构,如图8所示。多层强分类器级联的具体训练步骤如下i)初始化i=1;定义每层强分类器的训练目标是在眼睛对训练集上FRR≤0.1%,在非眼睛对训练集上FAR≤50%;定义整个眼睛对检测器在眼睛对训练集上的目标FRR≤1%,在非眼睛对训练集上的目标FAR≤1×10-3;j)使用训练样本集采用4.2.2节中的方法训练第i层强分类器;k)用训练得到的前i层分类器对样本集进行检测;l)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(b)继续进行训练;否则停止训练。
共训练得到9层结构从简单到复杂的强分类器,使用了1347个特征。;由这些强分类器级联构成一个完整的眼睛对检测器。
B)测试系统的实现而眼睛检测阶段则包括以下步骤B.1估计左右眼睛所在的区域Ωlefteye和Ωrighteye使用人脸灰度图像竖直方向投影的均值、方差函数来确定Ωlefteye和Ωrighteye在水平方向上的分界线,然后根据从训练样本中统计到的眼睛在人脸区域竖直方向上的分布规律,确定Ωlefteye和Ωrighteye的上下边界,从而估计出Ωlefteye和Ωrighteye。
B.1.1利用投影函数确定眼睛区域的左右分界线取检测到的人脸区域的上半部分,将垂直方向灰度投影的均值函数与方差函数的比值 的峰值作为左右两眼所在区域的竖直分界线,如图5(b)示。定义此波峰的位置xpeak,即xpeak=argmax0≤x<WfaceMPFv(x)VPFv(x)]]>B.1.2利用样本统计信息得到眼睛区域的上下边界Ωlefteye、Ωrighteye的上下边界则可以利用人脸样本中眼睛位置在竖直方向的分布范围统计出来。有Ωlefteye=(x,y),0<x<xpeak,0.05Hface<y<0.45Hface
Ωrighteye=(x,y),xpeak<x<Wface,0.05Hface<y<0.45HfaceB.2利用局部特征检测眼睛候选在Ωlefteye、Ωrighteye两个区域中分别使用眼睛检测器检测左右眼睛候选位置,并估计出每个候选位置的置信度。眼睛候选的具体检测过程如下B.2.1计算输入人脸图像的积分图像计算输入人脸图像I(x,y)对应的积分图像II(x,y)和平方积分图像SqrII(x,y)B.2.2判别左右眼区域中的每一个的小窗口判别Ωlefreye、Ωrighteye两个区域中的每一个的24×12像素尺寸的小窗口,对任一个小窗口[xO,y0;x0+23,y0+11]的处理步骤如下(B.2.2.1).利用整幅图像的积分图和平方积分图计算小窗口的均值和方差;(B.2.2.2).利用积分图提取小窗口的微结构特征,并进行归一化处理;(B.2.2.3).采用训练好的第i层强分类器对小窗口进行判断;(B.2.2.4).如果通过判断,则i←i+1,返回步骤(B.2.2.3);否则抛弃掉该小窗口;如果通过所有层强分类器的判断,则认为该小窗口包含一个眼睛候选,输出其位置及其置信度。否则抛弃掉该小窗口,不进行后续处理;由于真实的眼睛会在相邻位置处被检测到多次,并且眉毛和境框也常被误认为是眼睛候选。所以本发明根据候选的置信度大小输出最多前20个候选位置。
B.3眼睛候选对的验证为了排除候选中的虚警和不精确的定位结果,本发明将左右眼睛候选配对,提取候选周围区域更多的特征,然后使用眼睛对分类器来验证每一对候选,最后根据后验概率从所有候选对中估计出双眼的最佳位置。对每一对眼睛候选,处理步骤包括以下B.3.1根据左右眼候选位置割取图像进行尺寸归一化对每一对眼睛候选,首先根据左右眼候选位置按照模板(图10)所示位置割取图像,然后进行尺寸归一化和光照归一化,得到25×15像素的眼睛候选对图像PI(x,y)。
B.3.2输入图像积分图像的计算用下式分别计算图像PI(x,y)对应的积分图像PII(x,y)B.3.3眼睛候选对图像PI(x,y)的判断对每一个图像的验证步骤如下(B.3.3.1).利用整幅图像的积分图PII(x,y)提取微结构特征;
(B.3.3.2).采用训练好的第i层强分类器对图像进行判断;(B.3.3.3).如果通过判断,则i←i+1,返回步骤(B.3.3.1);否则抛弃掉该眼睛候选对;如果通过所有层强分类器的判断,则认为该候选对为有效候选对,输出其位置及其置信度;最后,对所有通过判断的候选对按照置信度从大到小排序,取置信度最大的前3对候选对的平均位置作为眼睛中心位置。输出眼睛位置。
C)眼睛定位误差测试标准为了比较不同定位算法的精度,本发明采用一种与人脸尺寸无关的定位误差度量标准。由于正面人脸的双眼中心间距一般不随表情等改变,具有相对的稳定性,所以以人工标定的双眼中心间距为基准。
对于一张人脸,设人工标定的左右眼和嘴巴位置分别为Ple、Pre和Pm,自动定位的左右眼和嘴巴位置分别为Ple′、Pre′和Pm′,dlr是Ple和Pre之间的欧氏距离,dle为Ple′与Ple间的欧氏距离,dre为Pre′与Pre间的欧氏距离,dm为Pm′与Pm间的欧氏距离。
则眼睛定位误差定义为eeye=max(dle,dre)dlr]]>考虑到不同人的手工标定结果之间的差异都可能达到0.10,本文以0.15作为定位准确与否的界限,当眼睛定位误差eeye<0.15时,认为双眼的定位是准确的;实施例1基于人脸的识别签到系统(如图9)人脸认证是近来受到广泛关注的生物特征认证技术中最友好的一种认证方式,旨在利用人脸图像进行计算机自动个人身份认证,以代替传统的密码、证件、印章等身份认证方式,具有不易伪造、不会丢失以及方便等优点。本系统利用人脸信息来对人身份进行自动验证。其中使用的人脸检测模块是本文的研究成果。此外本系统还参加了ICPR2004组织的FAT2004竞赛。此次竞赛共有包括来自美国的Carnegie Mellon大学、德国的Neuroinformatik研究所、英国的Surrey大学等11个学术和商业机构的13个人脸识别算法参加。本实验室所提交的系统在三个评价指标上都比第二名以低约50%错误率的结果获得第一名。本文的研究成果应用在本实验实所提交系统的眼睛定位模块中,从而保证了系统的总体性能居于世界先进水平。
综上所述,本发明能够在具有复杂背景的图像中鲁棒精确地定位人脸,在实验中获得了优异的定位结果,具有非常广泛的应用前景。
权利要求
1.复杂背景图像中鲁棒的眼睛精确定位方法,其特征表于该方法首先对收集到的眼睛样本和眼睛对样本进行适当的尺寸归一化和光照归一化,以最大限度地消除输入样本因光照和尺寸的不同而造成的类内差异,然后高效率地提取能很好反映模式结构特点的微结构特征,在此基础上利用AdaBoost算法组成具有极低的误检率和极低的误接受率的强分类器,然后把多层分类器级联成一个完整的眼睛检测器和眼睛对验证器,从候选中得到精确的眼睛位置;在由图像采集设备和计算机组成的系统中,本检测方法包括训练阶段和检测阶段,其中训练阶段依次含有以下步骤步骤1样本采集与归一化步骤1.1样本的采集为训练单眼检测器,采用人手工标定的方法,从人脸图片中切割出单只眼睛图像,并从人脸图像非眼睛部位随机割取非眼睛样本,单只眼睛图像和非眼睛图像分别作为正例样本和反例样本用于训练单眼检测器;另外为训练眼睛对检测器,还根据人手工标定的眼睛位置,按照设定的比例从人脸图像中剪裁得到眼睛对样本,并从人脸图像中随机割取非眼睛对样本,眼睛对图像和非眼睛对图像分别作为正例样本和反例样本用于训练单眼检测器;这样采集到的样本不只包括两只眼睛还包括眉毛、鼻子等部位,体现了眼睛与周围器官的约束关系;所述从人脸图像中剪裁得到眼睛对样本是按下述比例进行的;以双眼眼球中心的连线作为X轴,以垂直于所述双眼眼球中心线的垂直线作为Y轴,垂足位于双眼内侧间距处的所述中心线上;当设定双眼眼球中心的间距为dist时,双眼眼球中心距左、右外边框的水平距离各为dist/3,而剪裁时上、下两条边框各距所述的垂直距离为dist/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=24,H=12,对眼睛对样本取W=25,H=15,所述尺寸归一化就是将源图像点阵[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=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单眼检测器的训练单眼检测器的训练使用归一化后的单眼睛样本和非眼睛样本的微结构特征库,利用AdaBoost算法训练得到单只眼睛检测器;其具体训练过程如下步骤2.1特征提取步骤2.1.1设定下述五种类型微结构模板;设定下述五种类型微结构模板来提取人脸样本的高维微结构特征,每一种微构特征通过计算模板黑色区域内所对应图像中像素灰度的差值来得到,所述微结构特征用g(x.y.w.h)表示,对于所述五种类型微结构特征,分别表示如下(a)类黑色区域和白色区域左右对称且面积相等,用w表示其中各区域的宽,h表示其中各区域的高;(b)类黑色区域和白色区域上下对称且面积相等,w、h的定义与(a)类相同;(c)类在水平方向,黑色区域位于两块白色区域之间,且黑色区域和每块白色区域的面积相等,w、h的定义与(a)类相同;(d)类两块黑色区域分别处于第一象限和第三象限,而两块白色区域分别处于,且每块黑色区域和每块白色区域的的面积相等w、h的定义与(a)类相同;(e)类黑色区域位于白色区域有中央,且黑色区域的分布对称且黑色区域的上、下两边、左、右两边分别距离白色区域的上、下两边、左、右两边各为2个像素的距离,w、h分别表示白色区域周框的宽和高;步骤2.1.2快速计算积分图像对于所述图像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′)]]>步骤2.1.3快速提取单眼睛和非单眼样本的高维微结构特征每一种微结构特征通过计算模板所覆盖图像中黑色区域和白色区域内像素灰度和的差值来得到,并且模板相对于图像的位置以及模板的尺寸可以改变,由于每一种特征提取只涉及到矩形区域中像素和的计算问题,便于利用整幅图像的积分图像快速得到任意尺度、任意位置的一种微结构特征;g(x,y,w,h)=2·II(x+w-1,y-1)+II(x+2·w-1,y+h-1)(a) +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)g(x,y,w,h)=2II(x+w-1,y+h-1)+II(x-1,y-1)-II(x+w-1,y-1)(b) -2II(x-1,y+h-1)-II(x+w-1,y+2h-1)+II(x-1,y+2h-1)g(x,y,w,h)=2II(x+2w-1,y+h-1)+2II(x+w-1,y-1)-2II(x+2w-1,y-1)(c) -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)g(x,y,w,h)=-II(x-1,y-1)-II(x+2w-1,y-1)-II(x-1,y+2h-1)(d) -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)g(x,y,w,h)=II(x+w-1,y+h-1)+II(x-1,y-1)-II(x+w-1,y-I)-II(x-1,y+h-1)(e)-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所提取不同位置通过的微结构特征,对于尺归一化为24×12的人脸模板先得到42727个特征组成该样本的特征点是FV(j),1≤j≤42727;步骤2.2为了减轻光照对于单眼检测的影响,要对每一个24×12像素的人眼样本图像进行灰度均值和方差的归一化;首先计算24×12像素的人眼小窗口区域(x0≤x′≤x0+23,y0≤y′≤y0+11)内的像素灰度和的均值μ和方差σμ=[II(x0+23,y0+11)+II(x0-1,y0-1)-II(x0-1,y0+11)-II(x0+23,y0-1)]/288σ={[SqrII(x0+23,y0+11)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+11)-SqrII(x0+23,y0-1)]/288-μ2}1/2其次,对每一层微结构对征进行如下归一化FV(j)=σ0σ‾FV‾(j),]]>对于一个24×12像素的样本图像,共得到42727维微结构特征FV(j),1≤j≤42727;步骤2.3特征选择和分类器设计本发明使用AdaBoost算法选择特征和训练分类器一方面AdaBoost算法在每轮迭代中选择出性能最好的基于单个特征的弱分类器,达到特征选择的目的;另一方面把这些弱分类器集成为一个强分类器,并通过将多个强分类器级联起来得到一个性能优秀的眼睛检测器;具体来说,包括以下几个组成部分步骤2.3.1弱分类器的构造弱分类器要具有非常高的分类速度,整个强分类器才能达到足够高的分类速度,本发明对应于每一维特征构造最简单的树分类器来作为弱分类器hj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>其中sub是一个24×12像素的样本,gj(sub)表示从该样本提取得到的第j个特征,θj是第j个特征对应的判决阈值,该阈值通过统计所有采集的眼睛和非眼睛样本的第j个特征使得眼睛样本的FRR满足规定的要求来得到,hj(sub)表示使用第j个特征构造的树分类器的判决输出,这样每个弱分类器只需要比较一次阈值就可以完成判决;共可得到42727个弱分类器;步骤2.3.2基于AdaBoost算法的眼睛/非眼睛强分类器设计本发明将AdaBoost算法结合上述弱分类器构造方法用于训练眼睛/非眼睛强分类器;训练算法步骤如下,记给定训练集L={(subi,li)},i=1,...,n,li=0,1是样本图像subi的类别标号,分别对应非眼睛类别和眼睛类别,其中眼睛样本neye个,非眼睛样本nnoneye个;步骤2.3.2.1参数的初始化训练样本权重的初始化。初始每个样本的权重为D1(i)=1n;]]>选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐增多,具体选择值见表1;统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j),其中j为特征序号,1≤j≤42727;步骤2.3.2.2重复以下过程T次,t=1,...,Ta.)使用第j个特征,1≤j≤42727构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>b.)令ϵt=argmin1≤j≤42727ϵj,]]>并将其对应的弱分类器作为ht;c.)计算参数αt=12ln(1-ϵtϵt);]]>d.)更新样本的权重Dt+1(i)=Dt(i)exp(-αtliht(subi))Zt,]]>其中i=1,...,n,Zt=Σi=1nDt(i)exp(-αtliht(subi)).]]>步骤2.3.2.3输出最后的强分类器 对于通过强分类器判断的模式,本发明采用P(1|f(x))=ef(x)ef(x)+e-f(x)]]>得到模式属于眼睛的后验概率,此处f(x)=Σt=1Tαt(ht(x)-12);]]>步骤2.3.3多层强分类器的级联整个眼睛检测器必须采用分层结构,由简单到复杂将多层强分类器级联起来,多层强分类器级联的具体训练步骤如下a)初始化i=1;定义每层强分类器的训练目标是在眼睛训练集上FRR≤0.1%,在非眼睛训练集上FAR ≤60%;定义整个眼睛检测器在眼睛训练集上的目标FRR≤1%,在非眼睛训练集上的目标FAR≤5×10-4;b)使用训练样本集采用步骤2.3.2所述的方法训练第i层强分类器;c)用训练得到的前i层分类器对样本集进行检测;d)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(b)继续进行训练;否则停止训练共训练得到7层结构从简单到复杂的强分类器;由这些强分类器级联构成一个完整的眼睛检测器;步骤3眼睛对分类器的训练眼睛对分类器的训练使用归一化后的眼睛对样本和非眼睛对样本,分别提取两类样本的特征库,利用AdaBoost算法训练得到眼睛对分类器,由于眼睛对分类器所使用微结构特征及训练过程与前文单眼检测器的完全相同,都是使用AdaBoost算法从大量微结构特征中选择基于单个特征的弱分类器来构成强分类器,并将多层强分类器级联在一起,其具体训练过程同样包括特征提取、特征选择、强分类器的训练、多层强分类器的级联步骤3.1特征提取使用归一化后的眼睛对样本和非眼睛对样本按上述步骤2.1所述的方法分析提取其高维微结构特征,对于尺寸归一化为25×15像素的眼睛对模式,共得到71210个特征,组成该样本的特征点是FV(j),1≤j≤71210;步骤3.2为了减轻光照的影响,按步骤2.2所述的方法对每一个25×15像素样本同样进行灰度均值和方差的归一化首先,快速计算出所述25×15像素小窗口的灰度均值μ和方差σ,小窗口区域为(x0≤x′≤x0+24,y0≤y′≤y0+14),则μ和σ分别为μ=[II(x0+24,y0+14)+II(x0-1,y0-1)-II(x0-1,y0+14)-II(x0+24,y0-1)]/365σ={[SqrII(x0+24,y0+14)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+14)-SqrII(x0+24,y0-1)]/365-μ2}1/2其次对每一个维微结构特征进行如下的归一化FV(j)=σ0σ‾FV‾(j)]]>对于一个25×15像素的样本图像,共得到71210维微结构特征FV(j),1≤j≤71210。步骤3.3特征选择及分类器设计为达到足够快的验证速度,一个眼睛对检测器必顺采用分层结构,先由结构简单的强分类器排除掉图像中的背景窗口,然后由结构复杂的强他类器对余下窗口进行判断,本部分仍然使用AdaBoost算法选择特征和训练分类器,具体来说包括以下几个组成部分步骤3.3.1弱分类器的构造弱分类器仍使用一维特征构造的树分类器;hj(sub)=1,ifgj(sub)<θjorgj(sub)>θj0,otherwise]]>共可得到71210个弱分类器。步骤3.3.2基于AdaBoost算法的眼睛/非眼睛强分类器设计将CS-AdaBoost算法结合上述弱分类器构造方法用于训练眼睛对强分类器,训练步骤如下,记训练样本集L={(subi,li)],i=1,...,n,li=0,1是样本图像subi的类别标号,分别对应非眼睛对类别和眼睛对类别,其中眼睛对样本neye个,非眼睛对样本nnoneye个步骤3.3.2.1参数的初始化训练样本误分类风险的初始化,对于每个眼睛对样本的误分类风险C(i)=2cc+1,]]>对每个非眼睛对样本的误分类风险C(i)=2c+1c]]>是眼睛对类别是非眼睛对类别的误分类风险倍数,c值应大于1且随着强分类器层数的增多逐渐减小接近于1;训练样本权重的初始化,初始每个样本的权重为D1(i)=1n;]]>选择迭代次数T,T即为希望使用的弱分类器的个数,T应随着强分类器层数的增多逐渐增多;统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j),其中j为特征序号,1≤j≤71210Fmax(j)=max1≤i≤nFVi(j),Fmin(j)=min1≤i≤nFVi(j);]]>步骤3.3.2.2重复以下过程T次,t=1,...,Ta.)使用第j个特征(1≤j≤71210)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷举搜索阈值参数θj,使得hj的错误率εj最小,定义ϵj=Σi=1nDt(i)·|hj(subi)-li|;]]>b.)令ϵt=argmin1≤j≤71210ϵj,]]>并将其对应的弱分类器作为ht;c.)计算参数αt=12ln(1-ϵtϵt);]]>d.)更新样本的权重Dt+1(i)=Dt(i)exp(-αtliht(subi))Zt,]]>其中i=1,...,n,Zt=Σi=1nDt(i)exp(-αtliht(subi));]]>步骤3.3.2.3输出最后的强分类器 对于通过强分类器判断的模式,本发明采用P(1|f(sub))=ef(sub)ef(sub)+e-f(sub)]]>得到模式属于眼睛对的后验概率即置信度,此处f(sub)=Σt=1Tαt(ht(sub)-12);]]>步骤3.3.3多层强分类器的级联整个眼睛对验证器采用分层结构,多层强分类器级联的具体训练步骤如下a)初始化i=1;定义每层强分类器的训练目标是在眼睛对训练集上FRR≤0.1%,在非眼睛对训练集上FAR≤50%;定义整个眼睛对检测器在眼睛对训练集上的目标FRR≤1%,在非眼睛对训练集上的目标FAR≤1×10-3;b)使用训练样本集采用步骤3.3.2所述的方法训练第i层强分类器;c)用训练得到的前i层分类器对样本集进行检测;d)如果FRR、FAR未达到预定值,则i←i+1,返回步骤(b)继续进行训练;否则停止训练;共训练得到9层结构从简单到复杂的强分类器;由这些强分类器级联构成一个完整的眼睛对检测器;在眼睛检测阶段,对于一张输入的人脸区域,使用以下步骤来精确定位眼睛中心位置步骤1估计左右眼睛所在的区域Ωlefteye和Ωrighteye;使用人脸图像竖直方向投影的均值、方差函数来确定Ωlefteye和Ωrighteye在水平方向上的分界线,然后根据从训练样本中统计到的眼睛在人脸区域竖直方向上的分布规律,确定Ωlefteye和Ωrighteye的上下边界,从而估计出Ωlefteye和Ωrighteye;步骤1.1利用投影函数确定眼睛区域的左右分界线取检测到的人脸区域的上半部分,以其垂直方向灰度投影的均值函数与方差函数的比值 的峰值作为左右两眼所在区域的竖直分界线,定义此位置为Xpeakxpeak=argmax0≤x<wfaceMPFv(x)VPFv(x)]]>步骤1.2利用样本统计信息得到眼睛区域的上下边界Ωlefteye、Ωrighteye的上下边界则可以利用样本中眼睛在人脸竖直方向的分布位置统计出来;有Ωlefteye=(x,y),0<x<xpeak,0.05Hface<y<0.45HfaceΩrighteye=(x,y)’xpeak<x<Wface’0.05Hface<y<0.45Hface其中Hface、Wface为利用样本统计得出的人脸高度和宽度步骤2利用单眼检测器检测眼睛候选在Ωlefteye、Ωrighteye两个区域中分别使用单眼检测器检测给出左右眼睛20个候选位置,并估计出每个候选位置的置信度,眼睛候选的具体检测过程如下步骤2.1输入人脸图像的积分图像的计算计算输入人脸图像I(x,y)对应的积分图像II(x,y)和平方积分图像SqrII(x,y)步骤2.2判别左右眼区域中的每一个的小窗口判别Ωlefteye、Ωrighteye两个区域中的每一个的24×12像素尺寸的小窗口,对任一个小窗口[x0,y0;x0+23,y0+11]的处理步骤如下步骤2.2.1.利用整幅图像的积分图IIi(x,y)和平方积分图SqrIIi(x,y)计算小窗口的均值μ和方差σ;μ=[II(x0+23,y0+11)+II(x0-1,y0-1)-II(x0-1,y0+11)-II(x0+23,y0-1)]/288σ={[SqrII(x0+23,y0+11)+SqrII(x0-1,y0-1)-SqrII(x0-1,y0+11)-SqrII(x0+23,y0-1)]/288-μ2}1/2步骤2.2.2利用前文介绍方法快速提取该小窗口的微结构特征,并进行特征归一化处理;步骤2.2.3采用训练好的多层眼睛/非眼睛强分类器对小窗口进行判断;如果通过所有层强分类器的判断,则认为该小窗口包含一个眼睛候选,输出其位置及其置信度;否则抛弃掉该小窗口,不进行后续处理;本发明根据候选的置信度大小输出最多前20个候选位置;步骤3眼睛候选对的验证为了排除眼睛候选中的误检测和不精确的定位结果,本发明将左右眼睛候选配对,提取候选周围区域更多的特征,然后使用眼睛对分类器来验证每一对候选,最后根据后验概率从所有候选对中估计出双眼的最佳位置,具体来说对每一对眼睛候选,包括以下处理步骤步骤3.1根据左右眼候选位置割取图像进行尺寸归一化对每一对眼睛候选,首先根据左右眼候选位置按照步骤1.1所示位置割取图像,然后进行尺寸归一化和光照归一化,得到25×15像素的眼睛候选对图像PI(x,y);步骤3.2输入图像积分图像的计算计算图像PI(x,y)对应的积分图像PII(x,y)=Σ0≤x′≤xΣ0≤y′≤yPI(x′,y′);]]>步骤3.3眼睛候选对图像PI(x,y)的判断对每一眼睛候选对图像PI(x,y)的验证步骤如下步骤3.3.1利用整幅图像的积分图提取微结构特征;步骤3.3.2采用训练好的第i层强分类器对图像进行判断;步骤3.3.3如果通过判断,则i←i+1,返回步骤3.3.2.2;否则抛弃掉该眼睛候选对;如果通过所有层强分类器的判断,则认为该候选对为有效候选对,输出其位置及其置信度;最后,对所有通过判断的候选对按照置信度从大到小排序,取置信度最大的前3对候选对的平均位置作为眼睛中心位置;输出眼睛位置。
全文摘要
复杂背景下的眼睛精确定位技术属于人脸识别领域。其特征在于,提出了一种性能鲁棒的复杂背景下图像中的眼睛精确定位方法。它采用高效率和高冗余度的微结构特征来表达眼睛模式局部和全局区域的灰度分布特点;并采用AdaBoost算法从中选择出最具有区分的微结构特征构成强分类器,综合考虑了局部特征以及能够表达这种约束关系的全局特征得到更鲁棒的定位效果。从而以更简单的结构实现复杂背景图像下更高性能的双眼定位;在多个公开数据库上以及竞赛评测的结果证明了本发明的优异性能。
文档编号G06K9/00GK1731418SQ200510086249
公开日2006年2月8日 申请日期2005年8月19日 优先权日2005年8月19日
发明者丁晓青, 马勇, 方驰, 刘长松, 彭良瑞 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1