HOG特征:方向梯度直方图(Histogram of oriented Gradient)
1.主要思想:在一副图像中,局部目标的表象和形状能够被梯度或边缘的方向密度分布很好 的描述。(本质:梯度的统计信息,而梯度主要存在于边缘的地方)。
2.优点:能够保持图像几何和光学形变的不变性(因为这两种形变只出现在更大的空间领域 上,而HOG是在图像的局部方格单元上操作)
3.算法流程:HOG特征提取方法就是将一个image(你要检测的目标或者扫描窗口):
1)灰度化
2)采用Gamma矫正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;
3)计算图像每个像素的梯度(包括大小和方向)
4)将图像划分成小cells(如6*6像素/cell)
5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor
6)将每几个cell组成一个block(如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descripto
7)将图像image内的所有block的HOG特征的descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor,这个就是最终的可供分类使用的特征向量了。
算法流程图(见算法流程.jpg)
流程细节:
2)图像中像素点(x,y)的梯度为:(见梯度.jpg)
最常用的方法是:首先用[-1,0,1]梯度算子对原图像做卷积运算,得到x方向的梯度分量,然后用[-1,0,1]'梯度算子对原图像做卷积运算,得到y方向的梯度分量,然后计算梯度方向及大小
3)为每个细胞单元构建梯度方向直方图
如每个cell为6*6个像素,假设采用9个bin的直方图来统计这6*6个像素的梯度信息。也就是将cell的梯度方向360度分成9个方向块,如图所示:例如,如果这个像素的梯度方向是20-40度,直方图第2个bin的计数就加一,这样,对cell内每个像素用梯度方向在直方图中进行加权投影(映射到固定的角度范围),像素梯度方向用到了,梯度大小就是作为投影的权值的。例如说:这个像素的梯度方向是20-40度,然后它的梯度大小是2(假设),那么直方图第2个bin的计数就不是加一了,而是加二(假设)。
6)把细胞单元组合成大的块(block),块内归一化梯度直方图(见bin.jpg)
(由于局部光照的变化以及前景-背景对比度的变化,使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步对光照、阴影和边缘进行压缩)
把各个细胞单元组合成大的、空间上连通的区间(block)。这样,一个block内所有cell的特征向量串联起来便得到该block的HOG特征,这些区间是互有重叠的,这就意味着:每一个单元格的特征会以不同的结果多次出现在最后的特征向量中,将归一化之后的块描述符(向量)称之为HOG描述符。
区间(block)有两个主要的几何形状----矩形区间(R-HOG)和环形区间(C-HOG)。R-HOG可以有三个参数来表征:每个区间中细胞单元的数目,每个细胞单元中像素点的数目,每个细胞的直方图通道数目。
例如:行人检测的最佳参数设置是:3*3cell/block,6*6pixsel/cell,9个bin,则每个block的特征数为:3*3*9;
一般都是用block对样本图形进行扫描,扫描步长为一个单元。
思考:一个图形的HOG特征维数是多少?
如,对于64*128的图像而言,每16*16像素组成一个cell,每2*2个cell组成一个块,每个cell有9个特征,所以每个块内有2*2*9=36个特征,以8个像素为步长,那么水平方向将有
(64-16*2)/8+1=5个扫描窗口,垂直方向将有(128-16*2)/8+1=13个扫描窗口。即对于64*128的图片,总共有36*5*13=2340个特征。
相关推荐
目标检测的图像特征提取之(一)HOG特征是指通过 Histogram of Oriented Gradient(方向梯度直方图)特征对图像进行特征提取,以便实现目标检测。这种方法通过计算和统计图像局部区域的梯度方向直方图来构成特征。...
6. **检测窗口滑动**:在图像上使用不同大小和位置的检测窗口(通常与目标物体大小相当),在每个位置提取HOG特征。 7. **特征向量生成**:收集所有检测窗口中的HOG特征,构成一个特征向量,用于后续的分类器训练或...
5. **项目实施**:压缩包中的文件很可能是源代码、数据集、测试图像和相关文档,通过编译和运行这些代码,可以观察到Felzenszwalb HOG特征提取器在实际目标检测任务中的效果。用户需要了解C++编程,熟悉OpenCV库,并...
综上所述,Python实现的HOG特征提取器是图像处理中的重要工具,它通过量化图像梯度信息来捕捉图像的结构特性,广泛应用于目标检测和识别任务。在Python中,我们可以借助`OpenCV`和`scikit-image`等库轻松实现这一...
这些特征提取方法在图像识别、目标检测、行为识别等多个计算机视觉任务中都有广泛应用。使用C++和OpenCV库实现这些功能,使得开发者能够高效地处理图像数据并进行深入的分析。在实际项目中,可以根据需求选择合适的...
HOG( Histogram of Oriented Gradients,方向梯度直方图)是一种常用的图像特征提取算法,用于描述图像中的边缘方向分布信息。在计算机视觉和图像处理领域中,HOG 特征广泛应用于目标检测、图像分类、物体识别等...
HOG(Histogram of Oriented Gradients,方向梯度直方图)特征是一种在计算机视觉领域广泛应用的局部描述符,尤其在目标检测和行人检测中表现出色。它通过捕捉图像中的边缘和形状信息来描述图像区域的特性。接下来,...
在图像处理领域,边缘检测和特征提取是两个关键步骤,对于图像分析、识别以及机器视觉应用至关重要。MATLAB作为强大的科学计算与可视化工具,提供了丰富的函数库支持这两方面的操作。 边缘检测是图像处理中的基本...
该脚本可能定义了HOG参数(如细胞大小、块大小、方向 bin 数等),并封装了计算和提取HOG特征的过程。通过调用这个函数,用户可以为任意输入图像计算出对应的HOG特征。 5. **应用与优化**: HOG特征在物体检测、行人...
在图像处理和计算机视觉领域,特征提取是一项至关重要的任务,它涉及到从原始图像数据中抽取有意义的、可以用于后续分析的特征。MATLAB作为一种强大的数值计算和数据分析工具,提供了丰富的库函数和工具箱来实现这一...
接着,使用图像金字塔对图像进行多尺度分析,对每个尺度上的图像提取HOG特征。最后,将不同尺度的HOG特征进行融合,形成金字塔HOG特征向量。 以下是一些关键步骤的详细说明: 1. **图像预处理**:将彩色图像转换为...
本文介绍图像识别和目标检测中常用的特征,分别是Haar(哈尔)特征、LBF(local binary pattern)特征、HOG(histogram of orientation gradient)特征共 三种。 一、Haar特征 参考链接...
标题中的“fenleiqi.rar_hog特征提取_matlab提取HOG_特征提取_特征提取HOG”表明这是一个关于使用MATLAB实现HOG(Histogram of Oriented Gradients,导向梯度直方图)特征提取的代码资源。HOG特征在计算机视觉领域中...
HOG(Histogram of Oriented Gradients,导向梯度直方图)特征提取是计算机视觉领域中一种广泛应用的图像特征描述符,尤其在行人检测、物体识别等任务中表现突出。这个压缩包“HOG特征提取.zip”包含了关于HOG特征...
4. 提取HOG特征: ```python hog_descriptor = cv2.HOGDescriptor(**hog_params) hog_features = hog_descriptor.compute(image) ``` 5. 可以进一步利用提取的HOG特征进行目标检测或分类任务。 **3. 应用场景*...
红外图像特征提取是计算机视觉和图像处理领域中的一个重要分支,主要关注从红外图像中提取有用的信息,以便进行后续的分析、识别或分类任务。在红外图像处理中,特征提取是关键步骤,它决定了算法的性能和效率。这篇...
6. **重叠窗口滑动**:为了检测不同大小和位置的目标,会在图像上用重叠的检测窗口滑动,对每个窗口内的图像区域提取HOG特征。 在提供的源码`cHog`中,可以看到这些步骤的具体实现。源码可能会包括定义细胞大小、块...
图像特征提取的目的是将图像转换为计算机可以识别和处理的数字形式,从而实现图像识别、图像分类、目标检测、图像分割等应用。 图像特征可以分为两类:低级特征和高级特征。低级特征是指图像的基本特征,如颜色、...
HOG特征具有对光照、尺度和姿态变化鲁棒性的优点,因此在目标检测领域广泛应用。在QR码检测中,HOG特征可以捕获码的边缘信息和结构特性,帮助区分QR码与其他图像元素。 SVM是一种监督学习模型,用于分类和回归分析...
目标检测是计算机视觉领域中的核心任务之一,它旨在在图像或视频中自动定位并识别出特定的对象。"结合HOG与LBP的目标检测方法"是一种高效的技术,特别适用于嵌入式系统,如数字信号处理器(DSP)上的应用。这两种...