基于AdaBoost算法的人脸检测——赵楠 北京大学 下载本文

北京大学本科生毕业论文 线性特征 (3)(4) 特定方向特征 (5) 表 2 特征模板

5.2.3 检测器内特征总数3

特征模板可以在子窗口内以“ 任意” 尺寸“ 任意” 放置,每一种形态称为一个特征。找出子窗口所有特征,是进行弱分类训练的基础。 5.2.3.1 子窗口内的条件矩形

3

Paul Viola 和Michael J. Jones 在其关于boosted cascade 的同一篇论文的三个版本中(参见[19][20][21]),

对 24×24 检测器中所含的矩形特征数量的描述各不相同(分别为160,000、180,000、45,396)。这一节推导出了矩形特征数量的计算公式。 基于 AdaBoost 算法的人脸检测 赵楠

29

北京大学本科生毕业论文 m

A( x , y ) 1 1 m

B ( x , y ) 2 2

图 10 计算m×m检测器内所有可能的矩形的数量。

以 m×m 像素分辨率的检测器为例,其内部存在的满足特定条件的所有矩形的总数可以这样计算:

对于 m×m 子窗口,我们只需要确定了矩形左上顶点 A(x1, y1)和右下顶点

B(x2, y2),即可以确定一个矩形;如果这个矩形还必须满足下面两个条件(称为 (s, t)条件,满足(s, t)条件的矩形称为条件矩形):

1) 2)

x 方向边长必须能被自然数 s 整除(能均等分成 s 段);

y 方向边长必须能被自然数 t 整除(能均等分成 t 段);则,这个矩

形的最小尺寸为 s×t 或 t×s,最大尺寸为 [m/s]·s×[m/t]·t 或 [m/t]·t×[m/s]·s;其中[ ]为取整运算符。

5.2.3.2 条件矩形的数量

我们通过下面两步就可以定位一个满足条件的矩形:

30

基于 AdaBoost 算法的人脸检测 赵楠

北京大学本科生毕业论文 1) 确定 A(x1, y1):x1 ∈{1,2,?,m ? s,m ? s +1}, y1 ∈{1,2,?,m ?t,m ? t +1}; 2) 确定 A 点后,B 点只能在图 10 中阴影内(包括边缘)取值,因此有:

x2 ∈Χ = {x1 + s ?1,x1 + 2? s?1,?, x1 + (p ?1)?s ?1, x1 + p? s ?1}, y2 ∈Υ = {y1 +t ?1, y1 + 2?t ?1,?, y1 + (q ?1)?t ?1, y1 + q ?t ?1},其

m ? x1 +1

s

m ? y1 +1

t

中 p =,q =。并且知

道: Χ = p, Υ = q。

由上分析可知,在 m×m 子窗口中,满足(s, t)条件的所有矩形的数量为:

m?s+1 m?t+1

x1=1

y1=1

q

=

m

x?1s=+11m

∑?1t=+1

m ? x1

+1+1

?

y

m ? yt s

1

1

m?s+1

= +1

x1=1

m ? xs1 +1

?

m

y?1=t+11

m ? ty

1

基于 AdaBoost 算法的人脸检测 赵楠 31

北京大学本科生毕业论文 ms s+ 1

mt?1

+1

+?

?

ms?1 +?mt

s +

t +t 1 +1

5.2.3.3 子窗口的特征矩形数量实际上,(s, t)条件描述了矩形特征的特征,下面

列出了不同矩形特征对应的 (s, t)条件:

特征模板 (s , t )条件 1 、 (1, 2) 2 、 (2, 1) 3 、 (1, 3) 4 、 (3, 1) 5 、 (2, 2) 表 3 特征模板的(s,t)条件

所以 m×m 子窗口中所有 5 种特征模板的特征总数量?m ,就是分别满足 5 个(s,t) 条件的矩形特征的数量的总和,即:

?m =?m(1,2) +?m(2,1) +?m(1,3) +?m(3,1) +?m(2,2)

特别地,由于特征模板 1 和 2、3 和 4 具有旋转对称性,则可以进一步简化为:

m( 2, 2)

5.2.3.4 结果

下面以 24×24 子窗口为例,具体计算其特征总数量: 特征模 板 基于 AdaBoost 算法的人脸检测 赵楠

数量

32

北京大学本科生毕业论文 1、 2、 2×?24(1,2) = 212+1+? 241 23231 242 +1+?232 = 2×(24 + 23+?+ 2 +1)×(12 +11+11+?+ 2 +1+1) = 2×300×144 = 2×43,200 = 86,400 3、 4、 2×?24(1,3) = 2 241 +1+? 231 243 34+1+?233 12 = 2×(24 + 23+?+ 2 +1)×(8 + 7 + 7 +?+1+1+1) = 2×300×92 = 2×27,600 = 55,200 5、 ? (242,2) +?2332+1242 232 242 232 +1 +?= (12 +11+11+?2 +1+1)×(12 +11+11+?+ 2 +1+1) =144×144 = 20,736 总数 ? 24 = 162,336 表 4 特征总数量的计算 下面列出了,在不同子窗口大小内,特征的总数量:

基于 AdaBoost 算法的人脸检测 赵楠

33