【问题标题】:Computing Histogram of Oriented Gradients on a single point计算单点上的定向梯度直方图
【发布时间】:2018-03-14 02:25:15
【问题描述】:

HOG(定向梯度直方图)如何作用于图像中的单个点?我正在使用计算机视觉工具箱版本的 HOG 描述符:https://www.mathworks.com/help/vision/ref/extracthogfeatures.html

我想在图像中的特定点上计算 HOG,在单个点上计算 HOG 的最佳像元大小和块大小是多少?

【问题讨论】:

标签: matlab image-processing computer-vision matlab-cvst


【解决方案1】:

请注意,没有单点的 HOG 描述符之类的东西。 HOG 描述符是一个密集描述符,因此您可以获得一个围绕兴趣点的像素块。 extractHOGFeatures 函数接收图像和一些您希望计算 HOG 描述符的特定输入坐标(可选)。这些是您要为其计算 HOG 描述符的 (x,y) 或图像中的列和行位置。您将其指定为 N x 2 矩阵,每一行都是您希望计算 HOG 描述符的位置的 (x,y) 坐标。

回想一下,我们在局部像素块上计算 HOG 描述符。根据 Dalal 和 Triggs 的原始行人检测算法,该局部补丁或 cell size 的默认大小为 8 x 8。假设我们忽略直方图中方向的符号,则直方图中的默认 bin 数为 9,或者考虑以 20 度为增量的角度,使总角度为 180 度。对于每个8 x 8 补丁,我们有一个 9 bin 直方图。您还考虑了一个单元格组合,它是一个块。每个块由单元格组成,MATLAB 中的默认值为2 x2 网格,使其成为 16 x 16 像素的窗口。

因此,您指定的位置作为中心,我们围绕该中心围绕一个16 x 16 窗口。然后,您计算四个 HOG 直方图 - 一个用于块内的每个单元格。作为最后一步,我们将所有直方图连接在一起形成一个长直方图,即4 x 9 = 36 元素,我们进一步规范化该向量以计算代表该坐标的最终描述符。

输出是N 行的矩阵,其中每一行是输入位置矩阵的相应行指定的中心位置的描述符。更具体地说,您将获得一个N x 36 矩阵。

至于最佳块大小和单元大小,这取决于您的应用程序,但对于大多数用例,尤其是在 OpenCV 中,默认情况下假定块大小为8 x 8 单元大小为2 x 2,因此创建一个16 x 16 像素补丁。 Dalal 和 Triggs 对不同大小的单元格和块进行了实验,发现这两种大小最适合他们的行人检测用例。

【讨论】:

  • 很多困惑现在已经解决了。非常感谢。
  • 不客气。我承认这个描述符一开始很混乱。必须阅读很多教程才能弄清楚。祝你好运!
  • 如果您不介意,我可以再问一个与 matlab 函数“extractHOGFeature”特别相关的问题。
  • 当然。发布另一个问题
  • 谢谢。我刚刚发布,这里是link
猜你喜欢
  • 2015-01-21
  • 2011-08-01
  • 2016-11-27
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
相关资源
最近更新 更多