smile_expression_detector
Detector de sonrisa y expresiones faciales basado en landmarks de Mediapipe Face Mesh. Calcula ratios geométricos entre puntos de la boca para determinar si el usuario está sonriendo como parte del challenge-response de liveness activo.
When to use
Usar en el liveness_agent durante los desafíos activos cuando el sistema pide al usuario que sonría. Es uno de los posibles challenges aleatorios junto con parpadeo y giro de cabeza.
Instructions
- Obtener landmarks faciales de Mediapipe Face Mesh (468 puntos).
- Extraer landmarks de la boca: puntos 61, 291 (comisuras), 13, 14 (labios superior/inferior).
- Calcular Mouth Aspect Ratio (MAR): distancia vertical / distancia horizontal de la boca.
- Calcular Smile Ratio: distancia entre comisuras / distancia entre ojos.
- Umbral de sonrisa:
smile_ratio > 0.45yMAR > 0.3indica sonrisa. - Verificar que la sonrisa se mantiene durante al menos 0.5 segundos (15 frames a 30fps).
- Registrar
smile_scoreyduration_msen el evento de auditoría.
Notes
- No usar modelos pesados de expresión facial; los ratios geométricos con Mediapipe son suficientes y rápidos (<5ms).
- Asegurar que el challenge de sonrisa se selecciona aleatoriamente para evitar ataques de replay.
- Combinado con EAR (parpadeo) y head pose (giro), forma el conjunto completo de challenges activos.