Revision history [back]

Evaluate Quality of Matching with SVM

Hi,

I am implementing a BoF object detection and after training the SVM classifier I test it with the code below. My Problem is now that the classifier is not always right and I want to evaluate the quality of the matching. For example the tutorial about the extraction of SIFT/SURF Feature Points on http://docs.opencv.org/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html, a distance measure between the feature vectors allows to judge if a matching is good or not. With the BoF I have a Support Vector Machine telling me match / nomatch. How can I evaluate the quality of the matching??

Thanks!

cout << "eval file " << filepath << endl;

    img = imread(filepath);
bowide.compute(img, keypoints, response_hist);  //BOWImgDescriptorExtractor bowide

for (map<string,CvSVM>::iterator it = classes_classifiers.begin(); it != classes_classifiers.end(); ++it) {
float res = (*it).second.predict(response_hist,false);
cout << "class: " << (*it).first << ", response: " << res << endl;
}


// cout << "."; } cout << endl; closedir( dp );

cout <<"done"<<endl;
return 0;

 2 hashes from tags removed Siegfried 1393 ●10 ●26

Evaluate Quality of Matching with SVM

Hi,

I am implementing a BoF object detection and after training the SVM classifier I test it with the code below. My Problem is now that the classifier is not always right and I want to evaluate the quality of the matching. For example the tutorial about the extraction of SIFT/SURF Feature Points on http://docs.opencv.org/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html, a distance measure between the feature vectors allows to judge if a matching is good or not. With the BoF I have a Support Vector Machine telling me match / nomatch. How can I evaluate the quality of the matching??

Thanks!

cout << "eval file " << filepath << endl;

    img = imread(filepath);
bowide.compute(img, keypoints, response_hist);  //BOWImgDescriptorExtractor bowide

for (map<string,CvSVM>::iterator it = classes_classifiers.begin(); it != classes_classifiers.end(); ++it) {
float res = (*it).second.predict(response_hist,false);
cout << "class: " << (*it).first << ", response: " << res << endl;
}


// cout << "."; } cout << endl; closedir( dp );

cout <<"done"<<endl;
return 0;