1 / 44

Autor: Alberto González de Dios Tutor: Juan Manuel Montero Martínez

DESARROLLO Y EVALUACIÓN DE UN SISTEMA DE TELEOPERACIÓN DE ROBOTS BASADO EN RECONOCIMIENTO DE GESTOS USANDO EL SENSOR KINECT. Autor: Alberto González de Dios Tutor: Juan Manuel Montero Martínez. ÍNDICE. INTRODUCCIÓN Contexto Medios usados Objetivos PRIMERA PARTE: EVALUADOR DE GESTOS

tansy
Télécharger la présentation

Autor: Alberto González de Dios Tutor: Juan Manuel Montero Martínez

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DESARROLLO Y EVALUACIÓN DE UN SISTEMA DE TELEOPERACIÓN DE ROBOTS BASADO EN RECONOCIMIENTO DE GESTOSUSANDO EL SENSOR KINECT Autor: Alberto González de Dios Tutor: Juan Manuel Montero Martínez

  2. ÍNDICE • INTRODUCCIÓN • Contexto • Medios usados • Objetivos • PRIMERA PARTE: EVALUADOR DE GESTOS • Introducción a Kinect • Detección del Movimiento • Preprocesamiento del esqueleto • Algoritmo DTW • Evaluador de Gestos • Evaluaciones • SEGUNDA PARTE: CONTROLADOR DE ROBOT • Teleoperador de Robot Lego Mindstorm • Conclusiones

  3. CONTEXTO • Hasta ahora… • Teleoperación de robots con mandos o joysticks • Manos Ocupadas • Movimientos artificiales pulsando botones de un mando • Necesario aprender qué hace cada botón • Reconocimiento de gestos con cámaras RGB • Movimientos en 2 dimensiones: sin profundidad y con distorsión (objetos lejanos más pequeños) • Realización de gestos siempre de frente 2

  4. MOTIVACIÓN - NECESIDADES • Necesitamos… • Teleoperación de robots mediante gestos • Manos Libres • Movimientos naturales • Reconocimiento de gestos • Movimientos en 3 dimensiones • Gestos realizados en cualquier posición, no sólo de frente • Reconocimiento instantáneo (algoritmo de reconocimiento eficiente) • Sistema sencillo y económico 3

  5. MEDIOS USADOS • Para realizar este proyecto se utilizó… • Sensor Kinect (desde noviembre de 2010) • Imágenes en 3 dimensiones (cámara RGB + sensor de profundidad) • Array de micrófonos incorporado • Disponible Kit de Desarrollo de Software (Kinect SDK) • Económico (Desde 100€) • Robot Lego Mindstorm (desde julio de 2006) • Sencillo de montar • Disponible librerías en .Net para mover el robot (monobrick) 4

  6. OBJETIVOS EL OBJETIVO Desarrollar y evaluar un Sistema de Teleoperación de robots basado en reconocimiento de gestos • Para conseguir este objetivo es necesario… • Desarrollar un Evaluador de Gestos • Detectar el movimiento que corresponde a un gesto • Detectar qué gesto es • Integrar la librería de detección de gestos en un sistema de teleoperación de robots 5

  7. KINECT • Características: • Cámara RGB • Sensor de Profundidad • Array de Micrófonos • Funcionamiento • Escáner 3D de luz estructurada: Kinect proyecta con el emisor de luz infrarroja un patrón aleatorio de puntos, y la cámara infrarroja captura la luz reflejada. Como el patrón emitido es conocido por Kinect, la cámara puede obtener la información de profundidad a través de algoritmos de visión estéreo, como la correlación cruzada o la triangulación estérea. 6

  8. KINECT – DATOS ENVIADOS • Datos enviados cada 33 ms (30 FPS): • Imagen en color (Imagen RGB) • Imagen en escala de grises (Imagen de Profundidad) • Esqueletos detectados • Esqueletos • Conjunto de 20 puntos que definen el esqueleto de una persona • Una vez que Kinect detecta un esqueleto, realiza un seguimiento. • La detección de un esqueleto necesita un procesamiento y un conjunto de imágenes nuevas, lo que se traduce en tiempo (cada imagen nueva se envía cada 33 ms). • El seguimiento es un proceso mucho más simple, y que requiere sólo una imagen nueva • Kinect es capaz de detectar hasta 6 personas, y realizar tracking sobre 2 de ellas a la vez 7

  9. KINECT – RANGO DE VISIÓN • Rango de Visión: • Profundidad: desde 80 cm hasta 4 metros • Rango Horizontal: apertura de 58º • Rango Vertical: apertura de 43º • A una distancia de 2.5 metros: • Rango Horizontal: Desde -1.2 metros hasta 1.2 metros del Kinect • Rango Vertical: Desde -1 metro hasta 1 metro del Kinect 8

  10. MOVIMIENTO - DEFINICIÓN • Movimiento • Variación de las posiciones de los puntos que forman el esqueleto • Cantidad de Movimiento • Cantidad de movimiento un punto del esqueleto P con coordenadas cartesianas (x,y,z): • Cantidad de movimiento de un punto del esqueleto entre frames ( • Cantidad de movimiento normalizada de un esqueleto entre frames: 9

  11. MOVIMIENTO - DISTANCIA • Distancia o energía entre esqueletos • Suma ponderada de la distancia entre los puntos correspondientes de cada esqueleto • ) • La distancia es la raíz cuadrada de la energía normalizada: • Dependiendo de los pesos ci , se definen varios tipos de distancia: • Distancia completa • Distancia selectiva • Distancia con umbral • Distancia selectiva con umbral 10

  12. MOVIMIENTO - UMBRALES • Sin umbral • No hay un umbral que marque el comienzo y el final de un gesto • En el entrenamiento se realiza una grabación de duración fija (ej. 3 segundos) • En la detección, se establece es una ventana de tiempo máxima (ej. 3 segundos) y continuamente se están comparando esa ventana con los gestos entrenados. • Umbral de Energía • Se define el umbral de energía como la energía mínima necesaria para cambiar de estado • Considerando 2 estados básicos, reposo y gesto, superar el umbral supone iniciar el gesto; y caer por debajo del umbral, terminar el gesto. • Umbral de tiempo • Se define el umbral de tiempo como la duración mínima de tiempo necesaria durante la cual la energía de un movimiento tiene que estar superando un cierto umbral para cambiar de estado.

  13. MOVIMIENTO – MÁQUINA DE ESTADOS • Motivación • Para filtrar el ruido es necesario aplicar umbrales de energía y tiempo. • Estos umbrales definen la transición de un estado a otro, pero necesitamos establecer los estados • Modelando una máquina de estados con varios umbrales de energía y tiempo, se consiguen unos umbrales dinámicos en función del estado en que se encuentre el movimiento • Máquina de 4 Estados • Reposo • Inicio de Movimiento • Movimiento • Fin de Movimiento

  14. LOS PROBLEMAS DE LA POSICIÓN Y DEL GIRADO DISTANCIA ENTRE ENTRE EL GESTO ENTRENADO Y EL EVALUADO EN DISTINTA POSICIÓN (SUMA DE LOS MÓDULOS DE LAS FLECHAS BLANCAS) DISTANCIA MÁS GRANDE QUE EL ANTERIOR DISTANCIA ENTRE EL GESTO ENTRENADO Y EL EVALUADO EN LA MISMA POSICIÓN (SUMA DE LOS MÓDULOS DE LAS FLECHAS BLANCAS) • Cuando comparamos dos gestos, aparecen 2 problemas: • Gesto entrenado y evaluado realizados en distinto lugar • Aumenta la distancia entre los gestos iguales. • Puede disminuir la distancia entre gestos distintos • Gestos comparados sin estar de frente al Kinect • Cambia totalmente el movimiento • Solucionamos estos problemas mediante transformaciones lineales • El preprocesamiento del esqueleto son transformaciones lineales en 3 dimensiones que se realizan antes de procesar los datos del esqueleto para calcular la distancia entre esqueletos • En el entrenamiento (izquierda), mueve la mano izquierda • El la evaluación (derecha), mueve la mano derecha • Ambos gestos realizan el mismo recorrido • La distancia entre los dos gestos es prácticamente cero!!! 13

  15. PREPROCESAMIENTO DEL ESQUELETO • Los preprocesamientos implementados son: • Centrado • Se realiza una traslación del esqueleto para situar la cadera en (0,0,1), siendo el Kinect el punto de Referencia (0,0,0) • Rotado • Se realiza una rotación del esqueleto para que esté siempre de frente al Kinect • Dos tipos de rotado: • Rotado mediante cambio de base. La nueva base está formada por: • Eje X = Recta que une los hombros • Eje Y = Columna vertebral • Eje Z = Perpendicular a Eje X y Eje Y • Rotado mediante giro sobre el eje Y (Columna Vertebral). ESQUELTO ORIGINAL ESQUELETO CENTRADO 14 ESQUELETO ORIGINAL GIRADO ESQUELETO GPROCESADO GIRADO

  16. ALGORITMO DTW • Objetivo: • Encontrar el alineamiento óptimo entre 2 secuencias temporales • Aplicado a este proyecto… • Encontrar el alineamiento óptimo entre 2 gestos (secuencias de esqueletos) • Camino de Alineamiento • Un camino de alineamiento es una secuencia cumple las siguientes condiciones: • Condición de frontera: • Condición de monoticidad: • Condición de desplazamiento: 15

  17. ALGORITMO DTW • Obtención del Camino óptimo • Se calcula la matriz de distancias acumuladas: • D es la distancia acumulada, y c es el coste o distancia entre dos esqueletos • Se obtiene el camino óptimo empezando por y : • Aplicación al reconocimiento de gestos • Se compara el gesto detectado con cada uno de los gestos de entrenamiento, y aquél cuya distancia acumulada en el último punto, D(N,M), sea menor, es el gesto buscado. 16

  18. EVALUADOR DE GESTOS • Elementos clave del Evaluador de Gestos • La librería, donde se implementa todas las funcionalidades del evaluador de gestos • El Kinect • La base de datos • La aplicación gráfica, que hace uso de la librería , del Kinect y de la base de datos

  19. EVALUADOR DE GESTOS – LIBRERÍA • ¿Por qué se usa una librería? • Porque así desde cualquier aplicación que queramos usar las funcionalidades y la potencia del evaluador de gestos, simplemente importando esta librería. • En la librería se implementa: • Preprocesador de esqueletos (centrado y rotados) • Grabador y Reproductor de gestos • Los gestos se graban escribiendo en un fichero de texto por cada frame en binario: el tiempo transcurrido desde el último frame, el plano del suelo y, como un objeto serializado, todos los esqueletos detectados . • Los gestos se reproducen lanzando eventos después de cada tiempo transcurrido entre frames con el contenido de cada frame grabado. • Algoritmo DTW • Reconocedor de gestos 18

  20. EVALUADOR DE GESTOS – BASE DE DATOS • ¿Por qué usar una base de datos? • El acceso a la información es mucho más rápido que en ficheros de texto • Se pueden realizar consultar sobre grandes cantidades de datos filtrando los resultados. Ideal para extraer datos concretos de las evaluaciones: • Datos guardados en base de datos • Usuarios • Configuraciones • Evaluaciones • Gestos, pero sólo la referencia al archivo de texto con cada gesto. • Datos no guardados en base de datos • La información de los esqueletos se guardan como objetos serializados en ficheros de texto. Al ser datos muy grandes y en binario, es mejor guardarlos en ficheros de texto para no sobrecargar la base de datos. 19

  21. EVALUADOR DE GESTOS – BASE DE DATOS • Base de datos • MySQL porque es rápido, gratuito y existe un conector para C# • Implementación con EntityFramework (EF) mediante la técnica CodeFirst • EntityFrameworkes un conjunto de APIS de .Net que permite interactuar con bases de datos. Existen 3 técnicas para interactuar con bases de datos: • CodeFirst: se escribe el código y EF genera la base de datos a partir del código • DatabaseFirst: se crea la base de datos y EF genera entidades POCO para usar en el código • Modelfirst es un método donde se diseña la base de datos, y EF genera la base de datos y el código • CodeFirst: • Cada clase se mapea en una tabla de la base de datos, y cada propiedad de la clase, se mapea en una columna de la tabla. • Se puede modificar la estructura de la base de datos, y EntityFrameworkregenera la base de datos automáticamente. 20

  22. EVALUADOR DE GESTOS – BASE DE DATOS Primero…. Y Entity Framework crea después…

  23. EVALUADOR DE GESTOS – SOFTWARE • Características generales • Aplicación gráfica en Windows, programada en C# usando WPF con .Net 4.5 • Sistema de Usuarios: • Ventana principal de Login • Cada usuario tiene su propia configuración, gestos entrenados y evaluaciones • Dividida en dos partes • Evaluación • Entrenamiento • Todos los parámetros de detección de gestos se pueden configurar, así como las evaluaciones y el entrenamiento • A las secciones se accede pulsando los botones correspondientes, pero existe una barra de navegación en la parte superior que permite volver atrás o adelante 22

  24. EVALUADOR DE GESTOS – SOFTWARE • En la sección de entrenamiento • Se puede realizar un entrenamiento automático o que el sistema pare después de entrenar cada gesto. Una vez parado, podemos reproducir el gesto, volver a grabarlo o entrenar el siguiente gesto. • Los gestos a entrenar son configurables. Por defecto hay 11 gestos, todos correspondientes a movimientos con los brazos • Para entrenar cada gesto, primero se reproduce una animación para que el usuario realice la misma acción • Los gestos entrenados se pueden reproducir, volver a grabar o borrar. • En la reproducción de gestos, se puede: • Reproducir a distinta velocidad (más rápido o más lento) • Manejar la vista en 3 dimensiones, rotando o moviendo la vista 23

  25. EVALUADOR DE GESTOS – ENTRENAMIENTO

  26. EVALUADOR DE GESTOS – SOFTWARE • En la sección de evaluación • Se puede realizar una evaluación automática o que el sistema pare después de entrenar cada gesto. Una vez parado, podemos reproducir el gesto, volver a grabarlo o entrenar el siguiente gesto. • Tres tipos de evaluación: • Gestos configurados. • Gestos aleatorios • Sólo detección de gestos • Para evaluar cada gesto, primero se reproduce una animación para que el usuario realice la misma acción • Después de cada evaluación, se pueden calcular los resultados de la evaluación pulsando en la opción de Calcular Evaluación. • Los resultados de las evaluaciones son guardados en base de datos 25

  27. EVALUADOR DE GESTOS – DETECCIÓN

  28. REPRODUCIR GESTOS GRABADOS RESULTADOS DE LA EVALUACIÓN PÁGINA PRINCIPAL CONFIGURACIÓN DE LA EVALUACIÓN EN MODO LIBRE PANTALLA DE REGISTRO CONFIGURACIÓN DE LA DETECCIÓN DE MOVIMIENTO PANTALLA INICIAL CONFIGURACIÓN DE LA EVALUACIÓN EVALUADOR DE GESTOS – PLATAFORMA

  29. EVALUACIONES Se han realizado 3 evaluaciones diferentes: Evaluación de 11 gestos con el cuerpo de frente a Kinect Evaluación de 11 gestos con el cuerpo girado 45º respecto al Kinect Evaluación de 16 gestos: 11 gestos del entrenamiento y 5 gestos no entrenados Con 7 perfiles de configuración en cada evaluación: Por Defecto Esqueleto Centrado Esqueleto Centrado y Rotado mediante Cambio de Base Esqueleto Centrado y Rotado mediante Giro sobre el eje Y Esqueleto Centrado y Rotado - Desplazamiento (Sakoe-Chiba) = 2 Esqueleto Centrado y Rotado - Desplazamiento (Itakura) = 2 Esqueleto Centrado y Rotado - Distancia selectiva con umbral 28

  30. EVALUACIONES Con 11 gestos entrenados: Ambas Manos Abajo - Subir y Bajar Ambas Manos Abajo - Subir y Bajar de Frente Ambas Manos Abajo - Subir por completo y Bajar de Frente Mano Derecha Abajo - Subir y Bajar Mano Derecha Abajo - Subir y Bajar de Frente Mano Derecha Abajo - Subir por completo y Bajar de Frente Mano Izquierda Abajo - Subir y Bajar Mano Izquierda Abajo - Subir y Bajar de Frente Mano Izquierda Abajo - Subir por completo y Bajar de Frente Saludo Mano Derecha Saludo Mano Izquierda 29

  31. EVALUACIONES • Por cada evaluación se analizan: • Los gestos acertados • Las distancias de los gestos detectados y la distancia entre el gesto detectado y el siguiente gesto más próximo • Gráficas con probabilidad acumulada de distancia y probabilidad acumulada de distancia normalizada por el número de frames • Matrices de confusión para distintos umbrales de rechazo • Tabla de valores de Acierto y Valor F-1 para distintos umbrales de rechazo • Umbrales de rechazo • Hay dos tipos de umbral de rechazo: • UDG-Umbral de rechazo teniendo en cuenta la distancia del gesto detectado: • Distancia máxima que puede tener un gesto detectado para no ser descartado • UGDS- Umbral de rechazo teniendo en cuenta la distancia entre el gesto detectado y el segundo • Distancia mínima que puede haber entre el gesto detectado y el segundo más próximo para no ser descartado 30

  32. EVALUACIONES – MATRIZ DE CONFUSIÓN 31

  33. EVALUACIONES • Ejemplo: para el perfil de Centrado y Rotado • Distancias y gestos acertados: • Gráficas con probabilidad acumulada de distancia y probabilidad acumulada de distancia normalizada por el número de frames • Matrices de confusión para distintos umbrales de rechazo • Tabla de valores de Acierto y Valor F-1 para distintos umbrales de rechazo 32

  34. COMPARATIVA DE EVALUACIONES • Perfiles de configuración comparados: • D- Por Defecto. Sin preprocesado. • C - Centrado. • CR-B - Centrado y Rotado mediante cambio de base. • CR-G - Centrado y Rotado mediante giro. • CR-U - Centrado y Rotado. Distancia Selectiva con Umbral • Valores comparados por cada PC (Perfil de Configuración): • UDG- Umbral de distancia del gesto detectado • UGDS- Umbral de distancia entre el gesto detectado y el segundo • AC- Porcentaje de Aciertos • F1- Valor F1 33

  35. TELEOPERADOR DE ROBOT MINDSTORM • Usamos el Robot Mindstorm porque: • Puede mover brazos y piernas (servomotores en brazos y piernas) • Fácil de manejar • Permite enviar comandos desde un programa en C# (mediante WIFI o USB) • Movimiento del Robot mediante: • Voz • Microsoft SpeechPlatform • Archivo de texto con órdenes • Umbral de confianza > 0.3 • Gestos • Integración con el Evaluador de Gestos • En la configuración, se asocian los posibles movimientos del robot a los gestos entrenados.

  36. TELEOPERADOR DE ROBOT CON GESTOS

  37. TELEOPERADOR DE ROBOT CON VOZ

  38. CONCLUSIONES • Limitaciones del Kinect: • Distancia recomendada en torno a 2.5 metros del Kinect. • Umbrales de energía de tiempo y tiempo para la detección de gestos : • Plataforma configurable para distintos umbrales. • Algoritmo DTW: • Robusto en la detección de gestos con preprocesamiento del esqueleto. • Sólo necesita un patrón con que comparar • Perfil de configuración: • Mejores resultado con el perfil Centrado y Rotado mediante cambio de base • Umbral de rechazo • Los mejores valores de acierto y valor F-1 se obtienen con UDG (Umbral de rechazo teniendo en cuenta la distancia del gesto detectado) • Acierto y Valor F-1 • Evaluaciones realizadas con valores de precisión y F-1 de más del 90% 37

  39. PREGUNTAS • Todo el material está disponible en http://alberto.gonzalezdedios.es/pfc : • Código fuente del proyecto publicado en GitHub bajo licencia MIT • Memoria • Vídeos • Transparencias

  40. APÉNDICE…

  41. KINECT 2.0 f 20 MHz Distancia máxima = 7.5 metros Nueva versión de Kinect (lanzamiento verano 2014) • Características: • Cámara 3D (Sensor CMOS 3D) • Array de Micrófonos • Funcionamiento • Tiempo de Vuelo. Distintos tipos: • Luz modulada con detector de fase: Kinect emite una señal de luz, y mide el desfase de la señal reflejada. • Tiempo de vuelo directo: Kinect emite una señal de luz, y mide el tiempo que tarda la señal en ir y volver. La distancia máxima viene

  42. VARIANTES DTW BANDA DE SAKOE-CHIBA PARALELOGRAMO ITAKURA

  43. VARIAS PERSONAS EN LA ESCENA • Si hay varias personas en la escena, se grabarán y se reproducirán todos los esqueletos detectados • A la hora de calcular la energía, sólo se tiene en cuenta el primer esqueleto del que se está realizando tracking. • Un gesto sólo tiene un esqueleto por frame (sólo un esqueleto detectado):

  44. PERSONAS DE DISTINTO TAMAÑO • Programa diseñado para que cada usuario grabe sus propios gestos de entrenamiento • Sin embargo, es posible usar los gestos de entrenamiento de otra persona. • Si la persona del gesto entrenado es mucho más grande o pequeña, la distancia de los gestos parecidos aumentará, y la de gestos distintos puede aumentar o disminuir. • En una futura mejora, se podrían normalizar los esqueletos

More Related