Reconocimiento visual de ademanes usando

Transcripción

Reconocimiento visual de ademanes usando
Reconocimiento visual de
ademanes usando
MS Kinect – Captura de video
Dr. Héctor Avilés | Escuela de Invierno
de Robótica
2015
Sistema propuesto
Extracción de la silueta
Análisis visual
Ejecución del
ademán*
...
...
Captura de
Video RGB-D
Extracción de
observaciones
Postura,
forma
Ademán
Clasificación de
ademanes
BD
.
.
.
*Imagen tomada de: http://www.samsung.com/global/microsite/tv/common/guide_book_5p_vi/waving.html
Movimiento
Captura de video
●
●
●
●
Sensor MS-Kinect, eliminador y
computadora
Libfreenect
OpenGL Utility Toolkit (GLUT) para
despliegue
Ubuntu 14.04
Captura de video
●
Software para captura:
–
Microsoft SDK, OpenNI, libfreenect
Captura de video
●
¿Por qué libfreenect?:
–
Python, C, C++, C#, Java, Ruby, Matlab,
OpenCV
–
Linux, OS X, Windows
–
Registro de imágenes RGB y de profundidad
–
Ejemplos básicos de captura RGB-D,
reconstrucción 3D y sonido, (aunque no hay
esqueletización, reconocimiento de gestos,
etc.)
Captura de video
Hardware requerido
Captura de video
●
Libfreenect:
http://openkinect.org/
●
Descarga:
https://github.com/OpenKinect/libfreenect
●
Instrucciones de instalación:
http://openkinect.org/wiki/Getting_Started#Ubuntu_Manual_Install
Captura de video
●
Instrucciones de instalación:
–
sudo apt-get install git-core cmake libglut3-dev pkg-config
build-essential libxmu-dev libxi-dev libusb-1.0-0-dev*
–
git clone git://github.com/OpenKinect/libfreenect.git
–
cd libfreenect
–
cmake .
–
ccmake .
–
make
–
sudo make install
–
sudo ldconfig /usr/local/lib64/
–
sudo glview
*Alternativamente: sudo apt-get install git-core cmake freeglut3-dev pkg-config buildessential libxmu-dev libxi-dev libusb-1.0-0-dev
Captura de video
Árbol de subdirectorios
libfreenect
Captura de video
●
Subdirectorios importantes:
–
./libfreenect/bin (ejemplos ejecutables)
–
./libfreenect/examples (códigos fuente)
Captura de video
●
Archivos relevantes:
–
glview.c (glview)
–
glpclview.c (glpclview)
Captura de video
●
●
●
●
Captura (protocolo/API) y acceso a datos
(buffers) puede requerir un porcentaje
importante del tiempo total de desarrollo
Inicialmente se compilará glview.c y
glpclview.c fuera de ./libfreenect
Posteriormente se análizarán ambos
códigos
Makefile para compilar
Captura de video
●
●
●
Makefile es un archivo que indica al
compilador (gcc):
–
Directivas (e.g., -Wall)
–
Librerías (.so, .a)
–
Cabeceras (.h)
Soporte de variables (e.g., LDFLAGS, CFLAGS,
CC) y etiquetas
Utilería make para interpretación
–
make clean para borrar archivos objeto y
ejecutables
Captura de video
●
Estructura de árbol de Makefile:
–
fuentes → objetos → ejecutable
Captura de video
Ejemplo Makefile
Captura de video
●
glview.c:
–
RGB (3 bytes por pixel)
–
Profundidad 11 bits por píxel:
●
2047 valores posibles
●
Intervalo útil [300,1020]
–
Paleta de colores de gradiente para visualización
de profundidad
–
Resolución de 640x480 píxeles
–
Hilos (pthread) y OpenGL para captura/despliegue
2D
Captura de video
Ejemplo glview
Ejemplo
Ejecución glview
Ejemplo
Video
Seguimiento en oficina
Captura de video
●
Ejercicio:
–
Compilar glview.c y ejecutar glview
–
Identificar y documentar funciones de:
–
●
Inicio de comunicación con Kinect
●
Captura de datos
●
Conversión profundidad → RGB
●
Despliegue de imágenes
Localizar buffers de almacenamiento de RGB y
profundidad
Captura de video
●
glpclview.c:
–
Datos RGB y de profundidad similar al
glview.c
–
Despliegue 3D (nube de puntos)
–
Basado en gran medida en OpenGL
–
Acercamiento/rotación
Captura de video
Ejemplo glpclview
Ejemplo
Ejecución glpclview
Captura de video
●
Ejercicio:
–
Compilar glpclview.c y ejecutar glpclview
–
Use el ratón, 'w' y 's' para modificar la vista
–
Identificar y documentar funciones de:
–
●
Inicio de comunicación con Kinect
●
Captura de datos
●
Despliegue de imágenes
Localizar buffers de almacenamiento de RGB
y profundidad
Resumen
●
Kinect, libfreenect OpenGL para captura
●
Makefile para compilación
●
●
Revisión de códigos fuente de glview.c y
glpclview.c
glview y glpclview para captura y
despliegue
¿Preguntas?

Documentos relacionados