Estoy trabajando en un proyecto de reconocimiento de gestos. ¿Qué empiezo a leer y dónde empiezo a trabajar?

Como Ameya señala, esto parece ser un problema de seguimiento. Sin embargo, esto puede convertirse fácilmente en un problema de reconocimiento de gestos diseñando un juego en el que un puño abierto y un puño cerrado hagan cosas diferentes.

Algunas cosas que pueden ayudar a comenzar con:

  1. Comienza a jugar con la API de C ++ de OpenCV. Tendrás una idea de las cosas automáticamente.
  2. Lea el marco de detección de objetos Viola-Jones. Se llama clasificador Cascade en OpenCV, creo. Se puede usar para detectar la mano dentro de una imagen.
    PD: es bastante complejo, así que solo trata de obtener una comprensión simplista del proceso.
  3. Lea el método de Lucas-Kanade. Esta es una manera de calcular algo llamado flujo óptico, que esencialmente significa cómo los píxeles ‘fluyen’. Esto se puede usar para rastrear objetos.

Espero que ayude.

Esto, en lugar de ser un proyecto de reconocimiento de gestos, es un proyecto de seguimiento. Tendrá que asignar la posición y la velocidad de su mano a un atributo en la pantalla. Si no es reacio a usar otro hardware, creo que su trabajo sería mucho más fácil si usara el dispositivo Leap Motion.

Si realmente desea usar cámaras, le sugiero que busque en estereovisión y algoritmos de seguimiento. Una básica implicaría usar flujo óptico. Algoritmos más complicados como TLD / Alien también son bastante frecuentes.

Por otro lado, si quieres hacerlo con una cámara monocular, el problema se complica muy rápido. La segmentación de manos y el seguimiento es una tarea difícil de hacer si solo tiene una vista única. En cuanto al lenguaje a usar, si está usando cámaras, C ++ / Python (OpenCV), si está usando el Kinect como un dispositivo de estereovisión, luego C ++ (OpenNI) y si está usando un dispositivo Leap Motion, tiene una plétora de idiomas para elegir.