SiFT的Opencv特征向量大小
我尝试使用标准贝叶斯分类器使用sift进行对象分类。当我计算每个大小可变的图像的描述符时,我得到不同大小的特征向量。例如:SiFT的Opencv特征向量大小,opencv,image-processing,bayesian,surf,Opencv,Image Processing,Bayesian,Surf,我尝试使用标准贝叶斯分类器使用sift进行对象分类。当我计算每个大小可变的图像的描述符时,我得到不同大小的特征向量。例如: Feature Size: [128 x 39] Feature Size: [128 x 54] Feature Size: [128 x 69] Feature Size: [128 x 64] Feature Size: [128 x 14] 至于开发,我使用20个训练图像,因此我有20个标签。我的分类只有三类,包括汽车、书和球。所以我的标签向量大小是[1
Feature Size: [128 x 39]
Feature Size: [128 x 54]
Feature Size: [128 x 69]
Feature Size: [128 x 64]
Feature Size: [128 x 14]
至于开发,我使用20个训练图像,因此我有20个标签。我的分类只有三类,包括汽车、书和球。所以我的标签向量大小是[1 x 20]
据我所知,要执行机器学习,特征向量大小和标签向量大小应该相同,因此我应该得到训练数据的向量大小为[_uux20],标签为[1 x 20]
但我的问题是,sift有128维的特征空间,因此每个图像都有不同的特征大小,如我上面所示。如何在不丢失特征的情况下将所有对象转换为相同大小?
或者我可能做得不对,所以请帮我解决这个问题
PS:事实上,我是用弓模型做的,它是有效的,但只是为了我的学习目的,我在这件事上尝试这么做只是出于兴趣,所以欢迎任何提示和建议。谢谢你你说得对,SIFT描述符是一个128维的特征 为图像中检测到的每个关键点计算SIFT描述符。在计算描述符之前,您可能使用检测器(如Harris、Sift或Surf检测器)来检测感兴趣的点 检测关键点和计算描述符是两个独立的步骤 在程序中打印
特征尺寸:[128 x Y]
时,Y表示当前图像中检测到的关键点数量
通常,使用BOW可以为每个关键点描述符指定BOW中最近簇的标记。根据您的应用程序,您可以做出决定。。。(对场景中是否存在一个对象进行投票,或…如果您不想使用BOW,可以尝试匹配原始场景中所述的各个筛选功能 其基本思想是将两幅图像相互比较,然后确定它们是否相似。您可以通过比较各个SIFT特征来实现这一点。你决定他们是否匹配。然后,要检查空间位置是否一致,需要检查是否可以将匹配的特征从一个图像转换到另一个图像
有关详细信息,请参见。谢谢。事实上,我做了一个作业,我用了弓,效果很好。然而,我非常感兴趣,我正在尝试不同的方法来分类图像。我试图在不使用弓模型的情况下进行分类,所以我想知道如何分配训练矩阵。你认为我会把矩阵从[128 x Y]改成[1 x Y]吗。这意味着我只使用了向量的一维。你怎么看?[1 x Y]矩阵毫无意义。实际上,您可以使用每个Y的单个SIFT特征[128 x 1],并将它们与从另一幅图像中提取的SIFT进行比较。对不起,实际上这就是它的意思。。非常感谢。