classification with bag of visual word in python
I'm trying to classify different dog races using opencv and visual bag of word technique. I'm new in the field and I wondering 3 questions about the approach.
I have seen code example where the BOWtrainer is used with the matcher. Does it means the matcher help to find the "good keypoints/descriptors" so only the good ones will be used for the clustering. I cannot find any reference (tutorial?) on the subject and how it works. I don't know if it's common practice or not.
I'd like to compare the quality of the different detector/descriptor techniques BEFORE using them in the clustering . Can i use PCA on the descriptor to see if they have a good separative power? the problem I encountered is that the number of keypoints varies with each picture, should i flatten the descriptor for each image so they got same dimension and they can be compared with PCA?
I would like to use several techniques for the bag of visual word like ORB, SIFT SURF etc... should i perform K-means clustering for each descriptor, make histogram for each image and the finally concatenate each new features in a big feature vector so i can use a classifier on them? I have read that Kmeans clustering is not supposed to be good with binary descriptors. That approach could allow a different clustering adapted to the descriptor kind and then mixe every one of them in the end?
Thank you for your help