El programa usa pygame, un motor diseñado para videojuegos. Toma datos de una webcam compatible con V4L2 (video for linux) y, en tiempo real, busca en cada fotograma clusters de los colores configurados localizando las coordenadas de su centroide en pixeles.
Podemos almacenar esos datos para tratarlos a posteriori o incluso trabajar con ellos en tiempo real.
El sistema obtiene fácilmente del orden de 30 frames por segundo a una resolución de 640x480.
Como prueba de concepto, hemos montado un pequeño experimento de sincronización de metrónomos. El que quiera saber de qué va esto puede ver la genial charla TED de Steven Strogatz.
En el siguiente vídeo podéis ver el proceso de calibrado en el prototipo que tenemos funcionando. Básicamente consiste en hacer click sobre el objeto que queremos seguir y utilizar la rueda del ratón para ajustar el umbral de detección de color.
Además del propio seguimiento de color, podemos pintar sobre la imagen en tiempo real pudiendo mostrar datos adicionales como realidad aumentada. En el caso del video simplemente vamos pintando una traza del objeto seguido que se desplaza hacia arriba, pero tenemos toda la potencia de una librería para videojuegos como es pygame a nuestra disposición para sacar información del movimiento y mostrarla en pantalla sobre la imagen.
Haciendo ese calibrado con 3 metrónomos marcados con tres colores diferentes y montados sobre una plataforma que pueda desplazarse libremente podemos obtener datos como los siguientes.
![]() |
1. Visión general de una adquisición de ~3 minutos |
![]() |
2. Detalle en la región inicial con los metrónomos no sincronizados |
![]() |
3. Detalle en la región final con una muy buena sincronización |
En la tercera el sistema ya está sincronizado tanto en fase como en amplitud. Los extraños que se ven (que alejan a las curvas de la forma sinusoidal esperada) se deben al desplazamiento de la plataforma al conservar el momento de los tres metrónomos en fase.
No hay comentarios:
Publicar un comentario