Kinect,Sensores 3D, NUI (Natural User Interfaces) y Open Source con OpenNI

Post on 24-May-2015

2.491 views 0 download

description

Entra al mundo de las interfaces naturales de usuario y conoce todo lo que puedes lograr con sensores 3D

Transcript of Kinect,Sensores 3D, NUI (Natural User Interfaces) y Open Source con OpenNI

Kinect, Sensores 3D y Software Libre

Presentación, La parte que menos me gusta

• Carlos Toxtli Hernández• 13 años de experiencia en el

desarrollo de sistemas en múltiples tecnologías.

• 7 años en mandos de responsabilidad.

Algunos proyectos Y TECNOLOGÍAS

Algunos logros

Historia de las interfaces de usuario

CLI: Command Line Interface

• En los teletipos se escribía la orden en el teclado y se recibía la respuesta impresa en papel. Estos sistemas basados en teletipos dieron origen a la primera forma eficiente de interactuar con computadores: líneas de texto simple.

CLI: Command Line Interface• Con el advenimiento del sistema

operativo Unix a inicios de los 70s, el uso de la línea de comandos se convirtió en un estándar. Se canonizaron las reglas de ejecución basadas en tuberías, filtrado de archivos utilizando comodines, y todas aquellas funcionalidades que permitían las nacientes interfaces de texto. Los sistemas operativos que vendrían (CP/M, DOS) adoptarían como propias aquellas cualidades

GUI: Graphical User Interface

• Alan Kay, nacido el 17 de mayo de 1940, diseñó la GUI para PARC de Xerox de la cual se inspiró Apple Macintosh

GUI: Graphical User Interface• La interfaz gráfica de usuario,

es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicación con el sistema operativo de una máquina o computador.

NUI: Natural User Interface

• La interfaz natural de usuario (en inglés natural user interface o NUI) es aquella en las que se interactúa con un sistema, aplicación, etc. sin utilizar sistemas de mando o dispositivos de entrada de las GUI como sería un ratón, teclado alfanumerico, lápiz óptico, Touchpad, joystick etc.

OUI: Organic User Interface• La interacción también

incluye que los dispositivos cambien de forma, tamaño, posición, etc. El termino fue introducido por ACM en 2008

• Los principios de diseño son:– Input Equals Output– Function Equals Form– Form Follows Flow

Sensores CLI

• Teclado

Sensores GUI

• Teclado• Mouse• Plumas• Etc…

Sensores OUI

• Membranas multitextura• Pantallas flexibles• Muchas mas por venir

Sensores NUI• Sensores de audio.• Dispositivos multitouch.• Sensores de movimento (acelerometros).• Camaras.• Sensores infrarojos.• Sensores 3D, etc...

GUI > NUI en Videojuegos¿Evolución? Solo una forma distinta

Sensores 3D

• Funcionan haciendo un barrido del terreno y formando un modelo tridimensional del mismo usando distintas técnicas entre ellas las mas comunes son usando sonares o por medios ópticos como infrarrojo.

• https://www.youtube.com/watch?feature=player_embedded&v=zXKqIr4cjyo

Ejemplo Sensor 3D

• MatterPort crea un modelo tridimensional con texturas del espacio donde se le coloque.

Ejemplo Sensor 3D

• Leap: Controla la computadora con los movimientos de los dedos.

Ejemplo Sensor 3D

• Capri , sensor 3d para equipos móviles.

Ava iRobot

• Atención de pacientes, entre sus funciones obtiene los signos vitales y métricas necesarias durante el diagnostico.

SmartFit, by Styku

• Pruebate la ropa que esta a la venta en una tienda desde tu hogar, viendo exactamente como se te va a ver

Kinect

Y muchos muchos mas…

Entremos de lleno al Hardware

• Como el sensor 3D mas fácil de conseguir es el Kinect nos enfocaremos en él.

• Pero nos enfocaremos en su fabricante, PrimeSense.

Sensores de PrimeSense

• Kinect for Xbox

• Kinect for Windows

Piezas

¿Cómo funciona?

• 4 tipos de sensores– Sensor óptico salida– Sensor óptico entrada– Cámara– Micrófonos

• 1 Motor

Sensores

Sensores IR• Se hace un barrido por infrarrojo

Sensores IR• Se recoge

la señal que rebota

Como resultado se obtiene

• Imagen de profundidad, esqueleto y división por partes del cuerpo.

Esqueleto• Puntos detectados

Partes del cuerpo

Ejemplo

Detección facial

Diferencias de Hardware entre versiones

Kinect for Xbox 360 Kinect for Windows

 Rango de profundidad  del sensor: 1,2 – 3,5 metros

 Default Mode•0 – 0,8 metros, fuera de rango•0,8 – 4 metros, parámetros normales•4 – 8 metros, se recoge información pero no es óptima.•> 8 metros, fuera de rangoNear Mode•0 – 0,4 metros, fuera de rango•0,4 – 3 metros, parámetros normales (la mejor calidad se encuentra a los 2 metros).•3 – 8 metros, se recoge información pero no es óptima.•> 8 metros, fuera de rango

Entremos de lleno al Software

• La diferencia entre PrimeSense Carmine 1.08 y Kinect for Xbox, asi como la diferencia entre PrimeSense Carmine 1.09 y Kinect for Windows es el Software.

Diferencias de Software entre versiones

• Kinect permite usar el Microsoft Kinect SDK para ambas versiones de Kinect, pero no para dispositivos PrimeSense.

• Las aplicaciones creadas con Kinect for Windows se pueden comercializar, con Kinect for Xbox 360 no.

Drivers

• Microsoft Kinect SDK: Trae consigo un driver, se recomienda usarlo en caso de usar Kinect.

• OpenKinect libfreenect: Fue hecho especialmente para XBox360, com ingenieria inversa.

• SensorKinect: Pensando para integración com OpenNI

Frameworks

• Kinect for Windows SDK: – Actualizado constantemente, 3 veces al

año.– Reconocimiento de gestos faciales.– Reconocimiento de las manos y sus

movimientos.– Digitalización de objetos 3D.– Programación por medio de

herramientas que guardan los gestos.– Multiples proyectos de ejemplo en D2D

y WPF.– Se programa en C++, C# y VB

Frameworks

• OpenNI: Framework estándar para sensores 3D.– Significa Open Natural Interaction– OpenSource bajo licencia Apache 2.0– Gran cantidad de Middleware.– Un framework para varios dispositivos.– Se han vendido mas de 20 millones de

dispositivos que lo soportan.– Soportado por la comunidad.– Se programa en C++

OpenNI

• Arquitectura

¿Cómo programar en OpenNI?

• Una vez instalando OpenNI solo es cuestión de abrir los proyectos de la carpeta Samples para empezar a probar.

• Para mas información:• http://www.openni.org/resources/

¿Qué podemos hacer?

• A pesar de que OpenNI por si mismo es muy poderoso y completo, cuenta con Middleware que ya nos facilita nuestra labor con funciones que podemos solo incluir a nuestro proyecto y hacerlo mas robusto.

• Para facilitar la búsqueda entre los módulos te presentaremos algunos de ellos.

• A continuación pondremos algunos ejemplos:

Middleware• NITE: Modulo enfocado a la visión

por computadora (CV, Computer Vision)

• Basado en detección de manos, y cuerpo completo.

• Permite detectar incluso mas de 4 personas.

• Bajo desempeño de CPU.• Reconoce múltiples gestos

Middleware

• Artec Studio:– Convierte tu sensor en un scanner 3d– A color– Ajusta y optimiza los modelos.

Middleware

• 3d Hand Tracking Library : Detección precisa de las manos, en 3D, sus articulaciones y 26 puntos.

Middleware

• SigmaNIL: Detecta lenguaje de señas de forma precisa, asi como reconocimiento fino de dedos.

Middleware

• XD Production: Animación en tiempo real de personajes con tus movimientos

Middleware

• NI Mate: Permite animar actores virtuales con tus propios movimientos en tiempo real, así como controlar instrumentos musicales de verdad con tus movimientos al exportar tus gestos a MIDI o OSC

Middleware

• Fastmocap: Permite crear animaciones en 3D con tus movimientos, permite grabar tus movimientos y reproducirlos en tus modelos virtuales

Middleware

• Motion Nexus Plugin: Ayuda a controlar desde la web con el sensor 3D, puedes hacer un sitio especial para gente que tenga uno de estos sensores y vivir de otra forma la experiencia en la web.

Middleware

• GST API: Permite detectar de forma correcta movimientos en posturas distintas a estar de píe es útil cuando la gente puede estar sentada e interactuando por poner un ejemplo.

Middleware

• Artec Welcome: Permite usar tu computadora mientras tu estés en ella, detecta tu cara tridimensionalmente por lo que aunque estés volteado detecta que sigues siendo ti

Middleware

• Interactive video projector: Vuelve cualquier pared en una touchscreen

Middleware

• Podrás crear paredes y pisos interactivos altamente responsivos.

Middleware

• Audience: Cuenta a la gente que pasa y ve tu producto, o la audiencia que tiene y genera métricas de todo lo observado

Middleware

• Shopperception: Analiza las conductas de compra de nuestros clientes.

Gracias

• Les recomiendo descarguen esta presentación.

• Para descargarla será subida al siguiente sitio.

• http://www.facebook.com/carlos.toxtli