方向梯度直方图Histogram of oriented gradient
方向梯度直方图算子是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。此方法使用了图像的本身的梯度方向特征。此方法类似于边缘方向直方图(edge orientation histograms)方法,SIFT描述子,和上下文形状方法,但其特征在于其在在一个网格密集的大小统一的方格单元(dense grid of uniformly spaced cells)上计算,而且为了提高精确度使用了重叠的局部对比度归一化(overlapping local contrast normalization)的方法。其作者Navneet Dalal和Bill Triggs是法国国家计算机技术和控制研究所(INRIA),他们在2005年的CVPR上首先发表了描述方向梯度直方图的论文。在这篇论文里,他们着重将他们的算法放在静态图像的行人检测问题上,之后他们也将他们的实验扩展到了视频中的人的检测的和静态图像中的车辆和常见动物的检测。
理论描述
方向梯度直方图描述子的核心思想是一幅图像中的物体的表象和形状可以被像素强度梯度或边缘的方向分布很好地描述。其实现方法是先将图像分成小的叫做方格单元连通区域;然后采集方格单元中各像素点的梯度方向或边缘方向直方图;最后把这些直方图组合起来就可以构成特征描述子。为了提高精确度,还可以把这些局部直方图在图像的更大的区间(block)中进行对比度归一化(contrast-normalized),此方法通过先计算各直方图在这个区间(block)中的密度,然后根据这个密度值对区间中的各个方格单元做归一化。通过这个归一化后,能对光照变化和阴影获得更好的稳定性。
与其他的特征描述方法相比,方向梯度直方图(HOG)描述子有很多优点。首先,由于HOG方法是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。方向梯度直方图方法是特别适合于做图像中的行人检测的。
算法和实现梯度计算
许多特征检测的第一步都是要进行图像的预处理,如归一化颜色值和gamma值,但如Dalal和Triggs指出的那样,HOG描述子可以省略这个步骤,因为它其中的描述子归一化处理能达到同样的效果。图像预处理对最终效果的贡献微薄。所以第一步就是计算梯度值。最通常用的方法就是简单的应用一个一维的离散的梯度模版分别应用在水平和垂直方向上去。可以使用如下的卷积核进行卷积:
[-1,0,1] and [-1,0,1]T
Dalal和Triggs也测试了其他更加复杂的卷积核,例如3x3的索伯卷积核(索伯算子)和斜角卷积核,但是这些卷积核在行人检测的实验中表现的都很差。他们还用高斯模糊进行预处理,但是在实际运用中没有模糊反而会更好。
直方图统计的方向单元划分(Orientation binning)
计算的第二步是建立分块直方图。每个块内的每个像素对方向直方图进行投票。每个块的形状可以是矩形或圆形的,方向直方图的方向取值可以是0-180度或者0-360度,这取决于梯度是否有符号。Dalal和Triggs发现在人的检测实验中,把方向分为9个通道效果最好。至于投票的权重,可以是梯度的幅度本身或者是它的函数。在实际测试中,梯度幅度本身通常产生最好的结果。其它可选的方案是采用幅度的平方或开方,或者幅度的裁剪版本。
描述符块为了要解释照明和对比的改变,梯度强度必须要局部地归一化,这需要把方格集结成更大、在空间上连结的区块。HOG描述符是归一化方格直方图的元件的向量,这直方图由所有区块的区域而来。这些区块通常会重叠,意味着每个方格不只一次影响了最后的描述符。两个主要的区块几何存在着:一个是矩形的R-HOG区块,另一个是圆形的C-HOG区块。R-HOG区块一般来说是多个方格子组成的,由三个参数表示:每个区块有多少方格、每个方格有几个像素、以及每个方格直方图有多少频道。在Dalal和Triggs的人检测实验中,发现最优的单元块划分是3x3或6x6个像素,同时直方图是9通道。
页:
[1]