OusGH a écrit:Je vous remercie pour votre réponse, j'utilise la kinect (capteur de microsoft utilise pour les projets de vision par ordinateur) pour récupérer différent point du visage. J'ai cité la distance entre les yeux pour ne pas compliquer le post. En réalité je récupère la distance entre les yeux, la distance entre les coins extérieurs des yeux, la longueur et la largeur du nez, la distance entre le nez et la bouche, la longueur de la mâchoire, ces distances combinées peuvent être discriminantes. J'ai juste une question, "epsilon = 1/2 min{|d(A)-d(B)|; A et B sont des visages dans ta base};" |d(A)-d(B)| devrait retourner une seule valeur, je cherche le minimum entre quoi et quoi ? merci.
En notant d(A)=distance_baseDeDonnée(distanceEntreLes2Yeux) pour chaque visage A, vous prenez toutes les valeurs absolues de d(A)-d(B) pour tous les couples de visages A et B, et vous prenez le minimum des valeurs obtenues.
Mais, en fait, je ne pense pas que ce soit la solution (j'avais mal compris le problème pratique), car vous devez surement aussi prendre en compte l'imprécision de vos mesures, parce que le minimum trouvé risque d'être très petit (peut être même égal à 0), en tout cas plus petit que l'imprécision de vos mesures, et si c'est le cas, il est possible qu'aucun visage ne passe le test.
On sort du domaine mathématique, mais il vaut peut être mieux un test qui laisse passer plusieurs visages (dont le bon, évidemment). Comme vous multipliez les tests, il n'en restera qu'un seul au bout du compte (du moins, il faut l'espérer, il peut y avoir des jumeaux indiscernables dans vos clients). Si c'est votre choix, il faut prendre
epsilon=2e
où e est la marge d'erreur dans vos mesures (le facteur 2 vient du fait qu'il y a 2 mesures concernées, celle de la base de données, et celle effectuée pour le test). Là, vous êtes sûr que le bon visage sera sélectionné. Les autres résultats correspondront à des visages ayant des distances entre les yeux proches.