使用matlab使用特征包进行对象识别

信息处理 图像处理 matlab 计算机视觉 物体识别 matlab-cvst
2022-02-21 10:53:48

我想编写一个使用特征包进行简单对象识别的 MATLAB 程序。简而言之,我想首先从图像中提取特征,使用这些特征创建一个视觉库,然后将属于一个部分的特征聚集在一起,从而创建不同的部分。现在使用这些零件进行匹配。我有基本的想法,但我对这背后的数学知之甚少,我也不知道如何去实现它。谁能帮我这个matlab代码?

2个回答

我不确定 stackexchange 是否只是为您提供代码的平台,我建议您从特征提取开始,下载用于 matlab 的 vl_sift 包并从每个图像中获取特征。

下一步,是量化特征:你可以为每张图像获得数百个特征,你需要决定有多少特征足以完成你的任务,然后对它们进行聚类,这些就是你最终的特征。(您需要量化它们,因为 2 个特征 - 即使描述相同的对象,也可能略有不同。您希望两个非常接近的特征由相同的描述符表示)。

现在,在你有了特征之后,你需要用它的特征来表示你的图像,对于词袋,常见的表示通常是直方图。

然后您可以比较 2 个图像表示以确定它们是否相同。这个阶段可以通过多种方式完成,一个简单的选择是 SVM 分类器,下载 lib_svm 包,非常好用。请注意,SVM 可以在 2 个类之间做出决定,如果您的任务是“识别”,那么您可能需要使用多类 SVM。

再次,从 vl_sift 开始,这将使您很好地了解您需要做什么。

祝你好运。

Richard Szeliski 所著的目前免费提供的计算机视觉书籍,包含对该算法的出色介绍。第 612 页。

编辑:

我在 DSP 上用一些示例代码回答了一个类似的问题