图像检索与图像分类的区别

时间:2013-02-27 04:36:32

标签: image-processing classification svm matlab

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'

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

或者我们是否必须检索许多图像,以便将其称为图像检索?

1 个答案:

答案 0 :(得分:3)

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

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

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

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

您可以说顶部检索到的图像可以作为分类结果。这是可能的。但同样,我们有非常强大的分类算法(例如,SVM,随机森林,Boosting,多实例学习等),但案例与检索不一样(就我的知识而言)。因此,如果要执行分类,则不会获取检索的最高结果,您将始终使用专用算法进行分类。

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

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