我正在使用一种分类算法,该算法要求训练和测试中所有样本的特征向量的大小相同。
我也将使用 SIFT 特征提取器。这会导致问题,因为每个图像的特征向量都以不同大小的矩阵出现。我知道 SIFT 会检测每个图像中的可变关键点,但是有没有办法确保 SIFT 特征的大小是一致的,这样我就不会dimension mismatch
出错。
我尝试rootSIFT
过一种解决方法:
[~, features] = vl_sift(single(images{i}));
double_features = double(features);
root_it = sqrt( double_features/sum(double_features) ); %root-sift
feats{i} = root_it;
这为每个图像提供了一个一致的128 x 1
向量,但它对我不起作用,因为每个向量的大小现在非常小,而且我的NaN
分类结果得到了很多。
有没有办法解决这个问题?