SVM 分类器和测试图像

Posted

技术标签:

【中文标题】SVM 分类器和测试图像【英文标题】:SVM classifier and test images 【发布时间】:2017-07-10 07:30:33 【问题描述】:

我在训练集中有 5 个类,每个类有 100 个训练图像。我在测试文件夹中创建了 5 个类。现在,每个测试图像都将与训练类进行比较,并根据它与其中一个训练类的接近程度,将其标记为相应的测试类。我想知道我在 SVM 分类器中的步骤是否正确?

【问题讨论】:

更精确。我不明白这个问题。也许你在问如何使用 SVM 进行多类学习,但也许不是。如果是这样,请查看多类学习中的 OneVsRest 和 OneVsOne 术语。 从 opencv 的 SVM 示例开始,用你的替换它们的数据。看看你得到了什么结果并从那里继续 (docs.opencv.org/2.4/doc/tutorials/ml/non_linear_svms/…) 【参考方案1】:

所以基本上你有以下结构:

火车

|-- class1
|   |-- 1.pgm
|   |-- ...
|   |-- 100.pgm
|-- class2
|   |-- 1.pgm
|   |-- ...
|   |-- 100.pgm
...
|-- class5
|   |-- 1.pgm
|   |-- ...
|   |-- 100.pgm

测试

|-- class1
|   |-- 1.pgm
|   |-- ...
|   |-- n.pgm

|-- class5
|   |-- 1.pgm
|   |-- ...
|   |-- n.pgm

下一步是从火车图像中提取描述符。使用提取的特征,您可以生成(训练)一个分类模型。最后,使用相同的编码方法从测试图像中提取特征,然后使用训练好的模型进行预测。

【讨论】:

谢谢 Liviu Stefan。那么我是否需要首先将所有测试数据手动分类到不同的类中,比如在训练数据集中?并且每个测试类是否应该有相同数量的图像,并且该数量可以与训练类中的图像数量不同?那么SVM分类器的作用是什么? 不,您不必手动对所有测试数据进行分类以引入不同的类。测试类也可以有任意数量的图像。您可以使用 SVM 根据训练图像训练分类模型,您将使用该模型对测试图像进​​行预测。 我正在总结我的工作。请评论。我有 5 个标签为“聊天”、“自行车”、“夜晚”、“吃”、“办公室”的课程。每个类有 100 张图像。我有一个包含 100 张随机图像的文件夹“test_data”。我有一个 vocab.mat、train_features(train_bag_of_sift.mat) 和 test_features(test_bag_of_sift.mat)。训练数据由 svmtrain 函数训练。 "scores = [scores ; (W' * test_image_feats' + B) ]" 给出分数,对应的索引类别(index(max_score)) 是预测的类别。为了找到准确度,这将与真实值进行比较。

以上是关于SVM 分类器和测试图像的主要内容,如果未能解决你的问题,请参考以下文章

分类和回归之间的区别,使用 SVM

如何使用 SIFT 和 SVM 实现通用图像分类器

以 SVM 作为弱学习器的 Opencv 级联分类器

图像识别之初探SVM分类器

OpenCV和SVM分类器在自动驾驶中的车辆检测

在 OpencV 中训练 SVM 分类器?