我正在实现“用于人体检测的定向梯度直方图”中的定向梯度直方图特征,我想可视化结果。所有关于这些特性的论文都使用标准的可视化,但我找不到任何关于这些特性是如何生成的描述。我将不胜感激解释或有用的链接。
5 回答
你在论文中看到的可视化可以解释如下:
描述符由网格中覆盖图像窗口的 M*N 个单元组成。每个单元由边缘方向的直方图表示,其中离散化边缘方向的数量是一个参数(通常为 9)。细胞直方图通过“星”显示直方图中边缘方向的强度:特定方向越强,相对于其他方向的时间越长。
请注意,有多种归一化方案:局部方案,其中单元格仅相对于相邻单元格进行归一化(如 Dalal-Triggs 的原始论文中所示),或全局方案,其中方向长度由所有单元格归一化. 另请注意,一些作者对每个单元格使用多个局部归一化(例如我在下面提到的那个),但可视化仅显示一个(或它们的平均值)。
Felzenszwalb 等人开创性工作的 Matlab 代码。通过在图像上绘制细胞来可视化细胞,其中强度通过边缘的强度而不是长度来可视化。你可以在他们在这里提供的包中找到它(DPM)。查找名为 HOGpicture.m 的函数
下面的示例显示了一个自行车模型(来自 Felzenszwalb 等人),其 HoG 由 7*11 个单元组成,每个单元有 8 个方向
一个名为Jurgenwiki的博客有一些示例代码(称为get_hogdescriptor_visu()
),用于在 OpenCV 中可视化 HOG 描述符。过去,我将 Jurgenwiki 代码复制/粘贴到 C++ 文件中,将我的 HOG 功能传递到get_hogdescriptor_visu()
中,可视化效果看起来不错。这是一个例子:
Jurgenwiki 代码的一个警告是它希望您使用默认HOGDescriptor()
参数(例如 16x16 块、8x8 单元、9 个方向箱)。但是,如果您在 中使用自定义参数HOGDescriptor
,您可以调整 Jurgenwiki 代码以匹配您的 HOG 参数。
这篇 StackOverflow 帖子也非常有用。
最近在 iccv 2013 上发表了一篇关于可视化 HOG 特征的论文 (HOGles),这可能很有帮助,代码可在此处获得http://web.mit.edu/vondrick/ihog/#code
scikit-image 还提供 HOG 可视化: http ://scikit-image.org/docs/dev/auto_examples/plot_hog.html
在这里,我想问一个问题,一个人走路的两个序列帧,我们提取每个图像的 HOG,然后对两个 HOG 进行差分。我想知道我们在最终的(差异)HOG 可视化中得到了什么信息。
谢谢