2011-05-11 6 views
16

J'essaie d'obtenir l'angle d'Euler d'un visage détecté par FaceDetector.Android FaceDetector.Face Les angles d'Euler sont 0 tout le temps

Voici ce que j'utilise pour sortie Logcat:

Log.v("debug", " X: " + face.pose(Face.EULER_X) + " Y: " + face.pose(Face.EULER_Y) + " Z: " + face.pose(Face.EULER_Z)); 

Mais il revient toujours 0.0 pour les trois, peu importe quel angle le visage est à. Des idées pourquoi?

+0

Avez-vous vérifié s'il y a un objet Face détecté? – johnoodles

+0

Avez-vous une valeur de confiance au-dessus de CONFIDENCE_THRESHOLD? – Fildor

Répondre

2

Ouais le FaceDetector de l'API 1 ne retourne jamais un angle de pose . Vous pouvez regarder le source code pour vérifier.

Le plus récent FaceDetectionListener de l'API 14 renverra un angle de pose, mais il n'est actuellement disponible que sur un nombre limité d'appareils. Même pas tous les périphériques exécutant API 14 peuvent l'utiliser. Vous devez appeler getMaxNumDetectedFaces() pour voir si votre appareil prend en charge cette API.

Vous pouvez alternativement essayer d'utiliser OpenCV. Quelques options pour cela sont http://code.opencv.org/projects/opencv/wiki/OpenCV4Android et http://code.google.com/p/javacv/. Dans mon expérience, ils ne valent pas la peine à moins que vous ayez vraiment, vraiment besoin de l'angle de pose.

+0

Puis-je utiliser le FaceDetectionListener pour faire quelque chose de simple comme détecter des visages sur le Bitmap (rien à voir avec Camera)? Et sans l'angle de pose, est-il possible pour FaceDectector de vérifier les positions des deux yeux (cela semble impossible)? –

Questions connexes