Post on 24-May-2015
description
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