gpt4 book ai didi

computer-vision - HOG:在对比度归一化步骤中做了什么?

转载 作者:行者123 更新时间:2023-12-01 07:25:23 29 4
gpt4 key购买 nike

根据HOG过程,如论文人体检测定向梯度直方图(请参阅下面的链接)中所述,对比度归一化步骤在合并和加权投票后完成。

我一无所知-如果我已经计算了像元的加权梯度,那么图像对比度的标准化现在对我有什么帮助?

据我了解,对比度归一化是在原始图像上完成的,而对于计算梯度,我已经计算了原始图像的X,Y导数。因此,如果我对对比度进行归一化并且希望它生效,则应该重新计算所有内容。

有什么我不太了解的东西吗?

我应该规范化单元格的值吗?

HOG中的归一化是否不是与对比度有关,而是与直方图值(每个仓中的细胞数)有关?

链接到本文:
http://lear.inrialpes.fr/people/triggs/pubs/Dalal-cvpr05.pdf

最佳答案

通过对每个块的局部直方图进行归一化来实现对比度归一化。

完整的HOG提取过程在这里得到了很好的解释:http://www.geocities.ws/talh_davidc/#cst_extract

当您对直方图进行归一化时,如果直方图确实包含每个方向的幅度总和,则实际上可以对该块中的对比度进行归一化。

术语“直方图”在这里令人困惑,因为您不计算方向k 的像素数,而是将这些像素的大小求和。因此,您可以在计算出块的向量之后,甚至在计算完整个向量之后,对对比度进行归一化,前提是您知道块在向量中的哪个索引处开始并且块在结束处。

根据我的理解,算法的步骤-为我工作,成功率为95%:

  • 定义以下参数(在此示例中,这些参数类似于“人类检测”文档中的“HOG”):
  • 像元大小(例如6x6)
  • 单元格中的块大小(例如3x3 ==>表示以像素为单位18x18)
  • 块重叠率(例如50%==>意味着块宽度和块高度必须以像素为单位。在此示例中可以满足,因为像元宽度和像元高度是偶数(6个像素),因此该块宽度和高度也均匀)
  • 检测窗口大小。大小必须可以除以块大小的一半而没有剩余(因此可以将块精确地放置在50%重叠的位置)。例如,块的宽度是18个像素,因此窗口宽度必须是9的倍数(例如9、18、27、36等)。窗口高度相同。在我们的示例中,窗口宽度为63像素,窗口高度为126像素。
  • 计算梯度:
  • 使用与向量[-1 0 1]的卷积计算X差
  • 使用卷积和上述向量
  • 的转置来计算Y差
  • 使用 sqrt(diffX ^ 2 + diffY ^ 2)计算每个像素中的梯度大小
  • 使用 atan(diffY / diffX)计算每个像素的渐变方向。请注意,和atan 将返回的值介于 -90 90 之间,而您可能希望的值介于 0 180 之间。因此,只需将 +180 度加到翻转所有负值即可。请注意,在用于人类检测的HOG中,它们使用无符号方向(0到180之间)。如果要使用带符号的方向,则应该多做一些工作:如果diffX和diffY为正,则 atan 值将介于 0 90 之间-保持原样。再次,如果diffX和diffY为负,您将获得相同范围的可能值-在这里,加+180,因此方向将翻转到另一侧。如果diffX为正而diffY为负,则将获得 -90 0 之间的值-保持相同(如果您希望它为正数,则可以添加+360)。如果diffY为正,而diffX为负,您将再次获得相同的范围,因此加+180,将方向翻转到另一侧。
  • “绑定”方向。例如,9个未签名的垃圾箱: 0-20,20-40,...,160-180 。您可以通过将每个值除以20并将结果取底来轻松实现。您的新分类路线将在 0 8 之间。
  • 使用原始矩阵的副本分别对每个块进行操作(因为某些块重叠并且我们不想破坏其数据):
  • 拆分为单元格
  • 为每个单元格创建一个具有9个成员的向量(每个bin一个)。对于bin中的每个索引,设置该方向上所有像素的所有大小的总和。一个单元格中总共有6x6像素。因此,例如,如果2个像素的方向为0,而第一个像素的大小为0.231,而第二个像素的大小为0.13,则应在向量的索引0中写入值0.361(= 0.231 + 0.13)。
  • 将块中所有单元的所有向量连接成一个大向量。此向量大小当然应该为 NUMBER_OF_BINS * NUMBER_OF_CELLS_IN_BLOCK 。在我们的示例中,它是 9 *(3 * 3)= 81
  • 现在,标准化此向量。使用 k = sqrt(v [0] ^ 2 + v [1] ^ 2 + ... + v [n] ^ 2 + eps ^ 2)(我使用eps = 1)。计算 k 之后,将向量中的每个值除以 k -这样,您的向量将被标准化。
  • 创建最终向量:
  • 将所有块的所有向量连接为1个大向量。在我的示例中,此向量的大小为6318
  • 关于computer-vision - HOG:在对比度归一化步骤中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417531/

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