2012-11-30 6 views
7

Ich arbeite an einem Gesichtserkennungsprojekt mit dem FaceRecognizer von OpenCV. Der Algorithmus funktioniert ziemlich gut, aber ich wollte einige zusätzliche Funktionen in mein Programm einbauen, wie das Vertrauen der Vorhersage.Was ist Vertrauen in OpenCVs FaceRecognizer?

Die Vorhersagefunktion kann ein Konfidenzniveau ausgeben, aber ich bin mir nicht sicher, was es bedeutet. Was misst dieses Vertrauen eigentlich, und kann ich es in einen Prozentsatz umwandeln?

int predictedLabel = -1; 
double confidence = 0.0; 
model->predict(face_resized, predictedLabel, confidence); 
string result_message = format("Predicted class = %d/Confidence = %d.", predictedLabel, confidence); 
cout << result_message << endl; 

So sieht die Ausgabe aus. https://www.dropbox.com/s/65h1n5180ulz3hl/facerecConfidence%20.jpg

+3

Es wäre in Ordnung, das Bild direkt zur Frage hinzuzufügen, anstatt ein Bild aus einer externen Quelle (wie Dropbox) zu verknüpfen, die nicht mehr existiert –

Antwort

7

Es gibt eine kurze Diskussion darüber, was diese Entfernung tatsächlich in der OpenCV-Benutzerliste here ist.

Um es zusammenzufassen, die Funktion, die sie verwenden ist:

distance = 1.0f - sqrt(distSq/(float)(nTrainFaces * nEigens))/255.0f 

der Autor der Funktion jedoch sagt, dass es sich um eine sehr grobe Orientierung und keine vollen Beweis Führung. Eine Referenz zu dem Papier und einen Vorschlag für eine alternative Metrik finden Sie unter dem Link zur Benutzerlistendiskussion.

Verwandte Themen