内容发布更新时间 : 2024/11/18 14:27:44星期一 下面是文章的全部内容请认真阅读。
北京大学本科生毕业论文 窗口大小 特征数量 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