una traslacion tipo teorema rotacion representacion posicion orientacion matriz matrices explicacion euler derivada cardanian angulo android face-detection euler-angles

traslacion - Android FaceDetector.Face los ángulos de Euler son 0 todo el tiempo



matrices de traslacion (3)

Configure el detector setMode en setMode

Aquí hay un ejemplo que me funcionó en Kotlin:

val detector = FaceDetector.Builder(context) .setClassificationType(FaceDetector.ACCURATE_MODE) .setMode(FaceDetector.ACCURATE_MODE) .setTrackingEnabled(true) .build()

Estoy intentando obtener el ángulo de Euler de una cara que es detectado por FaceDetector.

Aquí está lo que uso para enviar a Logcat:

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

Pero siempre devuelve 0.0 para los tres, sin importar en qué ángulo esté la cara. ¿Alguna idea de por qué?



Sí, el FaceDetector de API 1 nunca devuelve un ángulo de pose. Puedes mirar el código fuente para verificar.

El nuevo FaceDetectionListener de API 14 devolverá un ángulo de postura, pero ahora solo está disponible en un número limitado de dispositivos. Ni siquiera todos los dispositivos que ejecutan API 14 pueden usarlo. getMaxNumDetectedFaces() llamar a getMaxNumDetectedFaces() para ver si su dispositivo admite esa API.

Alternativamente puede intentar usar OpenCV. Un par de opciones para eso son http://code.opencv.org/projects/opencv/wiki/OpenCV4Android y http://code.google.com/p/javacv/ . En mi experiencia, no valen la pena la molestia a menos que realmente, realmente necesites el ángulo de postura.