如何计算轮廓的直方图?
how to compute histogram of silhouette?
我已经阅读了一篇论文 (Human activity recognition with metric learning) 并尝试实现它。
作者使用通道(剪影,光流),然后计算每个通道的直方图,如附图所示。
我计算了视频的轮廓和光流。但问题是,
1- 提到的直方图有什么意义?是否以合适的形式表示特征?
2-这个方法和HOG一样吗
3- 如何实现上述直方图?它只是划分边界框吗? .. 非常感谢。
抱歉给您带来不便
此致
我将尝试使用伪代码回答各种不同的问题。
1- 作者的最终目标似乎是获得他们正在 tracking 的 windows 的描述符(我猜是跟踪,我没有' t阅读论文)。因此,在计算轮廓 S
和 Fx
以及 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`
我已经阅读了一篇论文 (Human activity recognition with metric learning) 并尝试实现它。
作者使用通道(剪影,光流),然后计算每个通道的直方图,如附图所示。
我计算了视频的轮廓和光流。但问题是,
1- 提到的直方图有什么意义?是否以合适的形式表示特征?
2-这个方法和HOG一样吗
3- 如何实现上述直方图?它只是划分边界框吗? .. 非常感谢。
抱歉给您带来不便
此致
我将尝试使用伪代码回答各种不同的问题。
1- 作者的最终目标似乎是获得他们正在 tracking 的 windows 的描述符(我猜是跟踪,我没有' t阅读论文)。因此,在计算轮廓 S
和 Fx
以及 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`