SwisTrack es una herramienta de código abierto para el seguimiento de robots y otros objetos utilizando una cámara o un vídeo grabado como fuente de entrada. Ha sido desarrollada principalmente por el Laboratorio de Algoritmos y Sistemas Inteligentes Distribuidos (DISAL) y el Grupo de Visión LPM de la EPFL en Lausana, Suiza. [1]
SwisTrack está escrito en C++ y utiliza la biblioteca wxWidgets para la interfaz gráfica de usuario y la red. Utiliza la biblioteca OpenCV de Intel para el procesamiento rápido de imágenes y contiene interfaces para cámaras USB , FireWire y GigE , así como archivos AVI . [2]
Desde la versión 4, el pipeline de SwisTrack es construido por el usuario a partir de componentes que interactúan entre sí y pasan datos a través de canales de datos. Hay seis canales de datos: entrada, imagen en escala de grises, imagen en color, imagen binaria, partículas y pistas. Los componentes individuales funcionan solo con algunos de los canales de datos. Cada canal de datos con el que trabaja el componente puede estar en uno de los tres modos: lectura, escritura y edición (es decir, tanto lectura como escritura). [1]
En la secuencia típica, la imagen se transforma en una imagen binaria, los objetos se detectan como manchas que se convierten en partículas y las partículas forman pistas al comparar fotogramas consecutivos. Una mancha es un conjunto de píxeles conectados con el mismo valor. [1]
SwisTrack genera datos ya sea escribiéndolos en un archivo separado por tabulaciones o utilizando la interfaz TCP con el protocolo NMEA 0183. Este último también permite el control remoto. [1]