0

我是用于计算机视觉的 vlfeat 库的新手,我在处理它时遇到了问题。我想要做的是使用定向梯度直方图(HOG)作为特征向量在不同维度的 LIBSVM 图像中进行分类。

我要处理的第一个问题是 vl_hog 返回给我一个 HOG 矩阵,而不是一个向量。这不是一个真正的问题,因为我可以按如下方式对该矩阵进行矢量化:

            hog = vl_hog(image,cellSize); 
            features=hog(:);

第二个问题是什么让我感到害怕。因为图像有不同的维度,特征向量也有不同的维度,所以不可能用它们来提供 libsvm,或者我错了?我可以用更简单的方式解决这个问题吗?我错过了什么?

4

1 回答 1

1

您需要创建本地特征的全局表示,以便将数据提供给 SVM。这项任务最流行的方法之一是词袋(特征)。vlfeat 有一个很好的演示/示例。您可以从vlfeat 网站查看此代码。

对于您的特定情况,您需要在 Caltech-101 中安排您的训练/测试数据,例如数据目录:

  • 信 1
    • 图 1
    • 图 2
    • 图 3
    • 图 4
    • ...
  • 信 2
    • ...
  • 信 3
    • ...

然后,您需要为您的案例调整以下配置设置:

conf.numTrain = 15 ;

conf.numTest = 15 ;

conf.numClasses = 102 ;

此演示使用 SIFT 作为本地特征,但之后您可以将其更改为 HOG。

于 2015-03-03T08:51:53.767 回答