matlabsift和svm_如何使用SIFT和SVM实现通用图像分类器

我想用scikit-learn训练我的svm分类器进行图像分类.

我想使用opencv-

python的SIFT算法函数来提取图像特征.情况如下:

1. skm分类器的scikit-learn输入是2-d数组,这意味着每行代表一个图像,每个图像的特征量是相同的; here

2. opencv-python的SIFT算法返回一个关键点列表,这是一个numpy形状的数组. here

所以我的问题是:

我如何处理SIFT功能以适应SVM分类器的输入?你能帮助我吗 ?

UPDATE1:

感谢pyan的建议,我调整了我的建议如下:

1.从每个图像中获取SIFT特征向量

2.对所有向量执行k均值聚类

3.创建基于集群中心的特征字典a.k.a. cookbook

4.基于特征字典重新表示每个图像,当然每个图像的尺寸量是相同的

5.训练我的SVM分类器并对其进行评估

UPDATE2:

我已经将所有图像SIFT特征向量收集到一个数组(x * 128)中,这个数组太大了,然后我需要对它进行聚类.

问题是:

如果我使用k-means,则必须设置参数簇号,我不知道如何设置最佳值;如果我不使用k-means,哪种算法可能适合这个?

注意:我想使用scikit-learn来执行群集

我的建议是:

1.对矢量执行dbscan聚类,然后我可以得到label_size和标签;

2.因为scikit-learn中的dbscan不能用于预测,我可以根据dbscan结果训练一个新的分类器A;

3.分类器A就像一本食谱,我可以标记每个图像的SIFT向量.之后,每个图像都可以重新表示;

基于上述工作,我可以训练我的最终分类器B.

注意:为了预测新图像,其SIFT向量必须由分类器A转换为向量作为分类器B的输入

你能给我一些建议吗?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值