2012-11-30 22 views
7

Ho lavorato a un progetto di riconoscimento facciale utilizzando FaceRecognizer di OpenCV, facendo differenziazione di genere. L'algoritmo funziona piuttosto bene, ma volevo implementare alcune funzionalità extra nel mio programma come la confidenza della previsione.Qual è la fiducia in FaceRecognizer di OpenCV?

La funzione di previsione può generare un livello di confidenza, ma non sono sicuro di cosa significhi. Che cosa misura effettivamente questa fiducia e posso convertirla in una percentuale?

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; 

Ecco come appare l'output. https://www.dropbox.com/s/65h1n5180ulz3hl/facerecConfidence%20.jpg

+3

Sarebbe bene aggiungere l'immagine direttamente alla domanda invece di collegare un'immagine da una fonte esterna (come dropbox) che non esiste più –

risposta

7

C'è una breve discussione su ciò che questa distanza è effettivamente sulla lista utenti OpenCV here.

In sintesi, la funzione che usano è:

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

Tuttavia, l'autore della funzione dice che si tratta di una guida molto approssimativa e non una guida piena prova. Vedi il link alla discussione sulla lista utenti per un riferimento alla carta e un suggerimento per una metrica alternativa.