I am working with SIFT descriptors for a 2D image classification on python(3.7). As the dimension of the SIFT descriptor vector is 128, the recovered information is less discriminating. Therefore, I applied a PCA to reduce the dimension of my vector to 46 dimension. I was able to improve the result a bit, but I am looking to improve it even more by reducing the size of the SIFT descriptor computation matrix to a size smaller than 16 x 16. Do you have any suggestions on how to do this?
this is usually a “bad idea” (as long as you’re using keypoint-matching for the classification)
so, what are you planning to do here ?
you wont be able to change this from python.
that will reduce the length of the descriptors, but you still have an uneven “count” of those, and thus cannot use ml, like SVM, ANN for classification.
instead, what ppl use is clustering. create a dictionary from your features, later train & classify distance / histogram vectors
I try to get the descriptors of my image to build a database where each descriptor I assigned a class manually. Then, using this database and a machine learning algorithm (SVM or RF) I will make an automatic classification.
what you’re trying to do sounds like Content-based image retrieval - Wikipedia but how you’re trying to do it sounds like you haven’t done all that much research into it
yeah, mutilating SIFT isn’t gonna get you anywhere, nor is reducing the dimensions of individual feature descriptors.