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 分类器和测试图像的主要内容,如果未能解决你的问题,请参考以下文章