2
load fisheriris
xdata = meas(51:end,3:4);
group = species(51:end);
svmStruct = svmtrain(xdata,group,'showplot',true);



species = svmclassify(svmStruct,[5 2],'showplot',true)
hold on;plot(5,2,'ro','MarkerSize',12);hold off

上面的代码给出了结果---> species = 'virginica'

该物种被归类为“处女”。这只是一张图片。这个分类过程可以称为“图像检索”吗???

还是我们必须检索许多图像才能将其称为图像检索?

4

1 回答 1

6

图像分类:在称为训练集的数据集上训练模型,然后使用与训练集不相交的数据集进行测试(最重要)。

图像检索:给定查询图像,从数据库中获取与查询图像“最接近”的图像。现在,术语“最接近”可以是关于颜色、形状、纹理等。所以决定“最接近”的因素 - 图像的特征向量,用户根据旨在满足其需求的算法计算。

分类和检索之间的主要区别:分类需要训练数据的标签,而检索不需要。检索是一种纯粹基于距离的方法。

现在,继续你的问题:这不会被称为检索,因为它只是告诉我查询图像的类别,而不是为我提供相似的图像。现在你可能会争辩说,如果我对 100 个这样的图像进行分类,如果 50 个属于某个类别,那么在 100 个中分类,那么这些可以被视为相似图像。它是否正确?在我看来,答案是否定的。考虑一个例子,你必须对有车和没有车的图像进行分类。在(完美)分类的情况下,所有 50 张图像肯定都会有汽车。但是在(完美)检索的情况下,所有 50 幅图像都将具有相同颜色的汽车或小型/大型汽车等。这就是区别。

可以说检索到的最高的图像可以作为分类结果。这是可能的。但同样,我们有非常强大的分类算法(例如,SVM、随机森林、Boosting、多实例学习等),但检索的情况并不相同(据我所知)。因此,如果要进行分类,就不会取检索结果最高的,总是使用专用算法进行分类。

总而言之,如果一个过程不需要标签并且根据某些属性(颜色、纹理、形状等)进行检索,则该过程称为检索。分类是您需要标签的地方,它是根据类别完成的(例如,汽车/没有汽车、人/没有人、自然/人造等)。

我希望这能澄清你的概念。

于 2013-02-27T09:36:59.810 回答