HoG功能如何以图形方式表示?

时间:2012-11-02 16:02:45

标签: image-processing opencv computer-vision feature-extraction

我正在实施“人体检测的定向梯度直方图”中的“定向梯度直方图”功能,我希望将结果可视化。有关这些功能的所有论文都使用标准可视化,但我找不到有关如何生成这些功能的任何描述。我很感激解释或有用的链接。

5 个答案:

答案 0 :(得分:12)

您在论文中看到的可视化可以解释如下:

描述符由覆盖网格中图像窗口的M * N个单元组成。每个单元由边缘方向的直方图表示,其中离散化的边缘方向的数量是参数(通常为9)。细胞直方图通过“星形”可视化,显示直方图中边缘方向的强度:特定方向越强,相对于其他方向越长。

请注意,存在各种规范化方案:局部方案,其中仅针对相邻小区进行归一化的小区(如Dalal-Triggs的原始论文中)或全局方案,其中方向长度通过以下方式归一化:所有的细胞。另请注意,有些作者会为每个单元格使用多个局部标准化(例如,我在下面提到的那个),但可视化只显示一个(或平均值)。

Felzenszwalb等人开创性工作的Matlab代码。通过在图像上绘制细胞来可视化细胞,其中强度通过边缘的强度而不是长度来可视化。您可以在这里给出的包(DPM)中找到它。寻找名为HOGpicture.m的函数

以下示例显示了一辆自行车的模型(来自Felzenszwalb等人),其中HoG由7 * 11个细胞组成,每个细胞有8个方向

HoG model of a bike, taken from Felzenszwalb et al

答案 1 :(得分:11)

一个名为 Jurgenwiki 的博客有一些示例代码(称为get_hogdescriptor_visu()),用于在OpenCV中可视化HOG描述符。在过去,我将Jurgenwiki代码复制/粘贴到C ++文件中,将我的HOG功能传递到get_hogdescriptor_visu(),并且可视化看起来非常好。这是一个例子:

enter image description here

Jurgenwiki代码的一个警告是,它希望您使用默认的HOGDescriptor()参数(例如16x16块,8x8单元,9个方向箱)。但是,如果您在HOGDescriptor中使用自定义参数,则可以调整Jurgenwiki代码以匹配您的HOG参数。

This StackOverflow post也很有用。

答案 2 :(得分:2)

最近有一篇论文(HOGles)在iccv 2013上发布,可视化HOG功能,这可能非常有用,代码可以在这里找到http://web.mit.edu/vondrick/ihog/#code

答案 3 :(得分:1)

答案 4 :(得分:0)

在这里,我想问一个问题,即一个人行走的两个序列帧,我们将每个图像的HOG抽出,然后对两个HOG进行区分。我想知道我们在最终(差异)HOG可视化中获得的信息。

谢谢