文章目录

  • 1. HOG 简述
  • 2. HOG 工作流程
    • 第一步、对图像的颜色空间进行归一化
    • 第二步、计算每个像素点的梯度
    • 第三步、为每个单元构建梯度方向直方图
    • 第四步、块内梯度直方图归一化
  • 3. 举个例子
  • 4. HOG 可视化

1. HOG 简述

HOG(Histogram of Oriented Gradient)方向梯度直方图是 Dalal 和 Triggs 在 2005 的 CVPR 上提出的一种解决人体目标检测的图像描述子,用于表征图像局部梯度方向和梯度强度分布特性。其具体思想是:在一副图像中,局部目标的形状能够被梯度或边缘的方向密度分布很好地描述。该方法通过统计局部区域的梯度方向直方图来构成特征,能够很好地描述人体的边缘,提取人体的外形信息和运动信息,形成丰富的特征集。Dalal 等提出的 HOG+SVM 算法当时在行人检测上取得了巨大的成功,而此后涌现的许多算法,大多是以该算法为基础框架。

2. HOG 工作流程

梯度方向直方图顾名思义就是计算图像中各像素的梯度方向,统计成为直方图作为特征表示目标。其大致有以下4步:

第一步、对图像的颜色空间进行归一化

因为图像的采集环境、装置等因素,采集到的图像效果可能不是很好,所以需要对采集到的图像进行预处理。其中包括:将图像灰度化和 Gamma 校正。使用 Gamma 校正法对输入图像进行颜色空间的标准化的目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰。

第二步、计算每个像素点的梯度

在HOG特征提取的过程中,梯度计算采用简单的水平边缘算子 [-1,0,1] 和垂直边缘算子 [-1,0,1]^T。通过与图像进行卷积操作来获得梯度信息。图像中某像素点 (x,y) 的梯度可以用如下公式计算:
G x ( x , y ) = H ( x + 1 , y ) − H ( x − 1 , y ) G y ( x , y ) = H ( x , y + 1 ) − H ( x , y − 1 ) G_x(x,y) = H(x+1,y)-H(x-1,y) \\ G_y(x,y) = H(x,y+1)-H(x,y-1) Gx​(x,y)=H(x+1,y)−H(x−1,y)Gy​(x,y)=H(x,y+1)−H(x,y−1)
G ( x , y ) = G x ( x , y ) 2 + G y ( x , y ) 2 G(x,y) = \sqrt{G_x(x,y)^2+G_y(x,y)^2} G(x,y)=Gx​(x,y)2+Gy​(x,y)2 ​
θ ( x , y ) = a r c t a n G y ( x , y ) G x ( x , y ) \theta (x,y) = arctan\frac{G_y(x,y)}{G_x(x,y)} θ(x,y)=arctanGx​(x,y)Gy​(x,y)​
公式中 x 表示水平方向,y 表示竖直方向,G 表示梯度的大小, θ \theta θ 表示梯度的方向。

第三步、为每个单元构建梯度方向直方图

这一步的目的是为局部图像区域提供一个编码,同时能够保持对图像中人体对象的姿势和外观的弱敏感性。将图像分成若干个大小相同的单元(cell),作者原文文将每个单元设置成 8x8 像素。原文将梯度方向每 20 度作为一个区间,平均分为 9 个区间(bin)(因为 tan 的周期为 π \pi π,所以分成 9 份),如下图所示:

在每个单元格中,以每个像素点处的梯度大小作为权值统计梯度方向区间的直方图。每个区间分别对应一定的角度范围,9 个区间即为直方图的横轴,而这些角度范围内所对应的梯度的累加值即为直方图的纵轴。

第四步、块内梯度直方图归一化

像素点、单元和区块之间的关系如下图所示。

将小的单元(cell)合并成大的区块(block),每个块内归一化梯度直方图即可得到该块的 HOG 特征。这么做是因为局部光照的变化以及前景-背景对比度的变化,使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步地对光照、阴影和边缘进行压缩。一个块内所有单元的纵轴值串联起来归一化后得到的向量被称作该块 HOG 描述子。图像中所有块的 HOG 描述子串联起来即得到该图像的 HOG 特征向量。原文一个区块设置成 2x2 单元。

3. 举个例子

比如 INRIA 数据集中图像剪裁后的大小为 64x128,故每张图像共有 8x16 的单元(cell),每个单元(cell)有一个 9 维的特征向量,把一个块内的特征向量串联起来,所以每个区块(block)是 (2x2)x9=36 维,用块对样本图像进行扫描,扫描步长为一个单元(区块可以重叠),最后将所有块的特征串联起来,所以每张图像的HOG特征维度为:36x7x15=3780 。

4. HOG 可视化

在数据集 INRIA 中选择一个图像,将其剪裁为大小 64x128,按照上述 HOG 参数进行 HOG 可视化,效果如下:

可视化时将整个图像作为一个 Block 来使用,即 HOG 可视化图像展示的是图像中每个 cell 的梯度直方图,其中每条线的方向代表着这个单元内每个像素点的梯度方向。在图中可以发现,直方图的主要方向捕获了这个人的外形,尤其在躯干和腿。

【计算机视觉】方向梯度直方图(Histogram of Oriented Gradient,HOG)相关推荐

  1. 【计算机视觉】Histogram of Oriented Gridients(HOG) 方向梯度直方图

    Histogram of Oriented Gridients(HOG) 方向梯度直方图 Histogram of Oriented Gridients,缩写为HOG,是目前计算机视觉.模式识别领域很 ...

  2. Histogram of Oriented Gridients(HOG) 方向梯度直方图

    from: Histogram of Oriented Gridients(HOG) 方向梯度直方图 Histogram of Oriented Gridients,缩写为HOG,是目前计算机视觉.模 ...

  3. 特征提取(Feature Detection)之——HOG (Histogram of Oriented Gradient)特征

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

  4. HOG特征提取原理and计算步骤,方向梯度直方图

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

  5. 图像特征:方向梯度直方图 HOG

    文章目录 参考资料 简介 算法流程 灰度化和gamma校正 计算梯度 统计cell的梯度方向直方图 Block 块内归一化(重点) 组合为HOG特征 HOG特征与可视化 OpenCV 算法实现 参考资 ...

  6. 方向梯度直方图(Histogram Of Gradient)详解

    特征描述子(Feature Descriptor) 特征描述子就是图像的表示,抽取了有用的信息,丢掉了不相关的信息.通常特征描述子会把一个w*h*3(宽高3,3个channel)的图像转换成一个长度为 ...

  7. 图像学习之如何理解方向梯度直方图HOG(Histogram Of Gradient)

    本文转自:雷锋网,作者:思颖.连接:https://yq.aliyun.com/articles/176607,https://www.leiphone.com/news/201708/ZKsGd2J ...

  8. 图像学习之如何理解方向梯度直方图(Histogram Of Gradient)

    特征描述子(Feature Descriptor) 特征描述子就是图像的表示,抽取了有用的信息,丢掉了不相关的信息.通常特征描述子会把一个w*h*3(宽高3,3个channel)的图像转换成一个长度为 ...

  9. HOG(方向梯度直方图)

    结合这周看的论文,我对这周研究的Histogram of oriented gradients(HOG)谈谈自己的理解: HOG descriptors 是应用在计算机视觉和图像处理领域,用于目标检測 ...

最新文章

  1. DIV+CSS一行两列布局
  2. 2017 Q3 ,互联网人的薪资发生了哪些变化?
  3. android查看Logcat
  4. Netty学习笔记(一)Netty客户端源码分析
  5. 字符串匹配,KMP算法
  6. tp5怎么生成短链接_请问在tp5中怎样才能使用url函数?
  7. java 插件开发 互相依赖_java – Eclipse插件开发:有没有办法控制有关我的插件缺少依赖项的安装程序消息?...
  8. PyTorch框架学习十六——正则化与Dropout
  9. edge浏览器运行不流畅怎么办 提高edge浏览器速度的方法
  10. (3)分布式下的爬虫Scrapy应该如何做-递归爬取方式,数据输出方式以及数据库链接...
  11. 解决IE8下不支持document.getElementsByClassName的方法
  12. 【转】HTML标签大全
  13. BZOJ2115 [WC2011]最大XOR和路径
  14. JMeter之接口测试脚本编写
  15. python导包问题解决方案(一字千金)
  16. NR modulation 4-AM
  17. Linux Mint + win10 双系统初体验
  18. Pandas Dataframe 每隔n行取1行
  19. 关于在VS上创建的工程从win32改为x64时导致断点无法生效的原因与解决方法!
  20. python怎么下载网络歌曲_python 3 网络下载百度歌曲

热门文章

  1. centos7 LNMP环境搭建
  2. JSONPath表达式
  3. JsonPath教程
  4. 各种安装包打包发布工具
  5. arcgis android 3d,ArcGIS 10.5.1 三维能力全方位提升
  6. 焦点效应 spotlight effect
  7. 电力配网自动化解决方案
  8. 统筹方法 -- 华罗庚
  9. Nessus 使用学习
  10. java byte数组与int之间相互转换