Título: "Un sistema paralelo de visión global para fútbol de robots orientado al uso educativo"
Tesista: Rodrigo Cañibano
Directores: Dr. Javier Balladini - Esp. Eduardo Grosclaude
Carrera: Licenciatura en Ciencias de la Computación
Día y lugar: 3 de julio de 2018
Resumen
La RoboCup (del inglés Robot World Cup) es una competencia donde dos equipos de robots juegan una versión simplificada del fútbol. Su finalidad es la de ofrecer un ambiente controlado donde poner a prueba los avances en distintas áreas de conocimiento como la inteligencia artificial, visión por computadora y robótica. Existen cinco ligas distintas cuyas características varían desde la simulación del ambiente y robots, hasta robots humanoides con visión local, la más antigua de éstas es la liga de tamaño pequeño (también llamada SSL por sus siglas en inglés).
La SSL utiliza un sistema de visión global compartido por los dos equipos. El sistema procesa cuadros de video y reporta la posición y orientación de los robots y la posición de la pelota en cada uno de ellos. El objetivo de este trabajo es proponer un nuevo sistema de visión global por computadora, alternativo al utilizado actualmente por la RoboCup para la SSL, que puede ser aplicado como herramienta educativa para la enseñanza de visión por computadora y programación paralela sobre máquinas de memoria compartida basadas en procesadores de propósito general.
Un sistema puede ser considerado para uso educativo, en temas de visión por computadora, si el algoritmo que permite la identificación de los objetos de la escena presenta una clara separación conceptual y fue implementado de forma simple para permitir su posterior modificación, aún cuando esto implique una pérdida de rendimiento de la aplicación. Considerando un sistema preexistente de estas características, se desarrolló un sistema derivado capaz de aumentar el rendimiento mediante el uso eficiente de múltiples unidades de procesamiento y jerarquía de memoria. El sistema aplica conjuntamente dos estrategias de paralelización. Una de las estrategias explota el paralelismo dentro de cada cuadro, dividiendo los cuadros en fragmentos que son procesados de forma independiente. La otra estrategia se basa en el procesamiento simultáneo de diferentes cuadros del video.
Se realizó una implementación utilizando el modelo de programación de memoria compartida OpenMP para C++. Con el fin de sintonizar la aplicación para extraer el máximo rendimiento de una determinada plataforma hardware, el sistema cuenta con diferentes parámetros que permiten modificar el comportamiento de sus estrategias de paralelización. Se ejecutó el sistema en un servidor con un procesador Intel Xeon E5-2630 (6 núcleos y multithreading simultáneo), midiendo la cantidad de cuadros por segundo máxima y el tiempo de procesamiento máximo de los cuadros para distintas configuraciones de tamaños de video, cantidad de fragmentos y cantidad de hilos.
En conclusión el sistema logra una mejora de 5,42x en la cantidad de cuadros por segundo procesados, con respecto a la ejecución del sistema utilizando un único núcleo. Por otro lado, la posibilidad de modificar el comportamiento de las estrategias de paralelización es útil para que el estudiante realice experimentación y analice los resultados buscando explicaciones al impacto en el rendimiento del sistema.
Foto del día de la defensa con sus tutores y el tribunal integrado por los profesores Mg. Adair Martins y CC. Jorge Sznek