gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:53:25 27 4
gpt4 key购买 nike

我想用 scikit-learn 训练我的 svm 分类器进行图像分类。
而我想使用opencv-python的SIFT算法函数来提取图像特征,情况如下:

1. scikit-learn的svm分类器输入的是一个二维数组,即每一行代表一张图片,每张图片的特征量是一样的; here
2. opencv-python 的 SIFT 算法返回一个关键点列表,它是一个形状为 enter image description here 的 numpy 数组. here
所以我的问题是:
我如何处理 SIFT 特征以适应 SVM 分类器的输入?你能帮助我吗 ?

更新1:

感谢 pyan 的建议,我调整了我的建议如下:
1.从每张图片中获取SIFT特征向量
2.对所有向量执行k-means聚类
3.基于聚类中心创建特征字典,又名cookbook
4.根据特征字典重新表示每张图片,当然每张图片的维度量是一样的
5. 训练我的 SVM 分类器并对其进行评估

更新2:

我已将所有图像 SIFT 特征向量收集到一个数组(x * 128)中,该数组非常大,然后我需要对其进行聚类。
问题是:

如果我使用 k-means ,必须设置参数簇数,我不知道如何设置最佳值;如果我不使用 k-means,哪种算法可能适合这个?note:I want to use scikit-learn to perform clustering我的建议是:
1.对向量执行dbscan聚类,然后我可以得到label_size和labels;
2.由于scikit-learn中的dbscan不能用于预测,我可以根据dbscan的结果训练一个新的分类器A;
3. 分类器 A 就像一本食谱,我可以标记每个图像的 SIFT 向量。之后,每个图像都可以重新表示;
4.基于上述工作,我可以训练我的最终分类器B。note:for predict a new image, its SIFT vectors must be transform by classifier A into the vector as classifier B's input
你能给我一些建议吗?

最佳答案

图像分类可以很笼统。为了定义好的特征,首先你需要明确你想要什么样的输出。例如,图像可以根据其中的场景分为自然景观、城市景观、室内景观等。不同种类的分类可能需要不同种类的特征。

计算机视觉中用于基于关键字的图像分类的常用方法是词袋(特征装袋)或字典学习。您可以进行文献搜索以熟悉该主题。在您的情况下,基本思想是将 SIFT 特征分组到不同的集群中。而不是直接喂scikit-learn使用SIFT特征,给出特征组频率的向量作为输入。所以每个图像都将由一个一维向量表示。

来自维基百科的简短介绍 Bag-of-words model in computer vision

关于image - 如何使用 SIFT 和 SVM 实现通用图像分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532088/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com