图像的尺寸为64 x 128.即8192幅度和梯度值。在合并阶段之后,我们留下了1152个值,因为我们根据它们的方向将64个像素转换为9个像素。你可以向我解释在L2归一化之后我们得到3780个向量吗?
答案 0 :(得分:1)
假设:你有64 x 128补丁的渐变。
计算8x8细胞中梯度的直方图
这是它开始变得有趣的地方。将图像分成8×8个单元,并计算每个8×8单元的HOG。我们使用8x8单元的原因之一是它提供了紧凑的表示。 8x8图像块包含8x8x3 = 192像素值(彩色图像)。此贴片的渐变包含每个像素的2个值(幅度和方向),最多可添加8x8x2 = 128个值。这些128个数字使用9-bin直方图表示,该直方图可以存储为9个数字的数组。这使得它更紧凑,并且在补丁上计算直方图使得该表示对噪声更加鲁棒。
直方图本质上是9个区间的向量,对应于与无符号梯度相对应的角度0,20,40,60 ... 180。
16 x 16块规范化
根据图像的渐变创建直方图后,我们希望描述符与光照变化无关。因此,我们将直方图标准化。 RGB颜色[128,64,32]的矢量范数是sqrt(128 * 128 + 64 * 64 + 32 * 32)= 146.64,这是臭名昭着的 L2范数。将该向量的每个元素除以146.64得到归一化向量[0.87,0.43,0.22]。如果我们将该向量的每个元素乘以2,则归一化向量将保持与之前相同。
虽然简单地将9x1直方图归一化是有趣的,但将更大尺寸的16 x 16块进行归一化更好。 16 x 16块具有4个直方图,可以连接以形成36 x 1元素向量,并且可以与示例中的3 x 1向量相同的方式对其进行归一化。然后将窗口移动8个像素,并在此窗口上计算标准化的36 x 1向量,并重复该过程(请参阅动画:Courtesy)
计算HOG特征向量
这是您的问题所在。
为了计算整个图像块的最终特征向量,将36×1向量连接到巨矢量上。让我们计算一下大小:
我们拥有16 x 16块的多少个位置?有7个水平位置和15个垂直位置,可提供105个位置。
每个16 x 16块由36 x 1向量表示。因此,当我们将它们连接成一个巨型矢量时,我们得到 36 x 105 = 3780维向量。
有关详细信息,请查看the tutorial where I learned.
希望它有所帮助!