44
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 1

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

  • Upload
    tansy

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

PowerPoint Presentation

DESARROLLO Y EVALUACIN DE UN SISTEMA DE TELEOPERACIN DE ROBOTS BASADO EN RECONOCIMIENTO DE GESTOSUSANDO EL SENSOR KINECT

Autor: Alberto Gonzlez de DiosTutor: Juan Manuel Montero Martnez0INTRODUCCINContextoMedios usadosObjetivosPRIMERA PARTE: EVALUADOR DE GESTOSIntroduccin a KinectDeteccin del MovimientoPreprocesamiento del esqueletoAlgoritmo DTWEvaluador de GestosEvaluacionesSEGUNDA PARTE: CONTROLADOR DE ROBOTTeleoperador de Robot Lego MindstormConclusiones

NDICE11

Hasta ahoraTeleoperacin de robots con mandos o joysticksManos OcupadasMovimientos artificiales pulsando botones de un mando Necesario aprender qu hace cada botnReconocimiento de gestos con cmaras RGBMovimientos en 2 dimensiones: sin profundidad y con distorsin (objetos lejanos ms pequeos)Realizacin de gestos siempre de frente

CONTEXTO2

MOTIVACIN - NECESIDADESNecesitamosTeleoperacin de robots mediante gestosManos LibresMovimientos naturalesReconocimiento de gestosMovimientos en 3 dimensionesGestos realizados en cualquier posicin, no slo de frenteReconocimiento instantneo (algoritmo de reconocimiento eficiente)Sistema sencillo y econmico

34MEDIOS USADOSPara realizar este proyecto se utilizSensor Kinect (desde noviembre de 2010)Imgenes en 3 dimensiones (cmara RGB + sensor de profundidad)Array de micrfonos incorporadoDisponible Kit de Desarrollo de Software (Kinect SDK)Econmico (Desde 100)Robot Lego Mindstorm (desde julio de 2006)Sencillo de montarDisponible libreras en .Net para mover el robot (monobrick)

5OBJETIVOSPara conseguir este objetivo es necesarioDesarrollar un Evaluador de GestosDetectar el movimiento que corresponde a un gestoDetectar qu gesto esIntegrar la librera de deteccin de gestos en un sistema de teleoperacin de robotsEL OBJETIVO

Desarrollar y evaluar un Sistema de Teleoperacin de robots basado en reconocimiento de gestos

Caractersticas:Cmara RGBSensor de ProfundidadArray de MicrfonosFuncionamientoEscner 3D de luz estructurada: Kinect proyecta con el emisor de luz infrarroja un patrn aleatorio de puntos, y la cmara infrarroja captura la luz reflejada. Como el patrn emitido es conocido por Kinect, la cmara puede obtener la informacin de profundidad a travs de algoritmos de visin estreo, como la correlacin cruzada o la triangulacin estrea.6

KINECT

KINECT DATOS ENVIADOSDatos enviados cada 33 ms (30 FPS):Imagen en color (Imagen RGB)Imagen en escala de grises (Imagen de Profundidad)Esqueletos detectadosEsqueletosConjunto de 20 puntos que definen el esqueleto de una personaUna vez que Kinect detecta un esqueleto, realiza un seguimiento. La deteccin de un esqueleto necesita un procesamiento y un conjunto de imgenes nuevas, lo que se traduce en tiempo (cada imagen nueva se enva cada 33 ms).El seguimiento es un proceso mucho ms simple, y que requiere slo una imagen nuevaKinect es capaz de detectar hasta 6 personas, y realizar tracking sobre 2 de ellas a la vez7

Rango de Visin:Profundidad: desde 80 cm hasta 4 metrosRango Horizontal: apertura de 58Rango Vertical: apertura de 43A una distancia de 2.5 metros:Rango Horizontal: Desde -1.2 metros hasta 1.2 metros del KinectRango Vertical: Desde -1 metro hasta 1 metro del Kinect

8KINECT RANGO DE VISIN

9MOVIMIENTO - DEFINICIN10MOVIMIENTO - DISTANCIA

11Sin umbralNo hay un umbral que marque el comienzo y el final de un gestoEn el entrenamiento se realiza una grabacin de duracin fija (ej. 3 segundos)En la deteccin, se establece es una ventana de tiempo mxima (ej. 3 segundos) y continuamente se estn comparando esa ventana con los gestos entrenados.Umbral de EnergaSe define el umbral de energa como la energa mnima necesaria para cambiar de estadoConsiderando 2 estados bsicos, reposo y gesto, superar el umbral supone iniciar el gesto; y caer por debajo del umbral, terminar el gesto.Umbral de tiempoSe define el umbral de tiempo como la duracin mnima de tiempo necesaria durante la cual la energa de un movimiento tiene que estar superando un cierto umbral para cambiar de estado.

MOVIMIENTO - UMBRALESMOVIMIENTO MQUINA DE ESTADOSMotivacinPara filtrar el ruido es necesario aplicar umbrales de energa y tiempo.Estos umbrales definen la transicin de un estado a otro, pero necesitamos establecer los estadosModelando una mquina de estados con varios umbrales de energa y tiempo, se consiguen unos umbrales dinmicos en funcin del estado en que se encuentre el movimientoMquina de 4 EstadosReposoInicio de MovimientoMovimientoFin de Movimiento

1213

LOS PROBLEMAS DE LA POSICIN Y DEL GIRADOCuando comparamos dos gestos, aparecen 2 problemas:Gesto entrenado y evaluado realizados en distinto lugarAumenta la distancia entre los gestos iguales.Puede disminuir la distancia entre gestos distintosGestos comparados sin estar de frente al KinectCambia totalmente el movimientoSolucionamos estos problemas mediante transformaciones linealesEl 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

DISTANCIA ENTRE EL GESTO ENTRENADO Y EL EVALUADO EN LA MISMA POSICIN(SUMA DE LOS MDULOS DE LAS FLECHAS BLANCAS)

DISTANCIA ENTRE ENTRE EL GESTO ENTRENADO Y EL EVALUADO EN DISTINTA POSICIN(SUMA DE LOS MDULOS DE LAS FLECHAS BLANCAS)DISTANCIA MS GRANDE QUE EL ANTERIOREn el entrenamiento (izquierda), mueve la mano izquierda

El la evaluacin (derecha), mueve la mano derecha

Ambos gestos realizan el mismo recorrido

La distancia entre los dos gestos es prcticamente cero!!!

14PREPROCESAMIENTO DEL ESQUELETOLos preprocesamientos implementados son:CentradoSe realiza una traslacin del esqueleto para situar la cadera en (0,0,1), siendo el Kinect el punto de Referencia (0,0,0)RotadoSe realiza una rotacin del esqueleto para que est siempre de frente al KinectDos tipos de rotado:Rotado mediante cambio de base. La nueva base est formada por:Eje X = Recta que une los hombrosEje Y = Columna vertebralEje Z = Perpendicular a Eje X y Eje YRotado mediante giro sobre el eje Y (Columna Vertebral).

ESQUELTO ORIGINALESQUELETO CENTRADO

ESQUELETO ORIGINAL GIRADOESQUELETO GPROCESADO GIRADO15ALGORITMO DTW

16ALGORITMO DTW

Aplicacin al reconocimiento de gestosSe compara el gesto detectado con cada uno de los gestos de entrenamiento, y aqul cuya distancia acumulada en el ltimo punto, D(N,M), sea menor, es el gesto buscado.

EVALUADOR DE GESTOSElementos clave del Evaluador de GestosLa librera, donde se implementa todas las funcionalidades del evaluador de gestosEl KinectLa base de datosLa aplicacin grfica, que hace uso de la librera , del Kinect y de la base de datos1718EVALUADOR DE GESTOS LIBRERAPor qu se usa una librera?Porque as desde cualquier aplicacin que queramos usar las funcionalidades y la potencia del evaluador de gestos, simplemente importando esta librera.En la librera se implementa:Preprocesador de esqueletos (centrado y rotados)Grabador y Reproductor de gestosLos 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 despus de cada tiempo transcurrido entre frames con el contenido de cada frame grabado.Algoritmo DTWReconocedor de gestos19EVALUADOR DE GESTOS BASE DE DATOSPor qu usar una base de datos?El acceso a la informacin es mucho ms rpido que en ficheros de textoSe pueden realizar consultar sobre grandes cantidades de datos filtrando los resultados. Ideal para extraer datos concretos de las evaluaciones:Datos guardados en base de datosUsuariosConfiguracionesEvaluacionesGestos, pero slo la referencia al archivo de texto con cada gesto.Datos no guardados en base de datosLa informacin 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.

20Base de datosMySQL porque es rpido, gratuito y existe un conector para C#Implementacin con EntityFramework (EF) mediante la tcnica Code FirstEntityFramework es un conjunto de APIS de .Net que permite interactuar con bases de datos. Existen 3 tcnicas para interactuar con bases de datos:Code First: se escribe el cdigo y EF genera la base de datos a partir del cdigo Database First: se crea la base de datos y EF genera entidades POCO para usar en el cdigoModel first es un mtodo donde se disea la base de datos, y EF genera la base de datos y el cdigoCode First: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 EntityFramework regenera la base de datos automticamente.EVALUADOR DE GESTOS BASE DE DATOSEVALUADOR DE GESTOS BASE DE DATOS

Primero.Y Entity Framework crea despus

2122EVALUADOR DE GESTOS SOFTWARECaractersticas generalesAplicacin grfica en Windows, programada en C# usando WPF con .Net 4.5Sistema de Usuarios:Ventana principal de LoginCada usuario tiene su propia configuracin, gestos entrenados y evaluacionesDividida en dos partesEvaluacinEntrenamientoTodos los parmetros de deteccin de gestos se pueden configurar, as como las evaluaciones y el entrenamientoA las secciones se accede pulsando los botones correspondientes, pero existe una barra de navegacin en la parte superior que permite volver atrs o adelante23EVALUADOR DE GESTOS SOFTWAREEn la seccin de entrenamientoSe puede realizar un entrenamiento automtico o que el sistema pare despus 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 brazosPara entrenar cada gesto, primero se reproduce una animacin para que el usuario realice la misma accinLos gestos entrenados se pueden reproducir, volver a grabar o borrar.En la reproduccin de gestos, se puede:Reproducir a distinta velocidad (ms rpido o ms lento)Manejar la vista en 3 dimensiones, rotando o moviendo la vistaEVALUADOR DE GESTOS ENTRENAMIENTO

2425EVALUADOR DE GESTOS SOFTWAREEn la seccin de evaluacinSe puede realizar una evaluacin automtica o que el sistema pare despus de entrenar cada gesto. Una vez parado, podemos reproducir el gesto, volver a grabarlo o entrenar el siguiente gesto.Tres tipos de evaluacin:Gestos configurados.Gestos aleatoriosSlo deteccin de gestosPara evaluar cada gesto, primero se reproduce una animacin para que el usuario realice la misma accinDespus de cada evaluacin, se pueden calcular los resultados de la evaluacin pulsando en la opcin de Calcular Evaluacin. Los resultados de las evaluaciones son guardados en base de datosEVALUADOR DE GESTOS DETECCIN

26EVALUADOR DE GESTOS PLATAFORMA

PANTALLA INICIAL

PANTALLA DE REGISTRO

PGINA PRINCIPAL

REPRODUCIR GESTOS GRABADOS

CONFIGURACIN DE LA DETECCIN DE MOVIMIENTOCONFIGURACIN DE LA EVALUACIN EN MODO LIBRE

CONFIGURACIN DE LA EVALUACIN

RESULTADOS DE LA EVALUACIN

2728Se han realizado 3 evaluaciones diferentes:Evaluacin de 11 gestos con el cuerpo de frente a KinectEvaluacin de 11 gestos con el cuerpo girado 45 respecto al KinectEvaluacin de 16 gestos: 11 gestos del entrenamiento y 5 gestos no entrenadosCon 7 perfiles de configuracin en cada evaluacin:Por DefectoEsqueleto CentradoEsqueleto Centrado y Rotado mediante Cambio de BaseEsqueleto Centrado y Rotado mediante Giro sobre el eje YEsqueleto Centrado y Rotado - Desplazamiento (Sakoe-Chiba) = 2Esqueleto Centrado y Rotado - Desplazamiento (Itakura) = 2Esqueleto Centrado y Rotado - Distancia selectiva con umbralEVALUACIONES29Con 11 gestos entrenados:Ambas Manos Abajo - Subir y BajarAmbas Manos Abajo - Subir y Bajar de FrenteAmbas Manos Abajo - Subir por completo y Bajar de FrenteMano Derecha Abajo - Subir y BajarMano Derecha Abajo - Subir y Bajar de FrenteMano Derecha Abajo - Subir por completo y Bajar de FrenteMano Izquierda Abajo - Subir y BajarMano Izquierda Abajo - Subir y Bajar de FrenteMano Izquierda Abajo - Subir por completo y Bajar de FrenteSaludo Mano DerechaSaludo Mano IzquierdaEVALUACIONESEVALUACIONESPor cada evaluacin se analizan:Los gestos acertadosLas distancias de los gestos detectados y la distancia entre el gesto detectado y el siguiente gesto ms prximoGrficas con probabilidad acumulada de distancia y probabilidad acumulada de distancia normalizada por el nmero de framesMatrices de confusin para distintos umbrales de rechazoTabla de valores de Acierto y Valor F-1 para distintos umbrales de rechazoUmbrales de rechazoHay dos tipos de umbral de rechazo:UDG - Umbral de rechazo teniendo en cuenta la distancia del gesto detectado:Distancia mxima que puede tener un gesto detectado para no ser descartadoUGDS - Umbral de rechazo teniendo en cuenta la distancia entre el gesto detectado y el segundoDistancia mnima que puede haber entre el gesto detectado y el segundo ms prximo para no ser descartado303031EVALUACIONES MATRIZ DE CONFUSIN

32EVALUACIONESEjemplo: para el perfil de Centrado y RotadoDistancias y gestos acertados:Grficas con probabilidad acumulada de distancia y probabilidad acumulada de distancia normalizada por el nmero de framesMatrices de confusin para distintos umbrales de rechazoTabla de valores de Acierto y Valor F-1 para distintos umbrales de rechazo

33COMPARATIVA DE EVALUACIONESPerfiles de configuracin 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 UmbralValores comparados por cada PC (Perfil de Configuracin):UDG - Umbral de distancia del gesto detectadoUGDS - Umbral de distancia entre el gesto detectado y el segundoAC - Porcentaje de AciertosF1 - Valor F1

TELEOPERADOR DE ROBOT MINDSTORMUsamos el Robot Mindstorm porque:Puede mover brazos y piernas (servomotores en brazos y piernas)Fcil de manejarPermite enviar comandos desde un programa en C# (mediante WIFI o USB)Movimiento del Robot mediante:VozMicrosoft Speech PlatformArchivo de texto con rdenesUmbral de confianza > 0.3GestosIntegracin con el Evaluador de GestosEn la configuracin, se asocian los posibles movimientos del robot a los gestos entrenados.

34TELEOPERADOR DE ROBOT CON GESTOS

35TELEOPERADOR DE ROBOT CON VOZ

3637Limitaciones del Kinect:Distancia recomendada en torno a 2.5 metros del Kinect.Umbrales de energa de tiempo y tiempo para la deteccin de gestos : Plataforma configurable para distintos umbrales.Algoritmo DTW: Robusto en la deteccin de gestos con preprocesamiento del esqueleto.Slo necesita un patrn con que compararPerfil de configuracin: Mejores resultado con el perfil Centrado y Rotado mediante cambio de baseUmbral de rechazoLos 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-1Evaluaciones realizadas con valores de precisin y F-1 de ms del 90%CONCLUSIONESPREGUNTASTodo el material est disponible en http://alberto.gonzalezdedios.es/pfc :Cdigo fuente del proyecto publicado en GitHub bajo licencia MITMemoriaVdeosTransparencias

38APNDICE39

Nueva versin de Kinect (lanzamiento verano 2014)Caractersticas:Cmara 3D (Sensor CMOS 3D)Array de MicrfonosFuncionamientoTiempo de Vuelo. Distintos tipos:Luz modulada con detector de fase: Kinect emite una seal de luz, y mide el desfase de la seal reflejada.Tiempo de vuelo directo: Kinect emite una seal de luz, y mide el tiempo que tarda la seal en ir y volver. La distancia mxima viene KINECT 2.0

40

VARIANTES DTWPARALELOGRAMO ITAKURABANDA DE SAKOE-CHIBA41VARIAS PERSONAS EN LA ESCENASi hay varias personas en la escena, se grabarn y se reproducirn todos los esqueletos detectados A la hora de calcular la energa, slo se tiene en cuenta el primer esqueleto del que se est realizando tracking.

Un gesto slo tiene un esqueleto por frame (slo un esqueleto detectado):

42PERSONAS DE DISTINTO TAMAOPrograma diseado para que cada usuario grabe sus propios gestos de entrenamientoSin embargo, es posible usar los gestos de entrenamiento de otra persona.Si la persona del gesto entrenado es mucho ms grande o pequea, la distancia de los gestos parecidos aumentar, y la de gestos distintos puede aumentar o disminuir.En una futura mejora, se podran normalizar los esqueletos

43