Capacidades

Capacidades

OpenNI permite que coexistan en un mismo framework diferentes implementaciones de un mismo tipo de nodo de producción para la generación de un determinado tipo de datos (como en el caso del anterior ejemplo, en donde existían dos nodos generadores de usuario). 

No obstante, existe la posibilidad de que unas implementaciones ofrezcan funcionalidades adicionales más allá de ofrecer los datos en cuestión. Siguiendo con el ejemplo anterior, un User Generator podría a su vez ofrecer complementariamente  información sobre si el usuario está realizando una pose determinada

Para representar estas extensiones opcionales de la API, OpenNI define las capacidades o capabilities. Un nodo de producción concreto puede declarar qué capacidades soporta, y también se le puede preguntar específicamente si soporta una capacidad en concreto

Al enumerar las cadenas de producción disponibles, OpenNI permite a la aplicación especificar una serie de capacidades, de forma tal que las cadenas de producción devueltas se compongan de nodos compatibles con las capacidades indicadas.

Actualmente, OpenNI soporta las siguientes capacidades:

  • Alternative View: permite a cualquier generador de mapas (depth, image o IR) transformar los datos generados como si el sensor se encontrase en otra posición.
  • Cropping: permite a cualquier generador de mapas ofrecer como datos de salida una sección del mapa en lugar del mapa completo.
  • Frame Sync: permite que dos sensores que generen frames (por ejemplo, depth e image) sincronizar la recepción de los mismos frame a frame.
  • Mirror: permite “espejar” (inversión sobre el eje horizontal) los datos producidos por el generador
  • Pose Detection: permite a un generador de usuario reconocer si el usuario está realizando un determinado gesto.
  • Skeleton: permite a un generador de usuario procesar información sobre el “esqueleto” del mismo (uniones del esqueleto, seguimiento de posición y calibración).
  • User Position: permite a un generador de profundidad optimizar el mapa de profundidad generado para una determinada área de la escena capturada.
  • Error State: permite a un nodo de producción indicar que se encuentra en estado de error, por lo que su funcionamiento será errático.
  • Lock Aware: permite a un nodo entrar en modo de bloqueo (por ejemplo, en el caso de que el nodo esté siendo compartido por otras aplicaciones, permitiría evitar que dichas aplicaciones apliquen una nueva configuración al nodo).
  • Hand Touching FOV Edge:  genera una alerta cuando la posición capturada de la mano excede o alcanza los límites del campo de visión.

Obra publicada con Licencia Creative Commons Reconocimiento 3.0