如何计算轮廓的直方图?

how to compute histogram of silhouette?

我已经阅读了一篇论文 (Human activity recognition with metric learning) 并尝试实现它。

作者使用通道(剪影,光流),然后计算每个通道的直方图,如附图所示。

我计算了视频的轮廓和光流。但问题是,

1- 提到的直方图有什么意义?是否以合适的形式表示特征?

2-这个方法和HOG一样吗

3- 如何实现上述直方图?它只是划分边界框吗? .. 非常感谢。

抱歉给您带来不便

此致

我将尝试使用伪代码回答各种不同的问题。

1- 作者的最终目标似乎是获得他们正在 tracking 的 windows 的描述符(我猜是跟踪,我没有' t阅读论文)。因此,在计算轮廓 SFx 以及 Fy 通道后,作者通过附加 [S, Fx, Fy] 获得了 MxMx3 的 window,3 个通道。这不是表示 window 的一种非常合适的形式,因为 (1) 是非常高维的(MxMx3,可能有变量 M),(2) 不是尺度或方向不变的,并且(3) 它不是一个稳健的描述符。作者只是使用直方图方法(类似于 HoG 中的方法但不相同)将 MxMx3 通道转换为 216 维描述符(MxMx3 -> 216,而不考虑 M)。

2- 上面的回答。不是HoG,而是类似于HoG、SIFT等特征提取方法。

3- 如果我没有理解错(仅凭那一点信息),只需将边界框划分为 2x2 网格 (4 squares/sub-windows)。对于每个 sub-window 将其分成 18 个 20 度的切片(这不是直截了当的,但是知道像素相对于 sub-window 中心的位置,您可以计算角度因此,它所在的饼图部分。

然后,将属于子window (i,j)(与0 <= i,j < 2)的像素p和饼图切片k相加(在每个通道中)到直方图:

hist(i, j, k, c) += data(p, c)

其中 c 是通道(3 个通道 [S, Fy, Fx]),data(p, c) 是像素 p 和通道 c 处的 3 通道数据。

您最终会得到一个 2x2x18x3 = 216 描述符。你提供的摘录没有提到任何关于规范化该描述符的内容,但我想如果它什么也没说,它只是:

hist(i, j, k, c) /= sum(abs(flatten(hist)))

或者分别标准化每个子windows和通道(如在 hog 中执行的那样):

hist(i, j, k, c) /= sum(abs(hist(i, j, :, c)) # summing over the 3rd axis `k`