37
Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 1 Desarrollo de una aplicación Desarrollo de una aplicación Flash mediante control del Flash mediante control del movimiento utilizando técnicas movimiento utilizando técnicas basadas en visión basadas en visión Realizado por: Laura Baena Realizado por: Laura Baena Garrido Garrido Dirigido por: Cristina Dirigido por: Cristina Urdiales García Urdiales García Dpto. Tecnología Electrónica – Dpto. Tecnología Electrónica – Universidad de Málaga Universidad de Málaga Málaga, 8 de Febrero de 2011 Málaga, 8 de Febrero de 2011

Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Embed Size (px)

Citation preview

Page 1: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 1

Desarrollo de una aplicación Flash Desarrollo de una aplicación Flash mediante control del movimiento mediante control del movimiento

utilizando técnicas basadas en utilizando técnicas basadas en visiónvisión

Realizado por: Laura Baena GarridoRealizado por: Laura Baena Garrido

Dirigido por: Cristina Urdiales Dirigido por: Cristina Urdiales GarcíaGarcía

Dpto. Tecnología Electrónica – Universidad de Dpto. Tecnología Electrónica – Universidad de MálagaMálaga

Málaga, 8 de Febrero de 2011Málaga, 8 de Febrero de 2011

Page 2: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 2

1. Introducción2. Procesamiento de la

imagen3. Comunicación4. Animación5. Conclusiones6. Líneas futuras

Índice de contenidosÍndice de contenidos

Page 3: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 3

1. Introducción1. Introducción > > MotivaciónMotivación

Disciplina de estudio Disciplina de estudio HCI HCI

=> Interacción hombre-=> Interacción hombre-máquinamáquina

Page 4: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 4

1. Introducción1. Introducción > > Diagrama de bloquesDiagrama de bloques

Procesamiento de la Procesamiento de la imagenimagen

AnimaciónAnimación

ComunicaciónComunicación

Page 5: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 5

Interacción natural Interacción natural hombre/máquinahombre/máquina

Procesamiento imagen con C++ y OpenCVProcesamiento imagen con C++ y OpenCV

Animación con Macromedia Animación con Macromedia FlashFlash

1. Introducción1. Introducción > > FinalidadFinalidad

Page 6: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 6

1. Introducción2. Procesamiento de la

imagen3. Comunicación4. Animación5. Conclusiones6. Líneas futuras

Índice de contenidosÍndice de contenidos

Page 7: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 7

2. Procesamiento de la imagen > 2. Procesamiento de la imagen >

MotivaciónMotivación

Medida cuantitativa dentro de la Medida cuantitativa dentro de la imagen :imagen :

MOVIMIENTOMOVIMIENTO

1.1.Movimiento Movimiento lejano lejano

2.2.Movimiento Movimiento cercanocercano

Page 8: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 8

2. Procesamiento de la imagen > 2. Procesamiento de la imagen > Métodos de extracción Métodos de extracción de movimientode movimiento

Técnica de substracción de fondoTécnica de substracción de fondo

Permite diferenciar el fondo para detectar Permite diferenciar el fondo para detectar la presencia de personas u otros objetos en una la presencia de personas u otros objetos en una escenaescena

• Diferencia de imágenesDiferencia de imágenes

• Filtro promedio temporalFiltro promedio temporal

• Filtrado de medianaFiltrado de mediana

Los modelos básicos son :Los modelos básicos son :

Page 9: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 9

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Técnica de diferencia Técnica de diferencia de imágenesde imágenes

Page 10: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 10

BlobBlob

Estructura compuesta por un Estructura compuesta por un conjunto de píxeles adyacentes y sus conjunto de píxeles adyacentes y sus atributosatributos

blob_blob_11 blob_blob_

22

blob_blob_33

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Estructura blobEstructura blob

Page 11: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 11

2. Procesamiento de la imagen2. Procesamiento de la imagen > > SeguimientoSeguimiento

Secuencia de imágenes hasta la Secuencia de imágenes hasta la reducción de la zona de reducción de la zona de

búsquedabúsqueda

instante instante t-2t-2

instante instante t-1t-1

instante tinstante t

Page 12: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 12

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Localización de la Localización de la manomano

Si el usuario se encuentra cerca de Si el usuario se encuentra cerca de la cámarala cámara

Se cambia de estrategia, no se detecta Se cambia de estrategia, no se detecta movimientomovimiento

Localización de su mano, calculando Localización de su mano, calculando previamente las zonas de piel contenidas previamente las zonas de piel contenidas

en la escenaen la escena

Page 13: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 13

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Localización del color Localización del color pielpiel

1. Localización de la 1. Localización de la pielpiel

2. Detección de caras 2. Detección de caras (Viola-Jones)(Viola-Jones)

3. Estiramiento lineal 3. Estiramiento lineal (stretching)(stretching)

Page 14: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 14

Histograma de colorHistograma de color

Representación gráfica y estadística de la Representación gráfica y estadística de la distribución de los colores en la imagen, derivado distribución de los colores en la imagen, derivado del cómputo de píxeles en cada rangodel cómputo de píxeles en cada rango

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Localización del color Localización del color pielpiel

ESTIRAMIENTO LINEALESTIRAMIENTO LINEAL

Page 15: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 15

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Localización del color Localización del color pielpiel

1. Localización de la 1. Localización de la pielpiel

2. Detección de caras 2. Detección de caras (Viola-Jones)(Viola-Jones)

3. Estiramiento lineal 3. Estiramiento lineal (stretching)(stretching)

4. Descarte de la cara4. Descarte de la cara

Page 16: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 16

Operaciones Operaciones morfológicasmorfológicas

Apertura : Eliminación de zonas Apertura : Eliminación de zonas pequeñas (erosión + dilatación)pequeñas (erosión + dilatación)

Cierre : Comunicación de zonas que Cierre : Comunicación de zonas que hayan podido quedar desconectadas hayan podido quedar desconectadas

(dilatación + erosión)(dilatación + erosión)

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Detección de la manoDetección de la mano

Page 17: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 17

Tipos de gestos reconocidos por Tipos de gestos reconocidos por el sistema el sistema

Gesto mano Gesto dedo Gesto Gesto mano Gesto dedo Gesto dosdedosdosdedos

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Reconocimiento de Reconocimiento de gestosgestos

Page 18: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 18

Ángulo de Ángulo de inclinacióninclinación

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Extracción de Extracción de característicascaracterísticas

Page 19: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 19

Ángulo de Ángulo de inclinacióninclinación

ángulo = ángulo = 78’6º78’6º

ángulo = -ángulo = -62’04º62’04º

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Extracción de Extracción de característicascaracterísticas

Page 20: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 20

•Relación de aspectoRelación de aspecto

•Función suma de diferencias al Función suma de diferencias al cuadradocuadrado

•Número de píxeles en común con Número de píxeles en común con cada patróncada patrón

•Coeficientes de FourierCoeficientes de Fourier

Se ha comprobado que los 4 descriptores Se ha comprobado que los 4 descriptores siguientes son suficientes:siguientes son suficientes:

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Extracción de Extracción de característicascaracterísticas

Page 21: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 21

Descriptor 0 : Relación de aspectoDescriptor 0 : Relación de aspecto

Una de las magnitudes más usadas en Una de las magnitudes más usadas en Visión Artificial para clasificar objetos. Visión Artificial para clasificar objetos.

Se define como la relación entre altura y Se define como la relación entre altura y anchura del objeto.anchura del objeto.

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Extracción de Extracción de característicascaracterísticas

Page 22: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 22

Descriptor 1: Función cvMatchTemplateDescriptor 1: Función cvMatchTemplate

Pertenece a la librería OpenCV y compara una imagen Pertenece a la librería OpenCV y compara una imagen con un patrón conocido, obteniendo como resultado con un patrón conocido, obteniendo como resultado una nueva imagen que proporciona la similitud entre una nueva imagen que proporciona la similitud entre las dos anteriores.las dos anteriores.

void cvMatchTemplate( const CvArr* imagen, const CvArr* patron, CvArr* resultado, int method )

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Extracción de Extracción de característicascaracterísticas

Page 23: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 23

Descriptor 2 : Número de píxeles en Descriptor 2 : Número de píxeles en comúncomún

ratio = ratio = 0’77380’7738

ratio = ratio = 1’04191’0419

ratio = ratio = 1’12581’1258

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Extracción de Extracción de característicascaracterísticas

Page 24: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 24

Descriptor 3 : Coeficientes de Descriptor 3 : Coeficientes de FourierFourier

•Las componentes de baja frecuencia (valores de Las componentes de baja frecuencia (valores de k pequeños) determinan la forma globalk pequeños) determinan la forma global

•Las componentes de alta frecuencia (valores de Las componentes de alta frecuencia (valores de k elevados) tienen en cuenta los detalles más k elevados) tienen en cuenta los detalles más finosfinos

•Cálculo de coeficientes que caracterizan la Cálculo de coeficientes que caracterizan la forma de cada gesto, mediante un estudio forma de cada gesto, mediante un estudio heurísticoheurístico

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Extracción de Extracción de característicascaracterísticas

Page 25: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 25

Reducción de la zona de búsquedaReducción de la zona de búsqueda

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Mejora en el Mejora en el procesamientoprocesamiento

Page 26: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 26

Parámetros de salidaParámetros de salida

Coordenadas (x,y) para el caso de Coordenadas (x,y) para el caso de movimiento lejano y movimiento cercanomovimiento lejano y movimiento cercano

Modo : gesto de la manoModo : gesto de la mano

Formato de almacenamientoFormato de almacenamiento

Se genera un archivo Se genera un archivo XML que contiene los XML que contiene los datos procesadosdatos procesados

2. Procesamiento de la imagen2. Procesamiento de la imagen > > Salida del bloque de Salida del bloque de procesamientoprocesamiento

Page 27: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 27

1. Introducción2. Procesamiento de la

imagen3. Comunicación4. Animación5. Conclusiones6. Líneas futuras

Índice de contenidosÍndice de contenidos

Page 28: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 28

En la misma máquina, el bloque de En la misma máquina, el bloque de procesamiento de la imagen genera el procesamiento de la imagen genera el archivo XML en el disco local, y la aplicación archivo XML en el disco local, y la aplicación Flash accede para obtener los datos de Flash accede para obtener los datos de interés interés

PROBLEMA. . . Posible acceso PROBLEMA. . . Posible acceso simultáneo de simultáneo de escritura y escritura y

lectura del archivolectura del archivo

SOLUCIÓN . . . Uso de socketsSOLUCIÓN . . . Uso de sockets

Estructura Servidor / Estructura Servidor / Cliente Cliente

3. Comunicación > 3. Comunicación > Alternativas de diseñoAlternativas de diseño

Page 29: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 29

3. Comunicación > 3. Comunicación > Estructura Servidor / ClienteEstructura Servidor / Cliente

Servidor (C++ / OpenCV)Servidor (C++ / OpenCV) Cliente (Flash / Cliente (Flash / Actionscript)Actionscript)

Protocolo Protocolo XMLSocketXMLSocket

Page 30: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 30

1. Introducción2. Procesamiento de la

imagen3. Comunicación4. Animación5. Conclusiones6. Líneas futuras

Índice de contenidosÍndice de contenidos

Page 31: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 31

4. Animación > 4. Animación > Entorno de trabajo Macromedia FlashEntorno de trabajo Macromedia Flash

Page 32: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 32

Animación Flash detección de Animación Flash detección de movimientomovimiento

3. Animación > 3. Animación > Detección de movimiento del cuerpoDetección de movimiento del cuerpo

Page 33: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 33

Animación Flash detección y Animación Flash detección y reconocimiento de gestos de la manoreconocimiento de gestos de la mano

3. Animación > 3. Animación > Reconocimiento de los gestos de la Reconocimiento de los gestos de la manomano

Page 34: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 34

1. Introducción2. Procesamiento de la

imagen3. Comunicación4. Animación5. Conclusiones6. Líneas futuras

Índice de contenidosÍndice de contenidos

Page 35: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 35

ConclusionesConclusiones

•Proceso de rotación sobre el eje verticalProceso de rotación sobre el eje vertical

•Reducción de la zona de búsquedaReducción de la zona de búsqueda

•Utilización de socketsUtilización de sockets

•Detección frontal de la cara del usuarioDetección frontal de la cara del usuario

•La mano debe encontrarse aislada La mano debe encontrarse aislada

•Descarte de la cara mediante estructura Descarte de la cara mediante estructura elípticaelíptica

Page 36: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 36

1. Introducción2. Procesamiento de la

imagen3. Comunicación4. Animación5. Conclusiones6. Líneas futuras

Índice de contenidosÍndice de contenidos

Page 37: Desarrollo de una aplicación Flash mediante control de movimiento usando técnicas de visión (Laura Baena)

Desarrollo de una aplicación Flash mediante control del movimiento utilizando técnicas basadas en visión 37

Implementar un sistema de iluminación Implementar un sistema de iluminación que consiga estabilizar las condiciones de que consiga estabilizar las condiciones de uso del sistemauso del sistemaDetección de la mano, Detección de la mano, independientemente de lo aislada que se independientemente de lo aislada que se encuentreencuentreCombinación con los sensores actuales Combinación con los sensores actuales de Kinectde KinectAnimaciones Flash más generalizadas, Animaciones Flash más generalizadas, utilizar los gestos de la mano a modo de utilizar los gestos de la mano a modo de ratón de ordenadorratón de ordenador

Líneas futurasLíneas futuras