计算Haar特征个数

Haar特征个数为:X.Y.(W+1-w(X+1)/2).(H+1-h(Y+1)/2)


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


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

对于m×m子窗口,我们只需要确定了矩形左上顶点A(x1,Y1)和右下顶点B(x2,y2),即可以确定一个矩形;

如果这个矩形还必须满足下面两个条件(称为s,t)条件,满足(s,t)条件的矩形称为条件矩形):

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

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

则, 这个矩形的最小尺寸为SXt或txs, 最大尺寸为【m/s]·sx[m/t]·t或[m/s]·tx[m/s].s;其中[]为向下取整运算符。


计算Haar特征个数_第1张图片


我们通过下面两步就可以定位一个满足条件的矩形:
(1)确定A(X1,Y1):xl∈(1,2,⋯,m-8,m-s+1),YI∈{l,2,⋯,m-t,m-t+1);
(2)确定A点后,B点只能在图2.3中阴影内(包括边缘)取值,因此有:

x2∈X=(x1+s-1,x1+2·s-1,⋯,x1+(p-1)·s-1,x1+p·s一1);
Y2∈Y=(y1+t-1,y1+2·t-1,⋯,y1+(q-1)·t-1,y1+q.t-1);

其中p = [(m-x1+1)/s],q = [(m-y1+1)]

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

         计算Haar特征个数_第2张图片


其中[]为向下取整。

第一个括号的值为1+..+1+2+...2+([m/s]-1)+...([m/s]-1)+ [m/s] +[m/s]总共m-s+1项

除开最后一项 每项的个数为S个,(自己理解下),最后一项的个数为m-s+1 -([m/s]-1)*s

故第一个括号的值为s*( (([m/s]-1) +1)*([m/s]-1)/2 ) + (m-s+1 -([m/s]-1)*s)*[m/s]

即为:[m/s] *( m+1 - s*([m/s+1])/2 )  其中[]为向下取整



故最后的总和sum = [m/s]*[m/t] *( m+1 - s*([m/s+1])/2 )* ( m+1 - t*([m/t+1])/2 )

即:令X=W/w,Y=H/h,其中W,H,w,h分别
为矩形特征原型的长、宽,那么:
Haar特征个数为:
X.Y.(W+1-w(X+1)/2).(H+1-h(Y+1)/2)






你可能感兴趣的:(图像算法)