基于AdaBoost算法的
人脸检测技术
******@SYSU
人脸检测
人脸检测(face detection)是指对于任意一幅给定
的图像,采用一定的策略对其进行搜索以确定其
中是否含有人脸,如果是则返回人脸的位置、大
小和姿态。
典型的方法有模板法、基于示例学习、基于器官
特征的方法、神经网络、彩色信息+形状分析、
AdaBoost的方法等等。
矩形特征,也叫Haar-Like特征。在AdaBoost
算法中使用矩形特征作为特征模板。用一个5
元组表示一个矩形特征(x,y,w,h,angle),其中
(x,y)为矩形的左上角位置,(w,h)为矩形的宽
和高,angle表示矩形的旋转角度。计算一个
矩形特征对应的特征值有几种方法,例如,
黑色部分与白色部分像素和的差、黑色部分
与整个矩形面积的权重差等等。
我们主要考虑以下四种举行特征(只含0
angle特征,不包含45 angle类型的矩形特征):
(A) (B) (C) (D)
将haar特征这种反映图像中灰度分布特点的特性
引入人脸检测问题当中,问题就转换成如何找到
较好的haar特征对人脸图像灰度分布的特点进行
描述。下图中的3个特征就能很好的描述图像中人
脸的眼部的灰度的分布特点。
满足(s,t)条件的矩形的数量计算
对于 mn 子窗口,我们只需要确定了矩形左上
顶点和右下顶点,即可以确定一个矩形;如果这
个矩形必须满足下面两个条件(称为(s,t)条
件):
(1)x方向边长能被自然数s整除。
(2)y方向边长能被自然数t整除。
满足(s,t)条件的矩形称为条件矩形。
首先,确定左上角位置,则左上角可以选择的位置
范围为:
xLU {1,2,..., m s , m s 1}
yLU {1,2,..., n t , n t 1}
其次,根据左上角位置限定右下角位置范围为:
xxRD{1,2 s LULULULU xsxps 1,...,( x 1) p 1,1} s
yyRDLULULULU{1,2 t ytyqt 1,...,( y 1) q 1,1} t
其中: mxLU 1
p
s
nyLU 1
q
t
则(m,n)图像窗口内满足(s,t)条件的矩形特征的数目:
m s 11 n t
(mn , )
(st , ) pq
xyLU11 LU
m s 11 n t
m xLU 11 n y LU
xyLU11 LU st
m s 11 n t
m xLU 11 n y LU
xyLU11st LU
m m 1 s 1 n n 1 t 1
... 1 ... 1
s s s t t t
公式(1)
所以m n子窗口中所有四种特征模板的特征总
数量,就是满足四个(s,t)条件的矩形特征的数
量的总和,即:
(m,n) (m,n) (m,n) (m,n)
(1,2) (2,1) (1,3) (3,1)
代入公式(1)即可求得条件矩形的特征数量总和。
积分图:利用矩形特征来计算选取人脸的特
征有一种非常快速的算法,这种算法使用了
一种间接的图像表示方法,称之为积分图。
在一张积分图上,点i(x,y)的积分值ii(x,y)是原
图像上该点的上方和左方所有点的亮度值的
和。即:
ii( x , yi )(,) x y''
x'' x, y y
其中ii(x,y)为积分图,i(x,y)为原始图像。
基于adaboost算法的人脸检测-matlab 代码解释 来自淘豆网m.daumloan.com转载请标明出处.