如何使用libsvm与词袋的直方图

时间:2012-06-25 23:25:30

标签: computer-vision histogram classification svm libsvm

我设法将图像转换为视觉词的直方图表示。它可能像下面那样简单(标准化):

[0.1, 0.2, 0, 0.1, 0, 0.05, 0.3, 0, 0, 0, 0.2, 0.05, 0]

最多加1

现在,如果我上面有直方图的许多不同迭代,我想用libsvm对它进行分类。但是我被困在这里,我知道svmtrain的语法:

model=svmtrain(label,training_matrix)

训练矩阵应该只是我所有直方图的m×n矩阵 但是标签怎么样?我知道它应该是+1或-1,但负面图像来自何处? training_matrix中的所有内容都应该是代表班级的正面图像。

我将每个直方图视为一个单独的实例是错误的吗?相反,如果我将每个视觉单词视为一个实例,那么我将从代表该类的单词中得到负面信息。

1 个答案:

答案 0 :(得分:0)

我认为,你的课程是具有视觉相似性的图像组。 然后:

  • 每个图像都是一个实例
    • 图像直方图不再是变换/缩小的图像数据,因此每个图像直方图也是一个实例
  • 直方图中的每个bin都是一个特征

我建议您在文本文件中转换直方图,并使用二进制工具和this description进行第一次评估。

然而,如果颜色/强度不是对象的主要区别特征,我认为直方图不会给出好的结果。

如果您的图像只有图像上没有太多背景的小图像,更好的快速解决方案是将图像缩小到例如32x32并使用像素值作为功能。