Sto sviluppando un progetto di classificazione di immagini utilizzando il modello BOW e SVM. Voglio scoprire che le SVM predicono la probabilità ma non esiste tale funzione in opencv svm. C'è un modo per fare questo? Voglio scoprire la probabilità di previsione in SVM di classe n.OPencv SVM previsione probabilità
risposta
No, non è possibile farlo con CvSVM. L'implementazione SVM di OpenCV è basata su una versione molto vecchia di libsvm. Scarica l'ultima versione di libsvm e usala invece. Ovviamente dovrai scrivere un wrapper per convertire i formati dei dati. Vedi http://www.csie.ntu.edu.tw/~cjlin/libsvm/
Si potrebbe provare a generare una matrice di confusione, questo dovrebbe dire la probabilità di ogni immagine appartenente a una delle classi. Confusion Matrix
E qui si ha un frammento che ho trovato, anche se è incompleta può darvi alcune idee:
map<string,map<string,int> > confusion_matrix; // confusionMatrix[classA][classB] = number_of_times_A_voted_for_B;
map<string,CvSVM> classes_classifiers; //This we created earlier
vector<string> files; //load up with images
vector<string> classes; //load up with the respective classes
for(..loop over a directory?..) {
Mat img = imread(files[i]),resposne_hist;
vector<KeyPoint> keypoints;
detector->detect(img,keypoints);
bowide->compute(img, keypoints, response_hist);
float minf = FLT_MAX; string minclass;
for (map<string,CvSVM>::iterator it = classes_classifiers.begin(); it != classes_classifiers.end(); ++it) {
float res = (*it).second.predict(response_hist,true);
if (res < minf) {
minf = res;
minclass = (*it).first;
}
}
confusion_matrix[minclass][classes[i]]++;
}
non ho ancora provarlo, così nel caso si arriva a rendere lavoro che apprezzerebbe che si comunica qui :)
Non sarei d'accordo. La probabilità della Confusion Matrix è un approccio frequentista data la verità fondamentale. La matrice di confusione è inutile per un'immagine non vista. –
in alternativa, è possibile implementare Platt ridimensionamento sulla decisione valori di se stessi come un fase di post-elaborazione per ottenere le probabilità. –
Questo è ancora l'approccio preferito di aprile 2015? – Poyan