gpt4 book ai didi

image-processing - 直方图bin的HOG三线性插值

转载 作者:行者123 更新时间:2023-12-04 07:58:28 24 4
gpt4 key购买 nike

我正在研究定向梯度直方图(HOG)功能,并尝试实现Dalal博士论文中所述的直方图bin的三线性插值。并且他解释了插值过程,如下所示:

编辑:粗略地说,HOG功能是从一个64x128像素的窗口中提取的,该窗口分为多个块。每个块由2x2单元组成,一个单元为8x8像素区域。提取首先计算图像的一阶导数,然后计算每个像素的方向和大小。计算每个8x8像素单元的块内的方向直方图,其中像素基于像素的方向以大小值对直方图做出贡献,并且在方向和位置上的相邻bin中心之间插值幅度。直方图包含9个区域,代表0-180度,步幅为20度。可以在此处看到该算法的整体描述:http://4.bp.blogspot.com/_7NBDeKCsVHg/TKBbldI8GmI/AAAAAAAAAG0/G-OXUz1ouPQ/s1600/a1.bmp

We first describe linear interpolation in a one dimension space and then extend it to 3-D. Let h be a histogram with inter-bin distance(bandwidth) b. h(x) denotes the value of the histogram for the bin centred at x. Assume that we want to interpolate a weight w at point x into the histogram. Let x1 and x2 be the two nearest neighbouring bins of the point x such that x1 ≤ x < x2. Linear interpolation distributes the weight w into two nearest neighbours as follows linear interpolation

Let w at the 3-D point x = [x, y, z] be the weight to be interpolated. Let x1 and x2 be the two corner vectors of the histogram cube containing x, where in each component x1 ≤ x < x2. Assume that the bandwidth of the histogram along the x, y and z axis is given by b = [bx, by, bz]. Trilinear interpolation distributes the weight w to the 8 surrounding bin centres as follows: trilinear interpolation formula

.



我们为单元格计算直方图,每个像素都将其大小值贡献给直方图。从公式中我了解到,x和y代表检测窗口中细胞的位置,z是箱号。在64x128的检测窗口中,有8x16的像元和9个方向箱,因此我们的直方图表示为h(8,16,9)。如果上述说法正确,(x1,y1)和(x2,y2)分别代表前一个和字母单元格吗? z1和z2是否表示前一个和字母方向的纸槽?带宽b = [bx,by,bz]呢?

如果有人可以澄清这些问题,我将不胜感激。

谢谢。

最佳答案

将(x1,y1,z1)和(x2,y2,z2)视为跨越立方体的两个点,该立方体围绕要为其插值h的点(x,y,z)。
八个点的集合(x1,y1,z1),(x2,y1,z1),(x1,y2,z1),(x1,y1,z2),(x2,y2,z1),(x2,y1, z2),(x1,y2,z2),(x2,y2,z2)构成了完整的立方体。因此(x1,y1,z1)和(x2,y2,z2)之间的三线性插值实际上意味着在3D直方图空间中围绕您感兴趣的点的8个点之间的插值!现在对您的问题:

(x1,y1),(x2,y2)(以及(x1,y2)和(x2,y1)表示(x,y)平面中的 strip 中心。

正如您所说,z1和z2代表方向上的两个bin级别。结合图像平面中的四个点,总共可以得到8个面元。

带宽b = [bx,by,bz]基本上是相邻箱体在x,y和z方向上的中心之间的距离。在您的情况下,在x方向上有8个bin,在该方向上有64个像素,在y方向上有16个bin,在y方向上有128个像素:

bx = 8 pixels
by = 8 pixels

这留下了bz,我实际上需要更多数据,因为我不知道您的渐变的完整范围(即最低到最高可能值),但是如果该范围是 rg,则:
bz = rg/9

通常,任何方向上的带宽等于该方向上的全部可用范围除以该方向上的bin数。

为了更好地解释带有图片的三线性插值,请查看 whoplisp's answer中的链接。

关于image-processing - 直方图bin的HOG三线性插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com