人脸检测-Adaboost算法和Haar特征(2)

Harr特征扩展:

假设人脸检测器的尺寸为W*H,同时假设有方法快速计算竖直和倾斜45的矩形的像素和。一个矩形可以表示为:

r = (x,y,w,h,a)

其中

0<=x,x+w<=W

0<=y,y+h<=H

x,y>=0

w,h>0

a取值0或者45

矩形的像素和表示为RecSum(r)

论文原始的特征集合表示的形式为:

  featureI = ∑iεI={1,...,N}ωi*RecSum(ri),其中ωi属于实数集,ri是矩形,N任意整数。

因为原始的特征几乎无限巨大。实际操作中,用以下的约束减小数量:

  1. 只考虑2个矩形的像素和(即RecSum(ri))的带权重和
  2. 2个矩形的权重值相反。为了补偿2个矩形面积大小差别的补偿,对于非重叠矩形,设-ω0*Area(r0)=ω1*Area(r1),可以设ω0为-1,则ω1=Area(r0)/Area(r1)
  3. 特征模仿类haar特征和早期的人类视觉特征中心环绕和方向的响应的路径(应该指的是下面的线特征和中心特征)

因此可以得到14种特征原型(如下图):

  • 四个边界特征
  • 八个线特征
  • 两个中心特征

人脸检测-Adaboost算法和Haar特征(2)_第1张图片

人脸检测-Adaboost算法和Haar特征(2)_第2张图片

人脸检测-Adaboost算法和Haar特征(2)_第3张图片

这些原型高和宽缩放独立,即不一定高和宽相同。

假设r0表示整个矩形(包括白和黑的矩形),r1表示黑的矩形,例如对于上图3的a线特征值(假设矩形的左上角坐标为(5,3))计算如下:

featureI=-1*RecSum(5,3,6,2,0)+3*RecSum(7,3,2,2,0)

对于viola使用到的下图的对角特征特征在这个论文没有使用到,因为可以使用图3的g和e近似地表示。

人脸检测-Adaboost算法和Haar特征(2)_第4张图片

  • 特征数目的计算:

设X=floor(W/w)和Y=floor(H/h)是在x和y方向的最大缩放率。W和H为图像的宽和高。

竖直特征的数目:X*Y*(W+1-w*(X+1)/2)*(H+1-h*(Y+1)/2)

倾斜45特征数目:X*Y*(W+1-z*(X+1)/2)*(H+1-z*(Y+1)/2),其中z=w+h

下表为24*24大小的检测器各个原型特征的数目:

人脸检测-Adaboost算法和Haar特征(2)_第5张图片

  • 快速的特征计算:

计算特征值需要戒指2个辅助的图像,即积分图像SAT(x,y)和倾斜45的积分图RSAT(x,y)。

  1. 积分图SAT(x,y)定义如下:

    SAT(x,y)=∑I(x',y'),其中x'<=x,y'<=y

    可以使用以下的递归式一次遍历原始图像计算积分图SAT(x,y):

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

    SAT(-1,y)=SAT(x,-1)=0

    对于矩形r=(x,y,w,h,0)可以4次查表积分图SAT(x,y)快速计算:

    RecSum(r)=SAT(x-1,y-1)+SAT(x+w-1,y+h-1)-SAT(x-1,y+h-1)-SAT(x+w-1,y-1)

  2. 积分图RSAT(x,y)定义如下:

    RSAT(x,y)=∑I(x',y'),其中x'<=x,x'<=x-|y-y'|

    可以使用以下的递归式2次遍历原始图像计算积分图RSAT(x,y):

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

    RSAT(-1,y)=RSAT(-2,y)=RSAT(x,-1)=0

    RSAT(x,y)=RSAT(x,y)+RSAT(x-1,y+1)-RSAT(x-2,y)

    对于矩形r=(x,y,w,h,45)可以4次查表积分图RSAT(x,y)快速计算:

    RecSum(r)=RSAT(x+w,y+w)+RSAT(x-h,y+h)-RSAT(x,y)-RSAT(x+w-h,y+w+h)

  • 快速光照校正(即归一化,减少光照等带来的影响)

归一化方程:

I(x,y)=(I(x,y)-μ)/(c*σ),其中c为正的实数,本论文为2

μ为积分图SAT(x,y)的均值

可以使用I(x,y)平方的第二种积分图SAT和RSAT开始计算标准差σ

分类器级联

人脸检测-Adaboost算法和Haar特征(2)_第6张图片

 论文的级联结构中的强分类器使用discrete adaboost algorithm,即离散的adaboost算法训练,使得每级达到一定的检出率和虚警率。

  • 级联的快速的最优化(stage post-optimization)

给一个离散型的分类器:

c(x)=sign{∑am*fm(x|tm)+b}

其中

b=0

tm为自由参数,弱分类器fm的阈值

am应该跟保持adaboost属性的代价函数相关的

分类器级联的训练的步骤如下:

人脸检测-Adaboost算法和Haar特征(2)_第7张图片

你可能感兴趣的:(boost)