网上去找关于HOG的资料,发现理解性的较少,并且较为冗长,为方便大家理解便自己写了篇,希望能对奋斗在特征提取第一线的同志们有所帮助:

HOG即histogram of oriented gradient, 是用于目标检測的特征描写叙述子,该技术将图像局部出现的方向梯度次数进行计数,该方法和边缘方向直方图、scale-invariant feature transform类似,不同的是hog的计算基于一致空间的密度矩阵来提高准确率。Navneet
Dalal
 and Bill Triggs首先在05年的CVPR中提出HOG,用于静态图像or视频的行人检測。

HOG特征原理:

HOG的核心思想是所检測的局部物体外形可以被光强梯度或边缘方向的分布所描写叙述。通过将整幅图像切割成小的连接区域(称为cells),每一个cell生成一个方向梯度直方图或者cell中pixel的边缘方向,这些直方图的组合可表示出(所检測目标的目标)描写叙述子。为改善准确率,局部直方图可以通过计算图像中一个较大区域(称为block)的光强作为measure被对照标准化,然后用这个值(measure)归一化这个block中的全部cells.这个归一化过程完毕了更好的照耀/阴影不变性。

与其它描写叙述子相比,HOG得到的描写叙述子保持了几何和光学转化不变性(除非物体方向改变)。因此HOG描写叙述子尤其适合人的检測。

通俗的讲:

HOG特征提取方法就是将一个image:

1.            灰度化(将图像看做一个x,y,z(灰度)的三维图像)

2.            划分成小cells(2*2)

3.            计算每一个cell中每一个pixel的gradient(即orientation)

4.            统计每一个cell的梯度直方图(不同梯度的个数),就可以形成每一个cell的descriptor

再小谈下Hog、SIFT与PCA-SIFT的应用与差别:

Hog没有旋转和尺度不变性,因此计算量小;而SIFT中每一个feature须要用128维的向量来描写叙述,因此计算量相对非常大。

那么行人检測中怎么应用HOG呢?

对于解决Scale-invariant 的问题:将图片进行不同尺度的缩放,就相当于对模板进行不同尺度scale的缩放

对于解决Rotation-invariant 的问题:建立不同方向的模版(一般取15*7的)进行匹配

总的来说,就是在不同尺度上的图像进行不同方向的模板(15*7)匹配,每一个点形成一个8方向的梯度描写叙述。

SIFT因为其庞大计算量不用与行人检測,而PCA-SIFT的方法过滤掉非常多维度的信息,仅仅保留20个主分量,因此仅仅适用于行为变化不大的物体检測。

method

Time

Scale

Rotation

Blur

Illumination

Affine

Sift

common

best

best

common

common

good

PCA-sift

good

good

good

best

good

best

Surf 

best

common

common

good

best

good

关于sift的其它解说:

http://blog.csdn.net/abcjennifer/article/details/7639681

http://blog.csdn.net/abcjennifer/article/details/7372880

http://blog.csdn.net/abcjennifer/article/details/7365882

关于computer vision的很多其它讨论与交流,敬请关注本博客和新浪微博Sophia_qing

HOG特征-理解篇的更多相关文章

  1. 理解图像Garbor和HOG特征的提取方法及实例应用

    前言:今天接触到了这两个特征,看了课本和博客后很蒙蔽,没有理解这两个特征,本篇博客的目的是只是参考其他的博客总结这两个特征,如果未来能研究和工作领域是这方面的话再回来自己研学,如有错误也欢迎指出. G ...

  2. HOG特征(Histogram of Gradient)总结(转载)

    整理一下我个人觉得比较好的HOG博文 博文1:OpenCV HOGDescriptor: 参数与图解 http://blog.csdn.NET/raodotcong/article/details/6 ...

  3. HOG特征(Histogram of Gradient)学习总结

    最近在做的项目有用到HOG+SVM这一方面的知识,参考相关论文和网上一些博文在此对HOG特征进行下总结. 参考资料: HOG的经典论文:Dalal N, Triggs B. Histograms of ...

  4. paper 80 :目标检测的图像特征提取之(一)HOG特征

    1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的 ...

  5. SVM中图像常用的HOG特征描述及实现

    转摘网址:http://www.cnblogs.com/tiandsp/archive/2013/05/24/3097503.html Hog参考网址:http://www.cnblogs.com/t ...

  6. HOG参数简介及Hog特征维数的计算(转)

    HOG构造函数 CV_WRAP HOGDescriptor() :winSize(64,128), blockSize(16,16), blockStride(8,8),      cellSize( ...

  7. 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征(转载)

    (一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...

  8. 图像特征提取之(一)HOG特征

    1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的 ...

  9. 目标检測的图像特征提取之(一)HOG特征

    1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检測的特征描写叙述子.它通过计算和统计图像局部区 ...

随机推荐

  1. ngui 脚本绘制sprite

    public GameObject _background; public UIAtlas atlas; private Dictionary<int, UISprite> _allCar ...

  2. java RuntimeException

    总结了一下JAVA中常见的几种RuntimeException,大约有如下几种: NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异 ...

  3. Jquery动画第一部分

    效果图: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.asp ...

  4. BZOJ2055: 80人环游世界

    题解: 总算A掉了,各种蛋疼... int main() { freopen("input.txt","r",stdin); freopen("out ...

  5. 自定义web浏览器(五)

    万维网(Web)服务的客户端浏览程序.可向万维网(Web)服务器发送各种请求,并对从服务器发来的超文本信息和各种 多媒体数据格式进行解释.显示和播放--------百度百科对浏览器给出这样的解释.

  6. SVN - 主干/分支

    一个大项目在开发中可能会拆分成几个小项目,分别分去,同时共通的部分再由人做,做完后再统一合并.同时,在开发中,共通的部分修改后,其它人要保持同步. 这种情况反应到SVN的分支/合并功能上,再贴切不过了 ...

  7. Protobuf语言指南

    Protobuf语言指南 l  定义一个消息(message)类型 l  标量值类型 l  Optional 的字段及默认值 l  枚举 l  使用其他消息类型 l  嵌套类型 l  更新一个消息类型 ...

  8. POJ 1236 Network of Schools 有向图强连通分量

    参考这篇博客: http://blog.csdn.net/ascii991/article/details/7466278 #include <stdio.h> #include < ...

  9. JRebel 5.3.2

    http://www.blogjava.net/xylz/archive/2013/09/15/404098.html   此为单文件版本,无需license文件 IDE(Eclipse.IDEA可能 ...

  10. windows 下Python import 导入自定义模块

    周末在家研究这个东西,则找到解决方案. 费话少说,上代码 #定义一个自定义的函数,如下 #函数的名称必须是字母和数字的组合,不能用数字开头 #函数名后用小括号括住入参,可以用逗号分隔多个 #如果有返回 ...