Nodos de Producción
Nodos de Producción
Un elemento fundamental en la arquitectura de OpenNI son los denominados Nodos de Producción. A la hora de obtener datos 3D del entorno, estos datos no se obtienen normalmente de forma automática, sino que requieren de un proceso de transformación sucesiva de diferentes datos, de forma tal que la información se va refinando hasta alcanzar el estado que una aplicación dada requiera.
Por ejemplo, el proceso de extraer las coordenadas de la mano del usuario a partir de una cámara de infrarrojos se podría descomponer a su vez en las siguientes etapas:
- Analizar los datos extraídos de la cámara para obtener un mapa de profundidad
- Analizar el mapa de profundidad para identificar los datos que correspondan al cuerpo del usuario
- Analizar los datos que correspondan al usuario para extraer las coordenadas en el espacio que corresponda a sus manos
En el ejemplo anterior podemos observar que en cada etapa se ha generado información 3D útil y relevante por sí misma. OpenNI define un nodo de producción como un elemento que genera información de un tipo específico. Así pues, siguiendo el ejemplo anterior, tendríamos tres nodos de producción diferentes que trabajan concatenadamente.
- Un generador de profudidad, que genera el mapa de profundidad a partir de los datos obtenidos del sensor de infrarrojos
- Un generador de usuario, que identifica al usuario a partir del mapa de profundidad.
- Un generador de coordenadas de mano (Hand Point Generator), que obtiene los datos deseados a partir del análisis de los datos del cuerpo del usuario
Por tanto, un nodo de producción puede entenderse como una unidad que genera un tipo específico de datos o información, los cuales podrán ser utilizados a su vez por otros nodos de producción o por la aplicación en sí. Los nodos de producción que generan datos se conocen como generadores o generators
Los nodos de producción más relevantes que utiliza OpenNI en relación a los módulos sensores son:
- Dispositivo (Device): representa a un dispositivo físico, a efectos configurar dicho dispositivo.
- Generador de profundidad (Depth Generator): genera un mapa de profundidad. La implementación de este nodo es obligatoria para cualquier sensor 3D compatible con OpenNI.
- Generador de Imagen (Image Generator): genera un mapa de color, siendo obligatoria su implementación para cualquier cámara RGB compatible con OpenNI
- Generador de Imagen Infrarroja (IR Generator): análogo al anterior, pero con mapas de infrarrojos y cámaras IR
- Generador de Audio (Audio Generator): genera un stream de audio, siendo obligatoria su implementación para cualquier sensor de audio compatible con OpenNI
Los nodos de producción más relevantes que utiliza OpenNI en relación a los módulos middleware son:
- Generador de Alertas Gestuales (Gestures Alert Generator): genera callbacks a la aplicación en el momento en que se detectan ciertos gestos
- Analizador de Escena (Scene Analyzer): genera un mapa de etiquetas (mapa de profundidad etiquetado que indica para cada píxel si pertenece a un objeto de interés o no)
- Generador de Coordenadas de la Mano (Hand Point Generator): genera callbacks al detectar una mano y realiza un seguimiento de sus coordenadas.
- Generador de Usuario (User Generator): genera una representación total o parcial del cuerpo del usuario.