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

内容发布更新时间 : 2024/5/12 2:57:07星期一 下面是文章的全部内容请认真阅读。

北京大学本科生毕业论文 窗口大小 特征数量 36×36 816,264 30×30 394,725 24×24 162,336 20×20 16×16 32,384 78,460 表 5 不同子窗口大小内,特征的总数量

5.3 积分图 Integral Image

5.3.1 概念

一个简单的微积分类比:如果我们要经常计算 ∫ f (x) dx ,那我们会先计算

b

a

F(x) =f (x) dx,那么 ∫ f (x) dx = F(b)? F(a) 。见图 11。积分图的含义与此类

b

a

似。

f(x)

a b

图 11 “ 积分图” 与积分的类比

只需要对每个像素进行少量的计算工作,就能得到一幅图像的“ 积分图”。

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

北京大学本科生毕业论文 “ 积分图” 能够在多种尺度下,使用相同的时间来计算不同的特征,因此大大提高了检测速度。

对于图像内一点 A(x, y) ,定义其积分图ii(x, y)为(如图 12):

ii(x, y) = ∑i(x', y' ),

x'≤x, y'≤ y

其中i(x', y')为点(x', y')处的“ 原始图”,是此点的颜色值;对于灰度图象,其值为 0~255。对于彩色图像,可以先按照人脸色彩空间将其转化为灰度取值。

ii(x, y)也可以通过下式迭代求出:

ii(x, y) = ii(x ?1, y)+ s(x, y) s(x, y) = s(x, y ?1)+ i(x, y)

其中s(x, y)为点(x, y)及其 y 方向向上所有原始图像之和(如图 12),称为“ 列 积分和”,可以定义为: s(x, y) =∑i(x, y')

y'≤y

并定义s(x,0) = 0,ii(0, y) = 0

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

北京大学本科生毕业论文 (1, 1) x x

s ( x , y ) y A( x , y ) y

图 12 坐标 A(x, y) 的积分图定义为其左上角矩形所有像素之和(图中阴影部分)。s(x, y)为 A(x, y) 及其 y 方向向上所有像素之和(图中粗黑竖

线)

设图像大小为m×n,则积分图矩阵(图像上所有像素的积分图)为:

ii(1,1)=ii(0,1)+s(1,1)ii(2,1)=ii(1,1)+s(2,1) s(1,1)=s(1,0)+i(1,1) ii(1,2)=ii(0,2)+s(1,2

) ?

s(2,1)=s(2,0)+i(2,1

)

ii(m?1,1)=ii(m?2,1)+s(m?1,1)ii(m,1)=ii(m?1,1)+s(m,1)

s(m?1,1)=s(m?1,0)+i(m?1,1

)

s(m,1)=s(m,0)+i(m,1) ii(m,2)=ii(m?1,2)+s(m,2

)

s(1,2)=s(0,1)+i(1,2)s(m,2)=s(m,1)+i(m,2)

ii(1,n)=ii(0,n)+s(1,n) ii(1,n?1)=ii(0,n?1)+s(1,n?1)ii(m?1,n)=ii(m?2,n)+s(mii(m,n)=ii(m?1,n)+s(m,n)

????

ii(1,n?1)=ii(0,n?1)+s(1,n?1)ii(m,n?1)=ii(m?1,n?1)+s(m,n?1)基于 AdaBoost 算法的人脸检测 赵楠

36

北京大学本科生毕业论文 s(1,n?1)=s(1,n?2)+i(1,n?1)s(m,n?1)=s(m,n?2)+i(m,n?1)

s(1,n)=s(1,n?1)+i(1,n)s(1,n?1)=s(1,n?2)+i(1,n?1) ??s(m?1,n)=s(m?1,n?1)+i(m?1,n)s(m,n)=s(m,n?1)+i(m,n)

可见,只需要遍历图像一次,迭代m×n×2 次,即可以得到整个积分图矩阵。

5.3.2 利用积分图计算矩形特征值

5.3.2.1 图像区域的积分图计算如图 13,区域 D 的像素值,可以利用 1、2、3、

4 点的积分图来计算。

(1, 1) A 1 C 3 D 4 B 2 x

y

图 13 区域 D 的像素和可以用积分图计算为:ii4 + ii1 ? (ii2 + ii3 )

因为:

ii1=区域 A 的像素值

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

北京大学本科生毕业论文 ii2 =区域 A 的像素值+区域 B 的像素值

ii3 =区域 A 的像素值+区域 C 的像素值

ii4 =区域 A 的像素值+区域 B 的像素值+区域 C 的像素值+区域 D 的像素值

所以解上述方程就可以得到:

区域 D 的像素值= ii4 + ii1 ? (ii2 + ii3 )

5.3.2.2 矩形特征的特征值计算

以特征模板 1 为例,如图 14。此特征模板的特征值为(按照 5.2.2 节中的定义):

区域 A 的像素值-区域 B 的像素值由刚才的证明可知: 区域 A 的像素值=ii4 + ii1 ? (ii2 + ii3 ) 区

域 B 的像素值= ii6 + ii3 ?(ii4 + ii5 )

所以此特征模板的特征值为:

(ii4 ?ii3 )? (ii2 ?ii1)+ (ii4 ?ii3 ) ?(ii6 ?ii5 )

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