captura movimientgfho
Post on 12-Jan-2016
4 views
Embed Size (px)
DESCRIPTION
hfghTRANSCRIPT
UNIVERSIDAD SIMON BOLIVARDECANATO DE ESTUDIOS PROFESIONALES
COORDINACION DE INGENIERIA DE LA COMPUTACION
Captura de movimiento de personas con multiples sensores Kinect
Por:Alfonso Ros, Ismael Mendonca
Realizado con la asesora de:Prof. Carolina Chang
PROYECTO DE GRADOPresentado ante la Ilustre Universidad Simon Bolvar
como requisito parcial para optar al ttulo deIngeniero en Computacion
Sartenejas, Abril 2012
RESUMEN
La captura de movimiento se basa en un conjunto tecnicas y metodos para el registro de
movimientos de un actor que se desenvuelve en una escena para su posterior analisis. Estos
metodos son empleados en una gran variedad de areas como la industria del entretenimiento,
el deporte, la medicina, la seguridad, entre otras.
El sensor Kinect desarrollado por Microsoft es un dispositivo disenado con el proposito
de realizar captura de movimiento para su consola de videojuegos XBOX. La introduccion de
dicho sensor al mercado y el desarrollo de controladores libres para el mismo han impulsado
la creacion de nuevas aplicaciones por parte de desarrolladores en todo el mundo.
Actualmente, el software dedicado a esta tarea es de alto costo o de codigo cerrado. El
presente trabajo comprende el desarrollo de un sistema para realizar captura de movimiento
de un individuo utilizando multiples dispositivos Kinect. Para esta tarea se implemento un
algoritmo de aprendizaje de arboles de decision llamado Randomized Decision Forests [25].
Este algoritmo es capaz de aprender ciertas caractersticas de un conjunto de imagenes
de profundidad con el fin de clasificar los pxeles de una imagen y as obtener la pose de la
persona. Para el entrenamiento del algoritmo, se sintetizaron imagenes utilizando programas
de diseno como Maya y Motion Builder. El clasificador arrojo resultados de clasificacion su-
periores al 60 % de los pxeles de una imagen, ademas de soportar corridas en tiempo real.
Las imagenes sinteticas como datos de entrenamiento resultaron convenientes por su facilidad
y precision de etiquetamiento y por su capacidad de generalizacion para los datos reales.
El clasificador implementado puede ser utilizado no solamente para reconocer poses de
personas, sino para cualquier otro problema de reconocimiento de objetos. El clasificador se
adapta dependiendo de los datos de entrenamiento suministrados, no es necesario ningun
cambio en la estructura logica del mismo.
Para estimar la posicion de las articulaciones del esqueleto se utilizo mean-shift [28] sobre
las regiones clasificadas para obtener dichas posiciones. Una vez obtenidos dichos puntos por
cada sensor, se integran las vistas de los mismos, utilizando una aproximacion basada en
descomposicion de valor singular [2].
iii
Indice general
Indice general IV
Indice de cuadros VIII
Indice de figuras IX
Glosario 1
1. Introduccion 2
2. Marco teorico 5
2.1. Captura de movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Sensor Kinect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1. Controladores para el Kinect . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Sustraccion de fondo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1. Mezcla de Gaussianas . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4. Transformaciones morfologicas en imagenes (Erosion y dilatacion) . . . . . . 10
2.5. Busqueda de contornos en imagenes binarias . . . . . . . . . . . . . . . . . . 11
2.6. Algoritmo RamerDouglasPeucker para reducir los vertices de una curva . . 13
2.7. Mean Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.8. Matriz dispersa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.8.1. Formato Yale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.9. Arboles de decision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.10. Bosques aleatorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.10.1. Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.11. Calibracion de una camara . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.11.1. Parametros extrnsecos . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.11.2. Parametros intrnsecos . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.12. Vision estereo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.12.1. Problema de correspondencia . . . . . . . . . . . . . . . . . . . . . . 20
2.12.2. Problema de reconstruccion . . . . . . . . . . . . . . . . . . . . . . . 21
2.13. Transformacion rgida entre dos conjuntos de puntos . . . . . . . . . . . . . 21
2.14. Busqueda Local (Local Search) . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.15. Algoritmo Genetico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3. Diseno e implementacion del clasificador y propuesta de esqueleto 23
3.1. Imagenes de profundidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2. Datos de entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.1. Codificacion de las imagenes para entrenamiento . . . . . . . . . . . . 25
3.2.2. Etiquetamiento de imagenes . . . . . . . . . . . . . . . . . . . . . . . 25
3.3. Implementacion de los arboles aleatorios . . . . . . . . . . . . . . . . . . . . 25
3.3.1. Funcion de atributo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.2. Estructura de los nodos . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.3. Clasificacion de un pxel . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.4. Entrenamiento del arbol . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4. Paralelizacion del entrenamiento con MPI . . . . . . . . . . . . . . . . . . . 28
3.5. Pre-procesamiento de imagenes en tiempo real . . . . . . . . . . . . . . . . . 29
3.5.1. Sustraccion de fondo . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5.2. Compresion de imagenes . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.5.3. Flood fill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.6. Definicion de las articulaciones del esqueleto . . . . . . . . . . . . . . . . . . 32
4. Diseno e implementacion de integracion de multiples vistas 35
4.1. Calculo de la transformacion rgida . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.1. Representacion de la transformacion rgida . . . . . . . . . . . . . . . 36
4.1.2. Metodo de calibracion estereo . . . . . . . . . . . . . . . . . . . . . . 37
4.1.3. Metodo de descomposicion aplicado sobre ambos esqueletos . . . . . . 38
4.1.4. Justificacion del metodo empleado . . . . . . . . . . . . . . . . . . . . 39
4.2. Estrategias para mejorar el resultado final . . . . . . . . . . . . . . . . . . . 39
4.2.1. Error asociado a una solucion . . . . . . . . . . . . . . . . . . . . . . 39
4.2.2. Transformacion rgida entre puntos acumulados . . . . . . . . . . . . 40
4.2.3. Promedio de matrices de transformacion rgida . . . . . . . . . . . . . 40
4.2.4. Mejoramiento iterativo (Busqueda local) . . . . . . . . . . . . . . . . 41
4.2.5. Algoritmo genetico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
v
4.2.6. Construccion del esqueleto final . . . . . . . . . . . . . . . . . . . . . 45
5. Experimentos y resultados 46
5.1. Algoritmo RF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1.1. Descripcion general de los experimentos . . . . . . . . . . . . . . . . 47
5.1.2. Entrenamiento para imagenes sinteticas . . . . . . . . . . . . . . . . . 50
5.1.3. Entrenamiento para imagenes reales . . . . . . . . . . . . . . . . . . . 51
5.1.4. Comparacion de imagenes sinteticas contra imagenes reales . . . . . . 53
5.2. Compresion de imagenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.1. Aplicacion de Flood Fill sobre una imagen clasificada . . . . . . . . . 54
5.3. Algoritmos utilizados para refinamiento de la matriz de transformacion . . . 56
5.3.1. Descripcion general de los experimentos . . . . . . . . . . . . . . . . 56
5.3.2. Comparacion entre el desempeno de cada algoritmo . . . . . . . . . . 57
6. Conclusiones y recomendaciones 59
A. Conceptos relacionados 69
A.1. Definiciones matematicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
A.1.1. Matriz de rotacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
A.1.2. Transformacion rgida . . . . . . . . . . . . . . . . . . . . . . . . . . 70
A.1.3. Sistema de ecuaciones inconsistente . . . . . . . . . . . . . . . . . . . 71
A.1.4. Centroide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
A.2. Modelo de camara estenopeica . . . . . . . . . . . . . . . . . . . . . . . . . . 71
A.3. Distorsion de lentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
A.3.1. Distorsion radial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
A.3.2. Distorsion tangencial . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
A.4. Descomposicion de valor singular . . . . . . . . . . . . . . . . . . . . . . . . 74
A.5. Metodo para hallar la transformacion rgida usando la descomposicion de va-
lores singulares . . . . . . . . . . . . . .