2012-11-30 11 views
7

Pracuję nad projektem rozpoznawania twarzy za pomocą FaceRecognizer firmy OpenCV, różnicując płeć. Algorytm działa całkiem dobrze, ale chciałem wprowadzić pewne dodatkowe funkcje do mojego programu, takie jak pewność prognozy.Co to jest zaufanie do narzędzia FaceRecognizer firmy OpenCV?

Funkcja przewidywania może wygenerować poziom ufności, ale nie jestem pewien, co to oznacza. Co właściwie mierzy ta pewność i czy mogę ją przekonwertować na procent?

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; 

Oto, jak wygląda wyjście. https://www.dropbox.com/s/65h1n5180ulz3hl/facerecConfidence%20.jpg

+3

Byłoby dobrze dodać obraz bezpośrednio do pytania, zamiast łączyć obraz z zewnętrznego źródła (takiego jak dropbox), które już nie istnieje –

Odpowiedz

7

Istnieje krótka dyskusja na temat tego, jaki dystans faktycznie znajduje się na liście użytkowników OpenCV here.

Podsumowując, funkcja używają jest:

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

Jednak autor funkcji mówi, że jest to bardzo orientacyjne, a nie pełny dowód przewodnikiem. Zobacz link do dyskusji na liście użytkowników, aby uzyskać odniesienie do artykułu i sugestię alternatywnego pomiaru.