带有 HOG 描述符的词袋

Bas*_*ian 5 machine-learning computer-vision

我不太确定如何使用 HOG 描述符实现“词袋”方法。我检查了几个来源,这些来源通常提供以下几个步骤:

  1. 计算有效训练图像集的 HOG。
  2. 应用聚类算法从描述符中检索 n 个质心。
  3. 执行一些魔术以使用计算的 HOG 的最近质心的频率创建直方图,或使用 OpenCV 实现来执行此操作。
  4. 用直方图训练线性 SVM

涉及魔术(3)的步骤不是很清楚。如果我不使用 OpenCV,我将如何实现它?

HOG 是按单元计算的向量。所以我为每个单元格都有一个向量。我可以遍历向量并计算向量的每个元素的最近质心并相应地创建直方图。这是一个正确的方法吗?但如果是这样,我仍然有不同大小的向量并且没有从中受益。

小智 4

能表达主要步骤;

1-从整个训练集中提取特征。(HOG功能满足您的目标)

2-将这些特征聚类成词汇表V;你得到 K 个不同的聚类中心。(K-Means、K-Medoid。你的超参数将为 K)

3-将每个训练图像编码为每个词汇元素在图像中出现的次数的直方图。然后,每个图像由长度为 K 的向量表示。

例如; K 的第一个元素可能在图像中出现 5 次,K 的第二个元素可能出现 10 次。没关系,最后你会得到一个包含 K 个元素的向量。

K[0] = 5 k[1] = 10 .... .... K[n] = 3

4- 使用该向量训练分类器。(线性支持向量机)

当给定测试图像时,提取特征。现在将测试图像表示为 V 中每个聚类中心最接近测试图像中的特征的次数的直方图。这又是一个长度为 K 的向量。