`
jgsj
  • 浏览: 1028309 次
文章分类
社区版块
存档分类
最新评论

行人检测之HOG特征(Histograms of Oriented Gradients)

 
阅读更多

之前的文章行人计数、计次提到HOG特征这个概念,这两天看了一下原版的论文,了解了一下HOG特征的原理,并根据自己的理解将这个方法的流程写了下来,如果有不对的地方欢迎指正。

HOG(Histograms of Oriented Gradients)特征的基本思想:The basic idea is thatlocal object appearance and shape can often be characterizedrather well by the distribution of local intensity gradients oredge directions, even without precise knowledge of the corresponding gradient or edge positions.即使不知道(图像间)准确的对齐的梯度或边缘位置,局部目标的外观和形状信息也能通过局部梯度密度或边缘方向来表征。下面是HOG特征的提取过程。参考文献[1]里将HOG特征用作行人检测,其实如果将下面的步骤读完,你会发现HOG不止可以用来检测行人,也可以检测狗、猫等等几乎任何物体,所做的工作只是训练样本的不同,所以HOG特征可以称为object检测方法。


1、色彩归一化(Gamma/Color Normalization)

作者测试了RGB、LAB还有灰度空间内的图像,发现RGB和LAB空间内的测试图像取得的结果基本相同,而灰度空间内的图像识别率又1.5%下降。所以这几种色彩空间的效果大体相同,没必要将RGB转化到LAB或反之。所以这一步的归一化基本可以省略,但是测试图像和训练的图像总得是一个颜色空间的,这点没问题吧。


2、计算梯度值(Gradient Computation)

离散集上计算梯度值的方式有很多种,比如以待测像素为中心,用中心的右邻值减去左邻值或者下邻值减去上邻值,用论文里的说法就是用mask[-1,0,1]对横向或纵向的像素做卷积,分别可以得到中心像素的梯度x分量和y分量。有了这两个分量,梯度值和方向不难确定了吧。当然论文里还提到了其他方法,比如cubic-corrected[1,-8,0,8,-1],uncentred[-1,1]等。作者发现-1,0,1]的效果最好。

对于彩色图像,作者分别计算每个颜色通道的梯度值,选取三个通道里最大值作为该点的像素值,而不是简单粗暴的将彩色图像转化为灰度图像再求梯度值。


3、构建直方图(或称空间分级,Spatial/Orientation Binning)

计算得到了每个点的梯度值和方向,接下来就是如何利用梯度了。作者考虑梯度是向量,所以梯度会有0-360度的方向取值(signed gradient),或者是0-180度的取值(unsigned gradient)。以20度作为一个bin(就是直方图里的一个竖条),可以构成含有9个bin的直方图。等等,如果你想把把图像的所有梯度都放到一个直方图里,那你就大错特错了。作者将图像划分成了一个个小的cell,每个cell里包含4x4,6x6...个像素,以每个cell做为一个单元,这样每个cell就能得到一个统计直方图了。这样就相当于保留了图像局部的特征。经过试验发现,6x6大小的cell效果最好,如下图(1)(先忽略block)。在将梯度放到bin里时,根据梯度值的不同对bin的贡献也应该不同,比如可以将梯度值开方平方等等。经过测试作者发现最简单的才是最有效的,比如某个像素的梯度值为10,方向为15度,那就将0-20度的bin加10就好了,就这么简单。不过在计算bin之前,还需要考虑第4步归一化。


图(1)


4、区间归一化(Normalization and Descriptor Blocks)

考虑到同一幅图像中的光照强度可能不同,那么势必会造成不同区域的梯度变化剧烈程度不同,来看作者是如何消除影响的。前文讲到了像素构成的cell,作者将多个cell构成一个block,在某个block内可以认为是光照不变的,所以在block内进行梯度值的归一化,比如block内像素的梯度值构成的向量为v=(10,20,30),那么归一化后:v=v/(||v||+E)其中E是一个很小的常数,作者测试了四种归一化方法,具体可以查看论文[1]。需要注意的是,为了进一步去除光照影响,每个block的位置是有交叉的,比如某个cell可能属于block1也属于block2。经过测试,作者发现一个Block内有3x3个cell,每个cell有6x6个像素效果最好如上图(1)。


5、检测窗口(Detector and Context)

以上步骤可以得到一幅图像的hog描述,但是不要忘了初衷:检测行人。准确的说是将一幅图像中的行人圈出来,如果将整幅图像取hog特征进行比对就不是行人检测了。由于行人在图像的位置不固定,所以作者提出了64x128检测窗口的概念,将这个固定大小的窗口在图像上滑动,没滑动一次做一次相似度匹配,匹配的方法在步骤6内。


6、分类器

作者采用SVM作为分类器,将事先标定好的行人和非行人图像按照如上步骤获取hog特征,用svm获取两类的最优间隔。当有一幅待检测图像时,获取步骤5内检测窗口的hog特征,然后利用最优间隔做出分类的判别。


如果给如上步骤画一个流程图,基本就是:



OpenCV里有实现hog行人检测的代码,效果大体如下图(自己的图找不到了,下图在网上找的),其实误检率还是蛮高的,部分误检可以通过差分解决,但是在拥挤的人群效果只能呵呵了。



参考文献:

[1]Navneet Dalal and Bill Triggs:Histograms of Oriented Gradients for Human Detection

[2]http://www.zhizhihu.com/html/y2010/1690.html

[3]http://hi.baidu.com/nokltkmtsfbnsyq/item/f4b73d06f066cd193a53eec3



分享到:
评论

相关推荐

    论文解读《Histograms of Oriented Gradients for Human Detection》.pdf

    《Histograms of Oriented Gradients for Human Detection》论文的核心贡献是提出了使用梯度方向直方图(Histograms of Oriented Gradients, HOG)进行人体检测的方法,这是一种在图像处理和计算机视觉领域广泛使用...

    HOG--Histograms of Oriented Gradients for Human Detection.

    方向梯度直方图(Histograms of Oriented Gradients,简称HOG)是一种用于目标检测的特征描述子,由Navneet Dalal和Bill Triggs在2005年提出。HOG方法主要用于解决在复杂背景下的目标识别问题,特别是在人体检测领域...

    人体检测梯度方向直方图 Histograms of Oriented Gradients for Human Detection

    Histograms of Oriented Gradients (HOG) 是一种流行的人体检测算法,基于梯度方向直方图的特征提取和支持向量机(SVM)分类器。 HOG 算法的主要思想是,通过计算图像中的梯度方向直方图,提取人体的特征,然后...

    Histograms of Oriented Gradients for Human Detection

    ### 梯度方向直方图 (Histograms of Oriented Gradients, HOG) 在人体检测中的应用 #### 概述 《Histograms of Oriented Gradients for Human Detection》是一篇探讨梯度方向直方图(HOG)在人体检测领域应用的...

    Histograms of Oriented Gradients for Human Detection论文

    研究者们在实验中展示了基于Histograms of Oriented Gradient(HOG)的描述符网格相对于现有的特征集在人类检测方面有着显著的优越性。 #### HOG描述符的重要性 - **细粒度梯度**:HOG特征通过计算图像中的梯度来...

    计算方向梯度直方图,基于经典论文Histograms of Oriented Gradients for Human Detection

    计算方向梯度直方图(Histograms of Oriented Gradients, HOG)是一种在计算机视觉领域广泛应用的特征提取方法,特别是在行人检测上取得了显著的效果。该技术由Dalal和Triggs在2005年的经典论文《Histograms of ...

    [2005 CVPR] Histograms of Oriented Gradients for Human Detection

    [2005 CVPR] Histograms of Oriented Gradients for Human Detection 用于人体检测的方向梯度直方图 Navneet Dalal,Bill Triggsigure 2. Some sample images from our new human detection database. The ...

    HOG特征提取

    This program is used to extract HOG(Histograms of oriented gradients) features from images. The integral histogram is used for fast histogram extraction. Both APIs and binary utility are provided. It ...

    行人检测(HOG等)

    HOG(Histograms of Oriented Gradients,方向梯度直方图)是一种经典的行人检测算法,由Dalal和Triggs在2005年提出。这个方法通过分析图像中边缘和形状的分布来识别行人特征,尤其在处理复杂背景和部分遮挡的情况下...

    HOG特征提取 MATLAB源码

    HOG(Histograms of Oriented Gradients,方向梯度直方图)是一种在计算机视觉和图像处理领域广泛使用的特征描述符,尤其在行人检测方面表现出色。HOG特征的提出源于2005年Dalal和Triggs的经典论文《Histograms of ...

    面向人脸识别的WPD-HOG金字塔特征提取方法.pdf

    该方法结合了Wavelet Packet Decomposition(WPD)、图像金字塔和 Histograms of Oriented Gradients(HOG)技术,以便更好地提取人脸图像特征。 首先,人脸识别技术是一种生物识别技术,具有稳定性、方便性、唯一...

    hog_cvpr2005

    总之,“Histograms of Oriented Gradients for Human Detection”这篇论文不仅提出了一个有效的特征描述方法,而且还为后续研究提供了有价值的启示,特别是在计算机视觉领域中的人体检测和识别方面。

    HOG行人快速检测

    HOG(Histograms of Oriented Gradients,方向梯度直方图)是一种特征提取方法,常用于计算机视觉中的物体检测,尤其是行人检测。HOG算法利用图像局部区域的梯度信息来描述物体的形状和外观特征。在行人检测的应用中...

    HOG方面的几篇优秀外文资料

    HOG(Histograms of Oriented Gradients)空间梯度直方图方面的几篇优秀外文资料,都是05,06最新的

    几篇很有用的关于HOG特征的文章

    HOG(Histograms of Oriented Gradients,方向梯度直方图)是一种强大的特征提取方法,广泛应用于图像处理和计算机视觉领域,特别是行人检测。HOG特征通过捕捉图像中的边缘和形状信息,为机器学习算法提供了有效的...

Global site tag (gtag.js) - Google Analytics