Haar-like矩形特征的特征值的快速计算方法

转载 2013年12月03日 15:07:37

转载地址:http://blog.sina.com.cn/s/blog_4e6680090100d2sd.html

1、Haar-like特征:

    Haar-like特征最早是由Papageorgiou等应用于人脸表示。Papageorgiou在针对正面人脸和人体检测问题的研究中使用Haar小波基函数,他们发现标准正交Haar小波基在应用上受到一定的限制,为了取得更好的空间分辨率,他们使用了3种类型的3种形式的特征。Viola等在此基础上作了扩展,使用2种类型4种形式的特征。3种类型分别为:2-矩形特征、3-矩形特征、4-矩形特征。

    Haar-like矩形特征的特征值的快速计算方法

    对于图中的A,  B和D这类特征,特征数值计算公式为:

                                 v=Sum白-Sum黑

    而对于C来说,计算公式如下:

                                 v=Sum白-2*Sum黑

    之所以将黑色区域像素和乘以2 ,是为了使两种矩形区域中像素数目一致。

    通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。为了描述的方便,本文将上图的特征模板称为“特征原型”;特征原型在图像子窗口中扩展 (平移伸缩)得到的特征称为“矩形特征”;矩形特征的称为 “特征值”o

     假设训练或检测窗口大小为Wx H个像素,w , h 分别为特征原型的长、 宽,所示四种特征原型对应的w 1 h 分别为:2/1,1/2,3/1,2/2。

    Haar-like矩形特征的特征值的快速计算方法

    一个haar-like特征在24*24像素图的子检测窗口中的矩形特征数量总计为134736个。

    2、积分图:

    由于训练样本通常有近万个,并且矩形特征的数量非常庞大,如果每次计算特征值都要统计矩形内所以像素之和,将会大大降低训练和检测的速度。因此引入了一种新的图像表示方法——积分图像,矩形特征的特征值计算,只与此特征矩形的端点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是常量。这样只要遍历图像一次,就可以求得所有子窗口的特征值。

    积分图的定义为:

    Haar-like矩形特征的特征值的快速计算方法
    其中I(x',y')为图像在点(x',y')处的像素值。

    为了节约时间,减少重复计算,则图像I的积分图可按如下递推公式计算:

    Haar-like矩形特征的特征值的快速计算方法
    这样就可以进行2种运算:

    (1)任意矩形区域内像素积分。由图像的积分图可方便快速地计算图像中任意矩形内所有像素灰度积分。如下图2.3所示,点1的积分图像ii1的值为(其中Sum为求和) :

    ii1=Sum(A)

    Haar-like矩形特征的特征值的快速计算方法

    同理,点2、点3、点4的积分图像分别为:

    ii2=Sum(A)+Sum(B);      ii3=Sum(A)+Sum(C);    ii4=Sum(A)+Sum(B)+Sum(C)+Sum(D);

    矩形区域D内的所有像素灰度积分可由矩形端点的积分图像值得到:

                     Sum(D)=ii1+ii4-(ii2+ii3)            (1)
    (2) 特征值计算
    矩形特征的特征值是两个不同的矩形区域像素和之差,由(1)式可以计算任意矩形特征的特征值,下面以图2.1中特征原型A为例说明特征值的计算。

    Haar-like矩形特征的特征值的快速计算方法
    如图2.4 所示,该特征原型的特征值定义为:

    Sum(A)-Sum(B)

    根据(1)式则有:Sum(A)=ii4+ii1-(ii2+ii3);    Sum(B)=ii6+ii3-(ii4+ii5);

    所以此类特征原型的特征值为:

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

    另示:运用积分图可以快速计算给定的矩形之所有象素值之和Sum(r)。假设r=(x,y,w,h),那么此矩形内部所有元素之和等价于下面积分图中下面这个式子:

                 Sum(r) = ii(x+w,y+h)+ii(x-1,y-1)-ii(x+w,y-1)-ii(x-1,y+h)

    由此可见,矩形特征特征值计算只与此特征端点的积分图有关,而与图像坐标值无关。对于同一类型的矩形特征,不管特征的尺度和位置如何,特征值的计算所耗费的时间都是常量,而且都只是简单的加减运算。其它类型的特征值计算方法类似。

 

[matlab code]

 

%---------------------------------------------------------------------------------------------
%2 遍历得到各点的积分
function ii = bianli(I)
[row,col] = size(I);
ii=zeros(row,col);
for i=1:row
    for j=1:col
        s=sum(I(1:i,j));
        if(j-1<=0)
            ii(i,j) = s;
        else
            ii(i,j)=s+ii(i,j-1);
        end
        s=0;
    end
end
%---------------------------------------------------------------------------------------------
%3 在矩阵上面补0和左面补0
%rn 补rn行0
%cn 补cn列0
function ii = buzero(iio,rn,cn)
[row,col]=size(iio);
ii=[zeros(rn,col+cn);[zeros(row,cn),iio]];
%---------------------------------------------------------------------------------------------
%对于图中B的矩阵特征
function F = tezhen1(ii)
minw = 1; %最小宽
minh = 2; %最小高
aw=1; %伸缩倍率,w方向
ah=1; %伸缩倍率,h方向
F=[];
F1=[];
w=minw;
h=minh;
[row,col]=size(ii);
while(minh*ah<=row)    
    while(minw*aw<=col)
        for i=1:row-h
            for j=1:col-w
                white = ii(i,j)+ii(i+h/2,j+w)-ii(i+h/2,j)-ii(i,j+w);
                black = ii(i+h/2,j)+ii(i+h,j+w)-ii(i+h,j)-ii(i+h/2,j+w);
                F1((i-1)*(col-w)+j)=white-black;
            end
        end
        F=[F,F1];
        F1=[];
        aw=aw+1;
        w=minw*aw;
    end
    ah=ah+1;
    h=minh*ah;
    w=minw; %复位
    aw=1;   %复位
end
%---------------------------------------------------------------------------------------------
%测试
%I=[1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18;19,20,21,22,23,24;25,26,27,28,29,30;31,32,33,34,35,36]; %应为189个
%I=rgb2gray(imread('1.bmp')); %20*20像素图,因为21000
ii=bianli(I);
ii=buzero(ii,1,1);
F=tezhen1(ii); %为矩形特征值数组

相关文章推荐

Haar-like矩形特征的特征值的快速计算方法

转载自:http://blog.sina.com.cn/s/blog_4e6680090100d2sd.html   1、Haar-like特征:     Haar-like特征最早是由Pap...

极限优化:Haar特征的另一种的快速计算方法—boxfilter

这种以Boxfilter替代integral image 的方法很难使用到haar、LBP等特征检测中,因为像下面说的,它不支持多尺度,也就是说所提取的特征必须是同一个大小,最起码同一个宽高比的,这一...
  • delltdk
  • delltdk
  • 2013年08月19日 09:14
  • 1229

极限优化:Haar特征的另一种快速计算方法-boxfilter

极限优化:Haar特征的另一种快速计算方法-boxfilter

Haar特征的另一种的快速计算方法—boxfilter

引用:http://www.cnblogs.com/easymind223/archive/2012/11/13/2768680.html         这个项目大概是在2年前了,因为要用...
  • SMF0504
  • SMF0504
  • 2016年05月02日 15:07
  • 466

图像特征之 Haar-like特征(一)概述及特征值数量计算

1.haar-like特征介绍 - 最初用于描述人脸, 分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。 - 特征模板内有白色和黑色两种矩形,并定义该模板的特征值为 ...

Haar-like矩形特征计算详解

Haar-like矩形特征的特征值的快速计算方法 FROM: http://blog.sina.com.cn/s/blog_4e6680090100d2sd.html 1、Haar-like特征: ...

haar-like特征提取

  • 2011年06月08日 14:35
  • 3.49MB
  • 下载

训练自己haar-like特征分类器并识别物体(1)

本系列文章旨在学习如何在opencv中基于haar-like特征训练自己的分类器,并且用该分类器用于模式识别。该过程大致可以分为一下几个大步骤: 1.准备训练样本图片,包括正例及反例样本 2.生成...

Haar-like特征来龙去脉

Haar-like特征来龙去脉声明:引用请注明出处http://blog.csdn.net/lg1259156776/ haar-like特征概念haar-like特征是是计算机视觉领域一种常用的特征...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Haar-like矩形特征的特征值的快速计算方法
举报原因:
原因补充:

(最多只允许输入30个字)