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

61
Kinect, Sensores 3D y Software Libre

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

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

Kinect, Sensores 3D y Software Libre

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

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.

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

Algunos proyectos Y TECNOLOGÍAS

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

Algunos logros

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

Historia de las interfaces de usuario

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

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.

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

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

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

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

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

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.

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

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.

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

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

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

Sensores CLI

• Teclado

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

Sensores GUI

• Teclado• Mouse• Plumas• Etc…

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

Sensores OUI

• Membranas multitextura• Pantallas flexibles• Muchas mas por venir

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

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

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

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

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

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

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

Ejemplo Sensor 3D

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

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

Ejemplo Sensor 3D

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

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

Ejemplo Sensor 3D

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

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

Ava iRobot

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

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

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

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

Kinect

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

Y muchos muchos mas…

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

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.

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

Sensores de PrimeSense

• Kinect for Xbox

• Kinect for Windows

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

Piezas

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

¿Cómo funciona?

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

• 1 Motor

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

Sensores

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

Sensores IR• Se hace un barrido por infrarrojo

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

Sensores IR• Se recoge

la señal que rebota

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

Como resultado se obtiene

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

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

Esqueleto• Puntos detectados

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

Partes del cuerpo

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

Ejemplo

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

Detección facial

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

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

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

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.

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

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.

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

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

Page 42: Kinect,Sensores 3D, NUI (Natural User Interfaces) y Open Source con 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

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

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++

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

OpenNI

• Arquitectura

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

¿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/

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

¿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:

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

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

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

Middleware

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

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

Middleware

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

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

Middleware

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

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

Middleware

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

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

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

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

Middleware

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

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

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.

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

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.

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

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

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

Middleware

• Interactive video projector: Vuelve cualquier pared en una touchscreen

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

Middleware

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

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

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

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

Middleware

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

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

Gracias

• Les recomiendo descarguen esta presentación.

• Para descargarla será subida al siguiente sitio.

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