slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Autor: Alberto González de Dios Tutor: Juan Manuel Montero Martínez PowerPoint Presentation
Download Presentation
Autor: Alberto González de Dios Tutor: Juan Manuel Montero Martínez

Loading in 2 Seconds...

play fullscreen
1 / 44

Autor: Alberto González de Dios Tutor: Juan Manuel Montero Martínez - PowerPoint PPT Presentation


  • 151 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Autor: Alberto González de Dios Tutor: Juan Manuel Montero Martínez' - vicki


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

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

slide2

Í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
slide3

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

slide4

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

slide5

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

slide6

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

slide7

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

slide8

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

slide9

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

slide10

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

slide11

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

slide12

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.
slide13

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
slide14

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

slide15

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

slide16

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

slide17

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

slide18

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
slide19

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

slide20

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

slide21

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

slide22

EVALUADOR DE GESTOS – BASE DE DATOS

Primero….

Y Entity Framework crea después…

slide23

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

slide24

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

slide26

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

slide28

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

slide29

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

slide30

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

slide31

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

slide33

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

slide34

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

slide35

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.
slide38

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

slide39

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
slide41

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
slide42

VARIANTES DTW

BANDA DE SAKOE-CHIBA

PARALELOGRAMO ITAKURA

slide43

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):
slide44

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