Python, OpenCV, Hand Tracking

Post on 16-Jul-2015

5.829 views 6 download

Transcript of Python, OpenCV, Hand Tracking

Aplicación para la Manipulación de Interfaces Gráficas de OS por medio de Gestos Manuales.

Yeison N. Cardona A. 808511Lina M. Castro R. 810014

Santiago Tabares M. 810561Jeffry A. Giraldo R. 808530

Universidad Nacional de Colombia sede ManizalesUniversidad Nacional de Colombia sede ManizalesSeñales y SistemasSeñales y Sistemas

22

Imagen OriginalImagen Original

● Python, OpenCV● 8 FPS

33

Desenfoque GausianoDesenfoque Gausiano

● Eliminar el ruido y reducir pequeños detalles.

44

Filtro de PielFiltro de Piel

● Se cambia la imagen a un modelo HSV (para hacer más fácil la manipulación) y se filtra desde una escala inferior a una mayor.

● El resultado del filtro es una imagen binaria.

● Por lo general la imagen resultante contiene muchas regiones aisladas, éstas se eliminan en filtros siguientes.

55

ErosiónErosión

● Quita la capa externa de píxeles del objeto, es decir, el objeto se hace en un poco más pequeño.

● Suaviza límites del objeto.

● Elimina los píxeles aislados ruidosos.

66

DilataciónDilatación

● Añade un anillo extra exterior de píxeles en los límites del objeto, es decir, el objeto se hace en un poco más grande.

● Suaviza los bordes del objeto.

● Rellena agujeros.

77

Hallado de ContornosHallado de Contornos

● La búsqueda se realiza sistemáticamente sobre cada píxel de la imagen.

● En caso de encontrar un píxel objetivo (valor mayor que 0) se guarda y se continúa analizando sus vecinos (8-conectados, es decir, en cruz y en aspa).

● De este modo se van guardando únicamente los puntos contiguos, externos.

88

Rellenado de ContornosRellenado de Contornos

● Se encargan de encontrar regiones conexas y dibujarlas.

99

ConvexidadesConvexidades

● Se hayan las convexidades mas significativas, que en este caso están representadas por cada dedo extendido.

1010

DefectosDefectos

● Se calculan los defectos de convexidad, es decir, los puntos pertenecientes al contorno inicial que difieren de los del recubrimiento.

1111

CentroideCentroide

● Se puede considerar el centroide como el centro de un rectángulo inclinado mínimo que contenga un área específica.

1212

Unión Convexidad-DefectoUnión Convexidad-Defecto

● La conexión de los puntos de convexidad y los defectos.

1313

Discriminación de DedosDiscriminación de Dedos

● Se calculan los ángulos entre las trayectorias convexidad-defecto-convexidad, si es menor a 90 grados, entonces podría tratarse de un dedo.

1414

Controles en Tiempo RealControles en Tiempo Real

Todos los parámetros de los filtros se pueden editar en tiempo real.

1515

Interpretación de ComandosInterpretación de Comandos

Dos dedos: Cursor liberado

Un dedo: Cursor capturado

Cinco dedos: Click Izquierdo

Tres dedos: Click Derecho

● La implementación de comandos se hace con el paquete xdotool para GNU/Linux.

● Xdotool permite emular pulsaciones de teclado y eventos de cursor.

● Se necesitan al menos 3 capturas antes de validar un comando.

1616

Movimiento del CursorMovimiento del Cursor

(X ,Y )

(0,0)

● Se toma las dos últimas posiciones (del centroide) de y se obtiene una posición relativa (X,Y).

● Se construye una trayectoria para desplazar el cursor.

● Se desplaza el cursor sobre esa trayectoria en un thread*.

*Si se recibe una nueva trayectoria antes de terminar el thread éste de termina.

1717

Atribución-CompartirIgual 3.0 UnportedAtribución-CompartirIgual 3.0 Unported

Aplicación para la Manipulación de Interfaces Gráficas deOS por medio de Gestos Manuales. por Yeison Cardona

se encuentra bajo una Licencia Creative CommonsAtribución-CompartirIgual 3.0 Unported.