Resumen
Este artículo describe una implementación eficiente de un algoritmo de seguimiento de múltiples objetivos en múltiples vistas en secuencias de video vigilancia. Aprovecha las capacidades de las Unidades Centrales de Procesamiento (CPUs, por sus siglas en inglés) de múltiples núcleos y de las unidades de procesamiento gráfico, bajo el entorno de desarrollo de Arquitectura Unificada de Dispositivos de Cómputo (CUDA, por sus siglas en inglés). El principio de nuestro algoritmo es: 1) aplicar el seguimiento visual en cada secuencia de video sobre todas las personas a seguir con filtros de partículas independientes y 2) fusionar los resultados de seguimiento de todas las secuencias. Los filtros de partículas pertenecen a la categoría de filtros Bayesianos recursivos. Actualizan una representación Monte-Carlo de la distribución posterior sobre la posición y la velocidad de los objetivos. Para este fin, combinan un modelo probabilístico de movimiento, es decir un conocimiento a priori de como se mueven los objetivos (por ej. velocidad constante) y un modelo de verosimilitud asociado con las observaciones de los objetivos. En este primer nivel de procesamiento de las secuencias de video simples, la librería multi-hilo (TBB, por sus siglas en inglés) es utilizada para paralelizar el procesamiento de los filtros de partículas asociados a cada objetivo. Luego, al nivel superior, utilizamos Programación de Propósito General con Unidades de Procesamiento Gráficas (conocido por su acrónimo en inglés GPGPU) a través de CUDA con el fin de fusionar los datos del seguimiento de objetivos colectados entre las diferentes secuencias de video, al resolver el problema de asociación de datos. Los resultados del seguimiento son presentados en algunas bases de datos desafiantes.