2. 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.
6. 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.
7. 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
8. 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
9. 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.
10. 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.
11.
12. 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
16. Sensores NUI
• Sensores de audio.
• Dispositivos multitouch.
• Sensores de movimento (acelerometros).
• Camaras.
• Sensores infrarojos.
• Sensores 3D, etc...
17. GUI > NUI en Videojuegos
¿Evolución? Solo una forma
distinta
18. 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=p
layer_embedded&v=zXKqIr4cjyo
19. Ejemplo Sensor 3D
• MatterPort crea un modelo
tridimensional con texturas
del espacio donde se le
coloque.
20. Ejemplo Sensor 3D
• Leap: Controla la computadora con los
movimientos de los dedos.
26. 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.
38. 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 rango
Near 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
39. 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.
40. 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.
41. 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
42. 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.
43. 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++
45. ¿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/
46. ¿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
47. 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
52. 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
53. Middleware
• Fastmocap: Permite crear animaciones en
3D con tus movimientos, permite grabar
tus movimientos y reproducirlos en tus
modelos virtuales
54. 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.
55. 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.
56. 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