首页 > 编程知识 正文

hog特征缺陷图像,hog特征原理

时间:2023-05-06 02:45:11 阅读:27319 作者:2925

本文为转载文章,原文链接为https://www.cn blogs.com/zhe Han 54/p/6723956.html

(一) HOG特征1、HOG特征:

方向直方图(Histogram of Oriented Gradient,HOG )特征是用于计算机视觉和图像处理中进行物体检测的特征描述符。 通过计算并统计图像局部区域的梯度方向直方图构成特征。 Hog特征结合SVM识别器已经广泛应用于图像识别,尤其是在行人检测中取得了巨大的成功。 另外,基于HOG SVM的行人检测方法是法国的研究者Dalal在2005年的CVPR中提出的,现在虽然提出了很多行人检测算法,但基本上以HOG SVM的想法为中心。

(1)主要思想:

在一幅图像中,局部目标的表象和形状可以由梯度或边缘的方向密度分布来很好地描述。 (本质:是坡度的统计信息,但坡度主要存在于边缘。

(2)具体的实现方法是:

首先将图像分成小的连接区域,将其称为细胞单元。 并收集细胞单元中各像素点的梯度或边缘方向直方图。 最后通过组合这些直方图可以构成特征描述器。

(3)提高性能:

为了在图像的更宽范围(将其称为区间或block )对这些局部直方图进行对比度归一化(contrast-normalized ) ),首先计算各个直方图在该区间(block )的密度,并基于该密度通过该正规化,对于光的变化和阴影可以获得更好的效果。

(4)优点:

与其他特征描述方法相比,HOG有很多优点。 首先,由于HOG是在图像的局部网格上操作的,所以可以对图像的几何变形和光学变形都保持良好的不变性,这两种变形只出现在更大的空间区域。 其次,在粗糙空域采样、精细方向采样、强局部光学归一化等条件下,只要行人能够保持基本直立的姿势,就可以允许行人进行精细肢体运动,这些精细运动不影响检测效果,可以忽略。 因此,HOG的特点特别适合图像中的人体检测。

2、HOG特征提取算法的实现过程:

大概过程:

HOG特征提取方法为image (要检查的目标或扫描窗口) ) ) :

1 )灰度化)将图像视为一个x、y、z (灰度)三维图像);

2 )基于伽马校正的输入图像颜色空间标准化(归一化); 目的是调节图像的对比度,降低图像局部阴影和光照变化的影响,同时抑制噪声的干扰;

3 )图像每个像素的梯度(包括大小和方向); 主要是为了在捕获轮廓信息的同时进一步减弱光的干涉。

4 )将图像划分成小蜂窝(例如,6*6像素/蜂窝);

5 )通过合计各小区的梯度直方图(不同梯度的个数),能够形成各小区的描述符;

6 )几个cell每个组成一个block (例如3*3个cell/block ),一个block中所有cell的特征描述符连接起来,就可以得到该block的HOG特征描述符

7 )在将图像image内所有块的HOG特征描述符连接起来后,得到该image (检测目标)的HOG特征描述符。 这是可以用于最终分类的特征向量。

具体每一步的详细过程如下:

(1)标准化gamma空间和颜色空间

为了减少光的影响,首先需要对整个图像进行标准化(正规化)。 在图像的纹理强度中,局部表层曝光贡献的比例大,因此,该压缩处理可以有效地减少图像的局部阴影和光的变化。 颜色信息效果不大,通常转换为灰度;

伽马压缩公式:

例如可以取伽马=1/2;

看数据精华,关注数盟微信

(2)计算图像梯度

计算图像横坐标和纵轴方向的梯度,并基于此计算各像素位置的梯度方向值; 寻求引导操作不仅可以捕获轮廓、人影、一些纹理信息,还可以进一步减弱光的影响。

中像素点(x,y )的梯度如下。

最常见的方法是,首先用[-1,0,1 ]梯度算子对原图像进行卷积运算,得到x方向(以水平方向、右方向为正方向)梯度分量gradscalx,然后用[ 1,0,-1]T梯度算子对原图像进行卷积运算,在y方向)

(3)为每个细胞单元构建梯度方向直方图

第三步的目的是为局部图像区域提供一个编码,同时能够保持对图像中人体对象的姿势和外观的弱敏感性。

我们将图像分成若干个“thdmjcell”,例如每个cell为6*6个像素。假设我们采用9个rxdyl的直方图来统计这6*6个像素的梯度信息。也就是将cell的梯度方向360度分成9个方向块,如图所示:例如:如果这个像素的梯度方向是20-40度,直方图第2个rxdyl的计数就加一,这样,对cell内每个像素用梯度方向在直方图中进行加权投影(映射到固定的角度范围),就可以得到这个cell的梯度方向直方图了,就是该cell对应的9维特征向量(因为有9个rxdyl)。

像素梯度方向用到了,那么梯度大小呢?梯度大小就是作为投影的权值的。例如说:这个像素的梯度方向是20-40度,然后它的梯度大小是2(假设啊),那么直方图第2个rxdyl的计数就不是加一了,而是加二(假设啊)。

细胞单元可以是矩形的(rectangular),也可以是星形的(radial)。

 

(4)把细胞单元组合成大的块(block),块内归一化梯度直方图

由于局部光照的变化以及前景-背景对比度的变化,使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步地对光照、阴影和边缘进行压缩。

作者采取的办法是:把各个细胞单元组合成大的、空间上连通的区间(blocks)。这样,一个block内所有cell的特征向量串联起来便得到该block的HOG特征。这些区间是互有重叠的,这就意味着:每一个thdmj的特征会以不同的结果多次出现在最后的特征向量中。我们将归一化之后的块描述符(向量)就称之为HOG描述符。

区间有两个主要的几何形状——矩形区间(R-HOG)和环形区间(C-HOG)。R-HOG区间大体上是一些方形的格子,它可以有三个参数来表征:每个区间中细胞单元的数目、每个细胞单元中像素点的数目、每个细胞的直方图通道数目。

例如:行人检测的最佳参数设置是:3×3细胞/区间、6×6像素/细胞、9个直方图通道。则一块的特征数为:3*3*9;

 

(5)收集HOG特征

最后一步就是将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量供分类使用。

 

(6)那么一个图像的HOG特征维数是多少呢?

顺便做个总结:Dalal提出的Hog特征提取的过程:把样本图像分割为若干个像素的单元(cell),把梯度方向平均划分为9个区间(rxdyl),在每个单元里面对所有像素的梯度方向在各个方向区间进行直方图统计,得到一个9维的特征向量,每相邻的4个单元构成一个块(block),把一个块内的特征向量联起来得到36维的特征向量,用块对样本图像进行扫描,扫描步长为一个单元。最后将所有块的特征串联起来,就得到了人体的特征。例如,对于64*128的图像而言,每16*16的像素组成一个cell,每2*2个cell组成一个块,因为每个cell有9个特征,所以每个块内有4*9=36个特征,以8个像素为步长,那么,水平方向将有7个扫描窗口,垂直方向将有15个扫描窗口。也就是说,64*128的图片,总共有36*7*15=3780个特征。

(二)Haar特征

1、Haar-like特征

       Haar-like特征最早是由Papageorgiou等应用于人脸表示,Viola和Jones在此基础上,使用3种类型4种形式的特征。

Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构。

对于图中的A, B和D这类特征,特征数值计算公式为:v=Sum白-Sum黑,而对于C来说,计算公式如下:v=Sum白-2*Sum黑;之所以将黑色区域像素和乘以2,是为了使两种矩形区域中像素数目一致。

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

矩形特征可位于图像任意位置,大小也可以任意改变,所以矩形特征值是矩形模版类别、矩形位置和矩形大小这三个因素的函数。故类别、大小和位置的变化,使得很小的检测窗口含有非常多的矩形特征,如:在24*24像素大小的检测窗口内矩形特征数量可以达到16万个。这样就有两个问题需要解决了:(1)如何快速计算那么多的特征?—积分图大显神通;(2)哪些矩形特征才是对分类器分类最有效的?—如通过AdaBoost算法来训练(这一块这里不讨论,具体见http://blog.csdn.net/zouxy09/article/details/7922923)

 

2、Haar-like特征的计算—积分图

积分图就是只遍历一次图像就可以求出图像中所有区域像素和的快速算法,大大的提高了图像特征值计算的效率。

积分图主要的思想是将图像从起点开始到各个点所形成的矩形区域像素之和作为一个数组的元素保存在内存中,当要计算某个区域的像素和时可以直接索引数组的元素,不用重新计算这个区域的像素和,从而加快了计算(这有个相应的称呼,叫做动态规划算法)。积分图能够在多种尺度下,使用相同的时间(常数时间)来计算不同的特征,因此大大提高了检测速度。

我们来看看它是怎么做到的。

积分图是一种能够描述全局信息的矩阵表示方法。积分图的构造方式是位置(i,j)处的值ii(i,j)是原图像(i,j)左上角方向所有像素的和:

积分图构建算法:

1)用s(i,j)表示行方向的累加和,初始化s(i,-1)=0;

2)用ii(i,j)表示一个积分图像,初始化ii(-1,i)=0;

3)逐行扫描图像,递归计算每个像素(i,j)行方向的累加和s(i,j)和积分图像ii(i,j)的值

s(i,j)=s(i,j-1)+f(i,j)

ii(i,j)=ii(i-1,j)+s(i,j)

4)扫描图像一遍,当到达图像右下角像素时,积分图像ii就构造好了。

积分图构造好之后,图像中任何矩阵区域的像素累加和都可以通过简单运算得到如图所示。

设D的四个顶点分别为α、β、γ、δ,则D的像素和可以表示为

Dsum = ii( α )+ii( β)-(ii( γ)+ii( δ ));

而Haar-like特征值无非就是两个矩阵像素和的差,同样可以在常数时间内完成。所以矩形特征的特征值计算,只与此特征矩形的端点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是常量。这样只要遍历图像一次,就可以求得所有子窗口的特征值。

 

3、Haar-like矩形特征拓展

Lienhart R.等对Haar-like矩形特征库作了进一步扩展,加入了旋转45。角的矩形特征。扩展后的特征大致分为4种类型:边缘特征、线特征环、中心环绕特征和对角线特征:

在特征值的计算过程中,黑色区域的权值为负值,白色区域的权值为正值。而且权值与矩形面积成反比(使两种矩形区域中像素数目一致);

竖直矩阵特征值计算:

对于竖直矩阵,与上面2处说的一样。

45°旋角的矩形特征计算:

对于45°旋角的矩形,我们定义RSAT(x,y)为点(x,y)左上角45°区域和左下角45°区域的像素和。

用公式可以表示为:

为了节约时间,减少重复计算,可按如下递推公式计算:

而计算矩阵特征的特征值,是位于十字行矩形RSAT(x,y)之差。可参考下图:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。