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

著录项
  • CN200510086249.X
  • 20050819
  • CN1731418A
  • 20060208
  • 清华大学
  • 丁晓青;马勇;方驰;刘长松;彭良瑞
  • G06K9/00
  • G06K9/00

  • 北京市-82信箱
  • 北京(11)
摘要
复杂背景下的眼睛精确定位技术属于人脸识别领域。其特征在于,提出了一种性能鲁棒的复杂背景下图像中的眼睛精确定位方法。它采用高效率和高冗余度的微结构特征来表达眼睛模式局部和全局区域的灰度分布特点;并采用AdaBoost算法从中选择出最具有区分的微结构特征构成强分类器,综合考虑了局部特征以及能够表达这种约束关系的全局特征得到更鲁棒的定位效果。从而以更简单的结构实现复杂背景图像下更高性能的双眼定位;在多个公开数据库上以及竞赛评测的结果证明了本发明的优异性能。
权利要求

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/r x,y/r y)

其中r x和r y分别为x和y方向的尺度变换因子:r x=N/H,r y=M/W,根据线性插值方法,对于给定 (x,y),令:

x / r x = x 0 + Δ x y / r y = y 0 + Δ y , 0 Δ x , Δ y < 1

其中: x 0 = [ x / r x ] , Δ x = x / r x - x 0 y 0 = [ y / r y ] , Δ y = y / r y - y 0 , [·]为取整函数,插值过程可表示为:

       G(x,y)=F(x 0+Δ x,y 0+Δ y)=F(x 0,y 0)Δ xΔ y+F(x 0+1,y 0)(1-Δ x)Δ y

       +F(x 0,y 0+1)Δ x(1-Δ y)+F(x 0+1,y 0+1)(1-Δ x)(1-Δ y)

步骤1.3灰度归一化

由于外界光照、成像设备等因素可能导致图像亮度或对比度异常,出现强阴影或反光等 情况,所以还需要对几何归一化后的样本进行灰度均衡化处理,改善其灰度分布,增强模式 间的一致性,本发明采用灰度均值、方差归一化对样本进行灰度均衡化处理,将样本图片灰 度的均值 μ和方差 σ调整到给定值μ 0和σ 0:

首先采用下式计算样本图像G(x,y)(0≤x<W,0≤y<H)的均值和方差:

μ = 1 WH Σ y = 0 H - 1 Σ x = 0 W - 1 G ( x , y )

σ = 1 WH Σ y = 0 H - 1 Σ x = 0 W - 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 y I ( 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像素的人眼小窗口区域(x 0≤x′≤x 0+23,y 0≤y′≤y 0+11)内的像素灰度和 的均值 μ和方差 σ:

μ=[II(x 0+23,y 0+11)+II(x 0-1,y 0-1)-II(x 0-1,y 0+11)-II(x 0+23,y 0-1)]/288

σ={[SqrII(x 0+23,y 0+11)+SqrII(x 0-1,y 0-1)-SqrII(x 0-1,y 0+11)

    -SqrII(x 0+23,y 0-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弱分类器的构造

弱分类器要具有非常高的分类速度,整个强分类器才能达到足够高的分类速度,本发明 对应于每一维特征构造最简单的树分类器来作为弱分类器:

h j ( sub ) = 1 , if g j ( sub ) < θ j or g j ( sub ) > θ j 0 , otherwise

其中sub是一个24×12像素的样本,g j(sub)表示从该样本提取得到的第j个特征,θ j是 第j个特征对应的判决阈值,该阈值通过统计所有采集的眼睛和非眼睛样本的第j个特征使 得眼睛样本的FRR满足规定的要求来得到,h j(sub)表示使用第j个特征构造的树分类器的判 决输出,这样每个弱分类器只需要比较一次阈值就可以完成判决;共可得到42727个弱分类 器;

步骤2.3.2基于AdaBoost算法的眼睛/非眼睛强分类器设计

本发明将AdaBoost算法结合上述弱分类器构造方法用于训练眼睛/非眼睛强分类器;训 练算法步骤如下,记给定训练集L={(sub i,l i)},i=1,...,n,l i=0,1是样本图像sub i的类别标号, 分别对应非眼睛类别和眼睛类别,其中眼睛样本n eye个,非眼睛样本n noneye个;

步骤2.3.2.1参数的初始化

训练样本权重的初始化。初始每个样本的权重为 D 1 ( i ) = 1 n ;

选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐 增多,具体选择值见表1;

统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j),其中j为特征序号, 1≤j≤42727;

步骤2.3.2.2重复以下过程T次,t=1,...,T:

a.)使用第j个特征,1≤j≤42727构造弱分类器h j,然后在Fmin(j)和Fmax(j)间穷举 搜索阈值参数θ j,使得h j的错误率ε j最小,定义 ϵ j = Σ i = 1 n D t ( i ) · | h j ( sub i ) - l i | ;

b.)令 ϵ t = arg min 1 j 42727 ϵ j , 并将其对应的弱分类器作为h t;

c.)计算参数 α t = 1 2 ln ( 1 - ϵ t ϵ t ) ;

d.)更新样本的权重 D t + 1 ( i ) = D t ( i ) exp ( - α t l i h t ( sub i ) ) Z t , 其中i=1,...,n,

Z t = Σ i = 1 n D t ( i ) exp ( - α t l i h t ( sub i ) ) .

步骤2.3.2.3输出最后的强分类器

对于通过强分类器判断的模式,本发明采用 P ( 1 | f ( x ) ) = e f ( x ) e f ( x ) + e - f ( x ) 得到模式属于眼睛的 后验概率,此处 f ( x ) = Σ t = 1 T α t ( h t ( x ) - 1 2 ) ;

步骤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像素小窗口的灰度均值 μ和方差 σ,小窗口区域为 (x 0≤x′≤x 0+24,y 0≤y′≤y 0+14),则 μ和 σ分别为:

μ=[II(x 0+24,y 0+14)+II(x 0-1,y 0-1)-II(x 0-1,y 0+14)-II(x 0+24,y 0-1)]/365

σ={[SqrII(x 0+24,y 0+14)+SqrII(x 0-1,y 0-1)-SqrII(x 0-1,y 0+14)

    -SqrII(x 0+24,y 0-1)]/365- μ 2} 1/2

其次对每一个维微结构特征进行如下的归一化:

FV ( j ) = σ 0 σ FV ( j )

对于一个25×15像素的样本图像,共得到71210维微结构特征FV(j),1≤j≤71210。

步骤3.3特征选择及分类器设计

为达到足够快的验证速度,一个眼睛对检测器必顺采用分层结构,先由结构简单的强分 类器排除掉图像中的背景窗口,然后由结构复杂的强他类器对余下窗口进行判断,本部分仍 然使用AdaBoost算法选择特征和训练分类器,具体来说包括以下几个组成部分:

步骤3.3.1弱分类器的构造

弱分类器仍使用一维特征构造的树分类器;

h j ( sub ) = 1 , if g j ( sub ) < θ j or g j ( sub ) > θ j 0 , otherwise

共可得到71210个弱分类器。

步骤3.3.2基于AdaBoost算法的眼睛/非眼睛强分类器设计

将CS-AdaBoost算法结合上述弱分类器构造方法用于训练眼睛对强分类器,训练步骤如 下,记训练样本集L={(sub i,l i)],i=1,...,n,l i=0,1是样本图像sub i的类别标号,分别对应非 眼睛对类别和眼睛对类别,其中眼睛对样本n eye个,非眼睛对样本n noneye个:

步骤3.3.2.1参数的初始化

训练样本误分类风险的初始化,对于每个眼睛对样本的误分类风险 C ( i ) = 2 c c + 1 , 对每个非 眼睛对样本的误分类风险 C ( i ) = 2 c + 1 c 是眼睛对类别是非眼睛对类别的误分类风险倍数,c值 应大于1且随着强分类器层数的增多逐渐减小接近于1;

训练样本权重的初始化,初始每个样本的权重为 D 1 ( i ) = 1 n ;

选择迭代次数T,T即为希望使用的弱分类器的个数,T应随着强分类器层数的增多逐 渐增多;

统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j),其中j为特征序号, 1≤j≤71210:

F max ( j ) = max 1 i n F V i ( j ) , F min ( j ) = min 1 i n F V i ( j ) ;

步骤3.3.2.2重复以下过程T次,t=1,...,T:

a.)使用第j个特征(1≤j≤71210)构造弱分类器h j,然后在Fmin(j)和Fmax(j)间 穷举搜索阈值参数θ j,使得h j的错误率ε j最小,定义 ϵ j = Σ i = 1 n D t ( i ) · | h j ( sub i ) - l i | ;

b.)令 ϵ t = arg min 1 j 71210 ϵ j , 并将其对应的弱分类器作为h t;

c.)计算参数 α t = 1 2 ln ( 1 - ϵ t ϵ t ) ;

d.)更新样本的权重 D t + 1 ( i ) = D t ( i ) exp ( - α t l i h t ( sub i ) ) Z t , 其中i=1,...,n,

Z t = Σ i = 1 n D t ( i ) exp ( - α t l i h t ( sub i ) ) ;

步骤3.3.2.3输出最后的强分类器

对于通过强分类器判断的模式,本发明采用 P ( 1 | f ( sub ) ) = e f ( sub ) e f ( sub ) + e - f ( sub ) 得到模式属于眼 睛对的后验概率即置信度,此处 f ( sub ) = Σ t = 1 T α t ( h t ( sub ) - 1 2 ) ;

步骤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利用投影函数确定眼睛区域的左右分界线

取检测到的人脸区域的上半部分,以其垂直方向灰度投影的均值函数与方差函数的比值 的峰值作为左右两眼所在区域的竖直分界线,定义此位置为X peak:

x peak = arg max 0 x < w face MP F v ( x ) VP F v ( x )

步骤1.2利用样本统计信息得到眼睛区域的上下边界

Ω lefteye、Ω righteye的上下边界则可以利用样本中眼睛在人脸竖直方向的分布位置统计出来; 有

          Ω lefteye=(x,y),0<x<x peak,0.05H face<y<0.45H face

          Ω righteye=(x,y)’x peak<x<W face’0.05H face<y<0.45H face

其中H face、W face为利用样本统计得出的人脸高度和宽度

步骤2利用单眼检测器检测眼睛候选

在Ω lefteye、Ω righteye两个区域中分别使用单眼检测器检测给出左右眼睛20个候选位置,并 估计出每个候选位置的置信度,眼睛候选的具体检测过程如下:

步骤2.1输入人脸图像的积分图像的计算

计算输入人脸图像I(x,y)对应的积分图像II(x,y)和平方积分图像SqrII(x,y):

步骤2.2判别左右眼区域中的每一个的小窗口

判别Ω lefteye、Ω righteye两个区域中的每一个的24×12像素尺寸的小窗口,对任一个小窗口

[x 0,y 0;x 0+23,y 0+11]的处理步骤如下:

步骤2.2.1.利用整幅图像的积分图II i(x,y)和平方积分图SqrII i(x,y)计算小窗口的均值 μ和方差 σ;

μ=[II(x 0+23,y 0+11)+II(x 0-1,y 0-1)-II(x 0-1,y 0+11)-II(x 0+23,y 0-1)]/288

σ={[SqrII(x 0+23,y 0+11)+SqrII(x 0-1,y 0-1)-SqrII(x 0-1,y 0+11)

    -SqrII(x 0+23,y 0-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 y PI ( 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对候选 对的平均位置作为眼睛中心位置;输出眼睛位置。

说明书
技术领域

技术领域

复杂背景图像中眼睛定位方法属于人脸识别技术领域。

背景技术

本发明提出的方法所要解决的问题是得到人脸位置信息后进行的眼睛精确定位问题。眼 睛精确定位是人脸信息处理的一项关键技术,广泛应用于人脸识别、人机交互、智能人机接 口等系统中。复杂背景下眼睛精确定位也是一个极具挑战性的问题。这除了是由于光照、尺 寸、姿态、平面旋转、图像质量等因素给眼睛外观带来复杂的变化外,眼睛的开闭、眼镜的 反光、头发和镜框的遮挡等也给眼睛的精确定位带来很多困难;特别是在眼睛闭合的情况下, 眉毛以及粗镜框都会给眼睛定位带来较大干扰。

目前提出的眼睛精确定位主流方法是基于启发式规则的方法。这类方法主要是根据眼睛 的先验知识来制定定位规则。这些先验知识包括器官分布知识、形状知识、颜知识、物理 特性等。这类方法一般适应外界变化的能力较差,往往只能处理器官的一种或几种变化,稳 定性和精度与实际应用的要求还有差距。造成这个现象的原因主要是它们仅考虑了器官的局 部外观,而没有考虑器官与邻近区域或器官间的约束关系。这样当脸部存在与目标器官外观 相似的物体时,就会给定位带来影响。比如眼睛闭合时的外观与眉毛、粗镜框很相似。所以 要综合考虑器官局部特征以及能够表达这种约束关系的全局特征才能获得更鲁棒的定位效 果。

本发明在全面细致考察眼睛定位问题特点的基础上,提出了基于全局和局部特征相结合 的眼睛精确定位方法,可以鲁棒地实现复杂背景下高性能的眼睛精确定位,这是目前所有其 他文献里没有使用过的方法。

发明内容

本发明的目的在于实现一个能在各种环境下稳定精确地定位人脸双眼中心地方法。它包 括训练和检测两个阶段。

在训练阶段,首先采集大量样本,即采用人手工标定的方法,从人脸图像中收集训练样 本,然后对样本进行归一化处理。利用采集到的训练样本,进行特征抽取,得到训练样本的 特征库。在特征库的基础上,通过实验确定分类器的参数,训练得到眼睛定位分类器。

在检测阶段,对一张输入的人脸图像区域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 / r x = x 0 + Δ x y / r y = y 0 + Δ y , 0 Δ x , Δ y < 1

 其中: x 0 = [ x / r x ] , Δ x = x / r x - x 0 y 0 = [ y / r y ] , Δ y = y / r y - y 0 , [●]为取整函数。插值过程可表示为:

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)的均值和方差:

μ - = 1 WH Σ y = 0 H - 1 Σ x = 0 W - 1 G ( x , y )

σ = 1 WH Σ y = 0 H - 1 Σ x = 0 W - 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)定义为:

MPF v ( x ) = 1 y 2 - y 1 Σ y = y 1 y 2 I ( x , y )

VPF v ( x ) = 1 y 2 - y 1 Σ y = y 1 y 2 [ I ( x , y ) - MPF v ( x ) ] 2

MPFv(x)、VPFv(x)刻画了图像在竖直方向的平均亮度及亮度的变化程度。

2.2利用投影函数确定眼睛区域

由于人脸区域中额头、鼻梁竖直方向的平均亮度一般比眼睛区域竖直方向的平均亮度高,
而竖直方向上的变化却不如眼睛区域的变化剧烈。所以取检测到的人脸区域的上半部分,其
垂直方向灰度投影的均值函数与方差函数的比值 在鼻梁附近会存在一个明显的峰
值,以此峰的位置作为左右两眼所在区域的竖直分界线,如图5(b)示。有:

x peak = arg max 0 x W face MPF v ( x ) VPF v ( x )

Ωlefteye、Ωrighteye的上下边界则可以利用人脸样本中眼睛在竖直方向的分布位置统计出来。 由以上得到:Ωlefteye=[0,0.05Hface;xpeak,0.45Hface],其中(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 ( x 1 , y 1 ; x 2 , y 2 ) = Σ x 1 x x 2 Σ y 1 y y 2 I ( 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 y I ( 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 y I ( 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弱分类器的构造

本发明中弱分类器是使用一维特征构造的树分类器:

h j ( sub ) = 1 , if g j ( sub ) < θ j or g j ( sub ) > θ j 0 , 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 ) = 2 c c + 1 , 对每个非眼 睛样本的误分类风险 C ( i ) = 2 c + 1 (c是眼睛类别是非眼睛类别的误分类风险倍数,c值应大于 1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表1);

训练样本权重的初始化。初始每个样本的权重为 D 1 ( i ) = 1 n ;

选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐 增多,具体选择值见表1;

统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号, 1≤j≤42727): F max ( j ) = max 1 i n FV i ( j ) , F min ( j ) = min 1 i n FV i ( j ) ;

3.2.2.2重复以下过程T次(t=1,...,T):

a.)使用第j个特征(1≤j≤42727)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷 举搜索阈值参数θj,使得hj的错误率εj最小,定义 ϵ j = Σ i = 1 n D t ( i ) · | h j ( sub i ) - l i | ;

b.)令 ϵ t = arg min 1 j 42727 ϵ j , 并将其对应的弱分类器作为ht;

c.)计算参数 α t = 1 2 ln ( 1 - ϵ t ϵ t ) ;

d.)更新样本的权重 D t + 1 ( i ) = D t ( i ) exp ( - α t y i h t ( sub i ) ) Z t , 其中i=1,...,n,

Z t = Σ i = 1 n D t ( i ) exp ( - α t y i h t ( sub i ) ) .

3.2.2.3输出最后的强分类器

对于通过强分类器判断的模式,本发明采用 P ( 1 | f ( sub ) ) = e f ( sub ) e f ( sub ) + e - f ( sub ) 得到模式属于眼 睛的后验概率,此处 f ( sub ) = Σ t = 1 T α t ( h t ( sub ) - 1 2 ) .

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 y I ( x , y ) 快速得到任意尺度、任意位置的一种 微结构特征。同样定义平方积分图像 SqrII ( x , y ) = Σ 0 x x Σ 0 y y I ( 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弱分类器的构造

弱分类器仍使用一维特征构造的树分类器:

h j ( sub ) = 1 , if g j ( sub ) < θ j or g j ( sub ) > θ j 0 , 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 ) = 2 c c + 1 , 对每个非 眼睛对样本的误分类风险 C ( i ) = 2 c + 1 (c是眼睛对类别是非眼睛对类别的误分类风险倍数,c值 应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表2);

训练样本权重的初始化。初始每个样本的权重为 D 1 ( i ) = 1 n ;

选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐 增多,具体选择值见表2;

统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号, 1≤j≤71210): F max ( j ) = max 1 i n FV i ( j ) , F min ( j ) = min 1 i n FV i ( j ) ;

4.2.2.2重复以下过程T次(t=1,...,T):

a.)使用第j个特征(1≤j≤71210)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷 举搜索阈值参数θj,使得hj的错误率εj最小,定义 ϵ j = Σ i = 1 n D t ( i ) · | h j ( sub i ) - l i | ;

b.)令 ϵ t = arg min 1 j 71210 ϵ j , 并将其对应的弱分类器作为hj;

c.)计算参数 α t = 1 2 ln ( 1 - ϵ t ϵ t ) ;

d.)更新样本的权重 D t + 1 ( i ) = D t ( i ) exp ( - α t y i h t ( sub i ) ) Z t , 其中i=1,...,n,

Z t = Σ i = 1 n D t ( i ) exp ( - α t y i h t ( sub i ) ) .

4.2.2.3输出最后的强分类器

对于通过强分类器判断的模式,本发明采用 P ( 1 | f ( sub ) ) = e f ( sub ) e f ( sub ) + e - f ( sub ) 得到模式属于眼 睛对的后验概率,此处 f ( sub ) = Σ t T α t ( h t ( sub ) - 1 2 ) .

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 / r x = x 0 + Δ x y / r y = y 0 + Δ y , 0 Δ x , Δ y < 1

其中: x 0 = [ r / r x ] , Δ x = x / r x - x 0 y 0 = [ y / r y ] , Δ y = y / r y - y 0 , [●]为取整函数。插值过程可表示为:

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)的均值和方差:

μ = 1 WH Σ y = 0 H - 1 Σ x = 0 W - 1 G ( x , y )

σ = 1 WH Σ y = 0 H - 1 Σ x = 0 W - 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 y I ( 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)弱分类器的构造

弱分类器要具有非常高的分类速度,整个强分类器才能达到足够高的分类速度。本发明 对应于每一维特征构造最简单的树分类器来作为弱分类器:

h j ( sub ) = 1 , if g j ( sub ) < θ j or g j ( sub ) > θ j 0 , 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)参数的初始化

训练样本权重的初始化。初始每个样本的权重为 D 1 ( i ) = 1 n ;

选择迭代次数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 = 1 n D t ( i ) · | h j ( sub i ) - l i | ;

b.)令 ϵ t = arg min 1 j 42727 ϵ j , 并将其对应的弱分类器作为ht;

c.)计算参数 α t = 1 2 ln ( 1 - ϵ t ϵ t ) ;

d.)更新样本的权重 D t + 1 ( i ) = D t ( i ) exp ( - α t y i h t ( sub i ) ) Z t , 其中i=1,...,n,

Z t = Σ i = 1 n D t ( i ) exp ( - α t y i h t ( sub i ) ) .

(2.2.2.3)输出最后的强分类器

对于通过强分类器判断的模式,本发明采用 P ( 1 | f ( x ) ) = e f ( x ) e f ( x ) + e - f ( x ) 得到模式属于眼睛的 后验概率,此处 f ( x ) = Σ t = 1 T α t ( h t ( x ) - 1 2 ) .

(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 y I ( x , y ) 快速得到任意尺度、任意位置的一种 微结构特征。同样定义平方积分图像 SqrII ( x , y ) = Σ 0 x x Σ 0 y y I ( 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)弱分类器的构造

弱分类器仍使用一维特征构造的树分类器:

h j ( sub ) = 1 , if g j ( sub ) < θ j or g j ( sub ) > θ j 0 , 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 ) = 2 c c + 1 , 对每个非 眼睛对样本的误分类风险 C ( i ) = 2 c + 1 (c是眼睛对类别是非眼睛对类别的误分类风险倍数,c值 应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表2); 训练样本权重的初始化。初始每个样本的权重为 D 1 ( i ) = 1 n ;

选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐 增多,具体选择值见表2;

统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号, 1≤j≤71210): F max ( j ) = max 1 i n FV i ( j ) , F min ( j ) = min 1 i n FV i ( j ) ;

(3.2.2.2)重复以下过程T次(t=1,...,T):

a.)使用第j个特征(1≤j≤71210)构造弱分类器hj,然后在Fmin(j)和Fmax(j)间穷 举搜索阈值参数θj,使得hj的错误率εj最小,定义 ϵ j = Σ i = 1 n D t ( i ) · | h j ( sub i ) - l i | ;

b.)令 ϵ t = arg min 1 j 71210 ϵ j , 并将其对应的弱分类器作为hj;

c.)计算参数 α t = 1 2 ln ( 1 - ϵ t ϵ t ) ;

d.)更新样本的权重 D t + 1 ( i ) = D t ( i ) exp ( - α t y i h t ( sub i ) ) Z t , 其中i=1,...,n,

Z t = Σ i = 1 n D t ( i ) exp ( - α t y i h t ( sub i ) ) .

(3.2.2.3)输出最后的强分类器

对于通过强分类器判断的模式,本发明采用 P ( 1 | f ( sub ) ) = e f ( sub ) e f ( sub ) + e - f ( sub ) 得到模式属于眼 睛对的后验概率,此处 f ( sub ) = Σ t = 1 T α t ( h t ( sub ) - 1 2 ) .

(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)示。定义此位置为xpeak

x peak = arg max 0 x < W face MPF v ( x ) VPF v ( 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

2.利用单眼检测器检测眼睛候选

在Ωlefteye、Ωrighteye两个区域中分别使用单眼检测器检测给出左右眼睛20个候选位置,并 估计出每个候选位置的置信度。眼睛候选的具体检测过程如下:

(2.1)输入人脸图像的积分图像的计算

计算输入人脸图像I(x,y)对应的积分图像 II ( x , y ) = Σ 0 x x Σ 0 y y I ( x , y ) 和平方积分图像

SqrII ( x , y ) = Σ 0 x x Σ 0 y y I ( 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 y PI ( 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张图像。其特 点是图像背景和图像质量有很大变化,包括受控、降质和恶劣三种场景下采集到的图像,另 外光照和人脸姿态变化也很复杂,多人还佩戴有黑框眼镜;

测试集3:JAFFE数据库,包括213张人脸图像,其特点是人脸表情变化丰富;

在来源和变化如此丰富的集合上进行的测试应该能真实反映出一个定位算法的性能:

表1  与其它定位算法在不同允许误差下的性能比较


与其它方法的性能比较如表1所示。其中与Identix[http://www.identix/]公司的著名产品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 / r x = x 0 + Δ x y / r y = y 0 + Δ y , 0 Δ x , Δ y < 1

其中: x 0 = [ x / r x ] , Δ x = x / r x - x 0 y 0 = [ y / r y ] , Δ y = y / r y - y 0 [●]为取整函数。插值过程可表示为:

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)的均值和方差:

μ = 1 WH Σ y = 0 H - 1 Σ x = 0 W - 1 G ( x , y )

σ = 1 WH Σ y = 0 H - 1 Σ x = 0 W - 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 y I ( 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弱分类器的构造

弱分类器要具有非常高的分类速度,整个强分类器才能达到足够高的分类速度。本发明 对应于每一维特征构造最简单的树分类器来作为弱分类器:

h j ( sub ) = 1 , if g j ( sub ) < θ j or g j ( sub ) > θ j 0 , 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参数的初始化

训练样本权重的初始化。初始每个样本的权重为 D 1 ( i ) = 1 n ;

选择迭代次数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 = 1 n D t ( i ) · | h j ( sub i ) - l i | ;

b.)令 ϵ t = arg min 1 j 42727 ϵ j , 并将其对应的弱分类器作为hj;

c.)计算参数 α t = 1 2 ln ( 1 - ϵ t ϵ t ) ;

d.)更新样本的权重 D t + 1 ( i ) = D t ( i ) exp ( - α t y i h t ( sub i ) ) Z t , 其中i=1,...,n,

Z t = Σ i = 1 n D t ( i ) exp ( - α t y i h t ( sub i ) ) .

A.2.2.2.3输出最后的强分类器

对于通过强分类器判断的模式,本发明采用 P ( 1 | f ( x ) ) = e f ( x ) e f ( x ) + e - f ( x ) 得到模式属于眼睛的 置信度,此处 f ( x ) = Σ t = 1 T α t ( h t ( x ) - 1 2 ) .

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 y I ( x , y ) 快速得到任意尺度、任意位置的一种 微结构特征。同样定义平方积分图像 SqrII ( x , y ) = Σ 0 x x Σ 0 y y I ( 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弱分类器的构造

弱分类器仍使用一维特征构造的树分类器:

h j ( sub ) = 1 , if g j ( sub ) < θ j or g j ( sub ) > θ j 0 , 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 ) = 2 c c + 1 , 对每个非 眼睛对样本的误分类风险 C ( i ) = 2 c + 1 (c是眼睛对类别是非眼睛对类别的误分类风险倍数,c值 应大于1且随着强分类器层数的增多逐渐减小接近于1,具体选择值见表2);

训练样本权重的初始化。初始每个样本的权重为 D 1 ( i ) = 1 n ;

选择迭代次数T(T即为希望使用的弱分类器的个数),T应随着强分类器层数的增多逐渐 增多,具体选择值见表2;

统计样本集上每个特征分布的极大值Fmax(j)和极小值Fmin(j)(其中j为特征序号, 1≤j≤71210): F max ( j ) = max 1 i n FV i ( j ) , F min ( j ) = min 1 i n FV i ( 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 = 1 n D t ( i ) · | h j ( sub i - l i ) | ;

b.)令 ϵ t = arg min 1 j 71210 ϵ j , 并将其对应的弱分类器作为hj;

c.)计算参数 α t = 1 2 ln ( 1 - ϵ t ϵ t ) ;

d.)更新样本的权重 D t + 1 ( i ) = D t ( i ) exp ( - α t y i h t ( sub i ) ) Z t , 其中i=1,...,n,

Z t = Σ i = 1 n D t ( i ) exp ( - α t y i h t ( sub i ) ) .

A.3.2.2.3输出最后的强分类器

对于通过强分类器判断的模式,本发明采用 P ( 1 | f ( sub ) ) = e f ( sub ) e f ( sub ) + e - f ( sub ) 得到模式属于眼 睛对的后验概率,此处 f ( sub ) = Σ t = 1 T α t ( h t ( sub ) - 1 2 ) .

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

x peak = arg max 0 x < W face MPF v ( x ) VPF v ( 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.45Hface

B.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间的欧氏距离。

则眼睛定位误差定义为:

e eye = max ( d le , d re ) d lr

考虑到不同人的手工标定结果之间的差异都可能达到0.10,本文以0.15作为定位准确与 否的界限,当眼睛定位误差eeye<0.15时,认为双眼的定位是准确的;

实施例1:基于人脸的识别签到系统(如图9)

人脸认证是近来受到广泛关注的生物特征认证技术中最友好的一种认证方式,旨在利用 人脸图像进行计算机自动个人身份认证,以代替传统的密码、证件、印章等身份认证方式, 具有不易伪造、不会丢失以及方便等优点。本系统利用人脸信息来对人身份进行自动验证。 其中使用的人脸检测模块是本文的研究成果。此外本系统还参加了ICPR2004组织的FAT2004 竞赛。此次竞赛共有包括来自美国的Carnegie Mellon大学、德国的Neuroinformatik研究 所、英国的Surrey大学等11个学术和商业机构的13个人脸识别算法参加。本实验室所提交 的系统在三个评价指标上都比第二名以低约50%错误率的结果获得第一名。本文的研究成果 应用在本实验实所提交系统的眼睛定位模块中,从而保证了系统的总体性能居于世界先进水 平。

综上所述,本发明能够在具有复杂背景的图像中鲁棒精确地定位人脸,在实验中获得了 优异的定位结果,具有非常广泛的应用前景。

本文发布于:2024-09-25 10:29:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/73139.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议