Comment tracer un graphique pour les faux positifs par fenêtre en fonction du taux d'échec (ou probabilité de fausse alarme) et de la courbe ROC (receiver operating curve) pour une application de détection d'objets à l'aide d'une vidéo ?
Réponse
Trop de publicités?C'est assez simple. Stockez toutes vos vraies valeurs positives (H0) dans un tableau et toutes vos vraies valeurs négatives (H1) dans un autre.
Trier les deux listes.
Trouvez la valeur la plus élevée des deux listes et la valeur la plus basse des deux listes. Divisez l'intervalle par un nombre approprié (par exemple 1000), ce sera votre étape.
Maintenant, passez du minimum au maximum par la valeur du pas.
Pour chaque valeur d'évaluation, trouvez le point des tableaux h0 et h1 qui est supérieur à cette valeur. Divisez cet indice par le nombre de valeurs dans le tableau h0/h1 et multipliez par 100 (ce qui vous donne un pourcentage).
- Faux rejet (fr) = pourcentage de l'indice h0.
- Fausse acceptation (fa) = 100 - (pourcentage de l'indice h1).
Plot fa contre, 100 - fr.
Pour calculer le EER, vous devez trouver la distance minimale entre le fr et le fa calculés ci-dessus.
float diff = fabsf( fr - fa );
if ( diff < minDiff )
{
minDiff = diff;
minFr = fr;
minFa = fa;
}
Et à la fin, l'EER est calculé comme suit :
float eer = (minFr + minFa) / 2.0f;
Editar : Les valeurs que vous obtenez pour H0 et H1 sont simplement des valeurs de score indiquant la "probabilité" que votre correspondance soit correcte. Vous devez calculer ces chiffres quelque part car c'est sur la base de ce score que vous devez décider si vous reconnaissez ou non votre objet.
La liste H0 correspond aux scores que vous obtenez lorsque vous avez des correspondances précises. La liste H1 correspond aux scores que vous obtenez lorsque vous avez des non-correspondances définies.