Ich entwickle ein Bildklassifikationsprojekt mit BOW-Modell und SVM. Ich möchte herausfinden, die SVMs Vorhersage Wahrscheinlichkeit, aber es gibt keine solche Funktion in opencv svm. Gibt es eine Möglichkeit, dies zu tun? Ich möchte die Vorhersagewahrscheinlichkeit in n-Klasse SVM herausfinden.OPencv SVM Wahrscheinlichkeit vorherzusagen
Antwort
Nein, Sie können dies nicht mit CvSVM tun. Die SVM-Implementierung von OpenCV basiert auf einer sehr alten Version von libsvm. Laden Sie die neueste Version von libsvm herunter und verwenden Sie sie stattdessen. Natürlich müssen Sie einen Wrapper schreiben, um Datenformate zu konvertieren. Siehe http://www.csie.ntu.edu.tw/~cjlin/libsvm/
Sie könnten versuchen, eine Konfusionsmatrix zu generieren, dies sollte Ihnen die Wahrscheinlichkeit jedes Bildes, das zu einer der Klassen gehört, mitteilen. Confusion Matrix
Und hier haben Sie einen Ausschnitt Ich fand, obwohl es unvollständig ist es Ihnen ein paar Ideen können:
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]]++;
}
ich habe es noch nicht getestet, so in dem Fall, dass Sie es machen bekommen ich würde Arbeit zu schätzen wissen, dass Sie es hier kommunizieren :)
würde ich nicht zustimmen. Die Confusion-Matrix-Wahrscheinlichkeit ist ein frequentistischer Ansatz angesichts der Grundwahrheit. Die Verwirrungsmatrix ist für ein unsichtbares Bild nutzlos. –
- 1. Erhalten Sie eine Wahrscheinlichkeit aus SVM
- 2. Opencv 3 SVM Training
- 3. SVM Parameteroptimierung in Opencv
- 4. OpenCV und Latent SVM Detector
- 5. Zug Branderkennung mit opencv SVM
- 6. Trainingsmatrix für SVM in OpenCv
- 7. OpenCV SVM "unsupported Antworttyp" error
- 8. SVM für Bild Feature-Klassifizierung mit OpenCv
- 9. Training benutzerdefinierte SVM mit HOGDescriptor in OpenCV
- 10. Lernen, das Verhalten zukünftiger Kunden aus der Historie vorherzusagen
- 11. Android OpenCV 3.1 laden SVM-Klassifikator aus Datei
- 12. Fehler beim Geben der Eingabe an SVM in opencv
- 13. Wie trainiere ich mein eigenes SVM in opencv mit C++?
- 14. Bildklassifizierung SVM mit
- 15. Funktionalität der Wahrscheinlichkeit = TRUE in der SVM-Funktion des e1071-Pakets in R
- 16. Zu viele Daten für SVM?
- 17. Zufallszahlen Wahrscheinlichkeit
- 18. Python, Wahrscheinlichkeit
- 19. Wahrscheinlichkeit Zufallsgenerator
- 20. Kann ich vorherige RNG-Daten verwenden, um die Wahrscheinlichkeit, dass der nächste Wurf ein bestimmter Wert ist, vorherzusagen?
- 21. Alle Argumente müssen mit svm
- 22. Training SVM mit Bildern von verschiedenen Dimensionen
- 23. Wahrscheinlichkeit von SHA1 Kollisionen
- 24. Was ist Log-Wahrscheinlichkeit?
- 25. Bedingte Wahrscheinlichkeit mit Powerpivot
- 26. berechnen Poisson-Wahrscheinlichkeit Prozentsatz
- 27. Wahrscheinlichkeit und relative Häufigkeit
- 28. Python - Modellierung Wahrscheinlichkeit
- 29. Rechnerische Komplexität unbekannter Wahrscheinlichkeit
- 30. Klassendiagramm für Wahrscheinlichkeit
Alternativ könnten Sie implementieren Platt Skalierung auf die Entscheidung selbst als Nachbearbeitungsschritt Werte Wahrscheinlichkeiten zu erhalten. –
Ist dies immer noch der bevorzugte Ansatz im April 2015? – Poyan