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

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

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

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

    最佳答案

    主要步骤可以表达;

    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-使用此向量训练分类器。 (线性SVM)

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

    关于machine-learning - 带有HOG描述符的单词袋,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45342759/

    10-12 18:03