son significado reconocimiento que movimientos los historia gestos gesto corporales gesture-recognition wiimote

gesture-recognition - significado - que son los gestos corporales



¿Cómo funciona el reconocimiento de gestos? (6)

¿Un video de lo que se ha hecho con este tipo de tecnología, si alguien está interesado?

Pattie Maes demuestra el Sexto Sentido - TED 2009

En un entorno multitáctil, ¿cómo funciona el reconocimiento de gestos? ¿Qué métodos matemáticos o algoritmos se utilizan para reconocer o rechazar datos para posibles gestos?

He creado algunos guantes retrorreflectantes y una matriz IR LED, junto con un control remoto Wii. El control remoto de Wii realiza la detección de manchas internas y rastrea 4 puntos de luz IR y transmite esta información a mi computadora a través de un dispositivo Bluetooth.

Esto se basa en Wii Research de Johnny Chung Lee . Mi configuración precisa es exactamente igual que los estudiantes graduados de los Países Bajos que se muestran here . Puedo rastrear fácilmente las posiciones de 4 puntos en el espacio 2d y he escrito mi software básico para recibir y visualizar estos puntos.

texto alt http://i40.tinypic.com/x517yg.png texto alt http://i42.tinypic.com/nao9x.png texto alt http://i43.tinypic.com/65d1zp.png

Los estudiantes de los Países Bajos han obtenido mucha funcionalidad de su reconocimiento básico de pinchazo. Me gustaría ir un paso más lejos si pudiera, e implementar algunos otros gestos.

¿Cómo se implementa el reconocimiento de gestos? Más allá de cualquier cosa trivial, ¿cómo podría escribir software para reconocer e identificar una variedad de gestos: varios movimientos, movimientos circulares, rastreo de letras, etc.


El reconocimiento de gestos, como lo he visto de todos modos, generalmente se implementa utilizando técnicas de aprendizaje automático similares a las del software de reconocimiento de imágenes. Aquí hay un proyecto genial en el proyecto de código para hacer el reconocimiento de gestos del mouse en c # . Estoy seguro de que los conceptos son bastante similares ya que es probable que pueda reducir el problema al espacio 2D. Si consigues algo trabajando con esto, me encantaría verlo. Gran idea de proyecto!


Err ... He estado trabajando en el reconocimiento de gestos durante el último año o algo así, pero no quiero decir mucho porque intento patentar mi tecnología :) Pero ... hemos tenido algo de suerte con refuerzo adaptativo, aunque lo que estás haciendo parece fundamentalmente diferente. Solo tienes 4 puntos de datos para procesar, así que no creo que realmente necesites "reducir" nada.

Lo que investigaría es cómo los programas como Flash convierten un círculo dibujado a mano alzada en un círculo real. Parece que podrías rastrear los puntos durante aproximadamente un segundo, y luego "suavizar" el camino de alguna manera, y entonces probablemente podrías salirse con la codificación de tus gestos (si los haces lo suficientemente simples). De lo contrario, sí, vas a querer usar un algoritmo de aprendizaje. Las redes neuronales podrían funcionar ... No lo sé. Simplemente desechando ideas :) Tal vez vea cómo se realiza OCR también ... o incluso las transformaciones de Hough . Me parece que este es un problema de reconocer formas más que de reconocer gestos.


Las herramientas de reconocimiento de gestos más simples que he visto utilizan una plantilla basada en vectores para reconocerlas. Por ejemplo, puede definir el barrido a la derecha como "0", una marca de verificación como "-45, 45, 45", un círculo en el sentido de las agujas del reloj como "0, -45, -90, -135, 180, 135, 90, 45, 0 ", y así sucesivamente.


No estoy muy versado en este tipo de matemáticas, pero he leído en alguna parte que las personas a veces usan cadenas de Markov o modelos ocultos de Markov para hacer reconocimiento de gestos.

Tal vez alguien con un poco más de experiencia en este lado de la informática pueda iluminarlo más y proporcionar más detalles.


Una forma de verlo es como un problema de compresión / reconocimiento. Básicamente, usted desea tomar una gran cantidad de datos, desechar la mayoría de ellos y clasificar el resto. Si estuviera haciendo esto (desde cero) probablemente procedería de la siguiente manera:

  • trabajar con una ventana de historial móvil
  • tome el centro de gravedad de los cuatro puntos en el cuadro de inicio, guárdelo y restarlo de todas las posiciones en todos los cuadros.
  • factoriza cada cuadro en dos componentes: la forma de la constelación y el movimiento de su CofG en relación con el último cuadro.
  • guarda el CofG absoluto para el último cuadro también
  • La serie de cambios CofG te da golpes, olas, etc.
  • La serie de transformaciones de constelaciones te da pellizcos, etc.

Después de ver tu foto (dos puntos en cada mano , no cuatro puntos en una, ¡hazlo!) Modificaré lo anterior de la siguiente manera:

  • Haga el cálculo de CofG en pares, con las advertencias de que:
    • Si hay cuatro puntos visibles, se eligen pares para minimizar el producto de las distancias intrapararelas
    • Si hay tres puntos visibles, los dos más cercanos son un par, el otro es el otro.
    • Utilice marcos anteriores / siguientes para anular cuando sea necesario
  • En lugar de una constelación, tiene una estructura anidada de pares de distancia / orientación (es decir, una D / O entre las manos y una más para cada mano).
  • Pase los datos reducidos completos a los reconocedores para cada gesto, y permita que resuelvan lo que les importa.
  • Si quieres ser lindo, haz un poco de DSL para reconocer los patrones y escribe cosas como:

    fire when in frame.final: rectangle(points) and over frames.final(5): points.all (p => p.jerk)

    o

    fire when over frames.final(3): hands.all (h => h.click)