支持向量机用于多个对象分类

时间:2014-03-05 23:32:35

标签: image-processing machine-learning computer-vision classification svm

我正在尝试使用线性SVM进行多类对象类别识别。到目前为止,我所理解的主要是使用了两种方法 - 一对一(OVA)和一对一(OVO)。 但我很难理解其实施。我的意思是我认为使用的步骤是:

  • 首先,让我们说SIFT准备功能描述符。所以我有一个128XN的特征向量。
  • 接下来为特定物体类别(比如汽车)准备SVM分类器模型,我将50张汽车图像作为正面训练集,并从每个类别中随机抽取50张休息类别图像(这部分是否正确?) 。我为所有这些类别(比如说其中5个)准备了这样的模型。
  • 接下来,当我有输入图像时,是否需要将图像输入到所有5个模型中,然后检查每个模型的值(+ 1 / -1)?我很难理解这一部分。

2 个答案:

答案 0 :(得分:2)

在一对一的方法中,您必须检查所有5个模型。然后,您可以以最自信的价值做出决定。 LIBSVM给出了概率估算值。

在一对一的方法中,你可以占多数。例如,您测试1对2,1对3,1对4和1对5.您将其分为3个案例中的1。你对其他4个班级做同样的事情。假设其他四个类的值为[0, 1, 1, 2]。因此,第1类获得的次数最多,使该类成为最后一类。在这种情况下,您还可以进行概率估算。取最大值。除非在一对中进行分类极其错误,否则这将起作用。例如,在1对4中,它将置信度为4(真正的等级为1),置信度为0.7。然后仅仅因为这一个决定,你的概率估计总数可能会上升并给出错误的结果。这个问题可以通过实验检查。

LIBSVM使用一对一。您可以查看推理here。你也可以阅读this论文,他们在哪里捍卫一个与所有的分类方法,并得出结论,必然比一个对一个更差。

答案 1 :(得分:2)

简而言之,您的积极训练样本总是一样的。在一对一中,你训练n个分类器,其中每个负分类的负样本分别进行。在一个与所有你将所有负面样本混合在一起并训练一个分类器。前一种方法的问题是你必须考虑所有n个结果来决定课程。后一种方法的问题在于,创建一个非同类的类很难处理和分析。