Archive

Posts Tagged ‘trackmate’

Trackmate

Trackmate es una de las opciones disponibles para utilizar como framework de visión, en la construcción de YARMI. Es un sistema de reconocimiento de fiducials desarrollado por el Tangible Media Group del MIT Media Lab, con el objetivo de ser económico y fácil de construir. Trackmate reconoce la posición, rotación e información de color de objetos etiquetados y dispuestos sobre una superficie. Envía toda esta información a las aplicaciones cliente mediante el protocolo LusidOSC (basado en OSC como su nombre sugiere), desarrollado por los autores.

El mayor fuerte de este framework, es la excelente documentación que posee y su presentación desde un sitio web muy bien diseñado y con un alto grado de usabilidad. En la página se puede ver distintos ejemplos de aplicaciones que utilizan el framework.

El sistema es capaz de reconocer una clase de fiducials especial, que permite manejar alrededor de unos  280 trillones de identificadores diferentes (códigos de barra circulares) de 1” (una pulgada) de diámetro.

Del sitio web, pueden descargarse las siguientes herramientas:

  • Tagger: permite generar las etiquetas que el sistema puede reconocer, exportándolas en formato PDF o PNG.
  • Tracker: es el módulo principal, que recibe la información de la cámara web especificada y publica un servidor dónde espera conexiones de clientes que hablen el protocolo LusidOSC. Además, tiene integrado el mecanismo de calibrado y testeo.
  • LusidOSC Bundle: conjunto de aplicaciones de ejemplo para ejecutar en Processing y probar el sistema fácilmente. Además, incluye una librería para Processing, que resuelve la comunicación entre programas desarrollados en este entorno y el servidor (Tracker).

El sistema prometía mucho, pero una vez iniciada la etapa de calibrado y testeo, se hicieron evidentes una serie de restricciones importantes.

Los parámetros más importantes a la hora de configurar el sistema son las dimensiones del área de trabajo, la resolución de la cámara y la cantidad de pixels (de cámara) por pulgada (de superficie).  La primer restricción que se observó, es que para un área de trabajo aplicable a nuestro proyecto, la taza de cuadros por segundo de información que el sistema puede generar no es suficiente. En la siguiente tabla puede verse su variación en función del área:

dimensión del área (pulgadas) cuadros por segundo
11.625 x 8.250 15
6.000 x 6.000 20
3.000 x 3.000 30

Se puede notar que recién para una relación fiducial-área de 1/9, el sistema provee una taza de cuadros por segundo razonable.

Otra restricción encontrada, es que el sistema es muy suceptible a cambios en la iluminación. Durante la etapa de calibrado, una vez que se fijan los parámetros arriba mencionados, es necesario realizar la “calibración de blancos”. Se puede notar como la imagen pre-procesada por el sistema se deteriora considerablemente por el más mínimo cambio en la iluminación, respecto a aquella con la que se realizó el calibrado.

Asociado a esto último, se notó que el sistema está construido para recibir una imagen formada solamente por el fondo blanco y los fiduciales. Cualquier otro objeto captado por la cámara dentro del área de trabajo (como un soporte para el fiducial, o una mano) hará que el sistema falle. En particular, el valor de las rotaciones de los fiducials es lo primero que se pierde por completo.

Tras el análisis del sistema, se concluye que éste está más orientado a un escenario con las siguientes características: libre de objetos que interfieran en la imagen (por ejemplo para flimarse desde abajo de la superficie, como se hace en la Reactable), con un área de trabajo relativamente chica, y en dónde tener tal cantidad de fiducials distintos pueda ser de utilidad.

El framework no cumple con los requisitos adecuados para nuestra aplicación, por lo que fue descartado.