¿Qué algoritmo de reconocimiento de gestos es el más adecuado para Arduino?

Entonces, esta no es realmente mi especialidad, pero como me preguntaron dos veces, fui y miré:

Esta opción me gusta más: el $ 1 Recognizer
http://depts.washington.edu/aimg…

Esto supone que desea obtener la entrada de un mouse u otro dispositivo de entrada 2-D (tal vez al aplanar los datos del acelerómetro desde un WiiMote), pero el código es elegante y bastante simple. También es lo suficientemente interesante como para que haya muchas muestras y re-versiones que pueda comparar. Podrías usarlo con una cabeza Kinnect si quisieras.

Ese sitio tiene enlaces a otras dos “pilas” de gestos (Dynamic Time Warping y Rubine), pero no encontré ninguno de ellos tan fácil de entender.

Dicho esto, este puede ser un lugar más fácil para comenzar: bibliotecas Processing.org
http://processing.org/reference/…
Específicamente, hay una biblioteca llamada ezGestures que es específica de Arduino para crear reconocimiento de gestos usando un mouse o WiiMote.

“Pedí que respondiera” Pete Prodoehl. Parece ser un programador más elegante que yo y me interesaría cualquier opinión que pudiera tener sobre el tema. Soy más un hack de nivel de sistemas.

¿Qué sacas del Nuchuck? ¿Solo aceleración en 3 dimensiones? ¿Los usuarios (se) activarán la detección de gestos mediante un botón?

Como el Nunchuck se mantiene en una determinada dirección, detectaría la aceleración en solo dos dimensiones y luego usaría la aceleración, la velocidad (aceleración * tiempo) o la distancia (1/2 * aceleración * tiempo * tiempo, creo) para crear los datos para compare los patrones de forma flexible, de modo que tenga una alta tolerancia a las variaciones en cómo se “dibujan” los gestos.

Si calcula distancias, el problema es similar al reconocimiento de escritura a mano, pero probablemente no tiene que ser tan avanzado debido a una cantidad limitada de gestos, así como a una cantidad muy limitada de memoria.

Podrías usar solo la aceleración y luego detectar cambios importantes en la aceleración de vez en cuando. Los patrones de referencia para comparar podrían registrarse de la misma manera, por lo que son inmediatamente útiles sin conversión.

Como un Arduino básico tiene muy poca RAM, necesita reducir los datos de referencia a un mínimo absoluto, con quizás de 10 a 20 puntos de referencia por gesto. Eso es un desafío en sí mismo.

Probablemente sea mejor crear los datos de referencia con un Nunchuck conectado a una PC, convertir los datos en matrices C e incrustarlos en su código Arduino. Dibuja muchos gestos (y haz que ~ 10 personas diferentes hagan los gestos) y promedia el resultado de alguna manera para hacerlo más robusto.