Resumen:
Dado el reciente desarrollo y el impacto que ha tenido el paradigma de Deep Learning en el campo de la Inteligencia Artificial, el presente trabajo tiene como base el interés en este paradigma de aprendizaje, en específico empleando redes neuronales convolucionales (CNNs), para la detección o clasificación de objetos en imágenes; además se analiza las ventajas de implementar estos algoritmos en hardware. El objeto de estudio del aprendizaje automático es tratar de emular la inteligencia humana de forma artificial. Se ha trabajado en este campo por años, con diferentes enfoques y algoritmos. En la última década, el paradigma del Deep Learning ha revolucionado el estado del arte en tareas como reconocimiento de voz, visión artificial y el procesamiento del lenguaje natural; que resultaban difíciles de llevar a cabo por una máquina. Las técnicas que predominan en este paradigma son las CNNs, se utilizan como principal algoritmo en tareas que involucran visión artificial, tales como la detección de objetos. Se ha logrado un despunte importante en el reconocimiento de patrones en imágenes y video empleando estas técnicas, al grado de superar la capacidad humana. Un factor importante para ese desarrollo es la capacidad de procesar altos volúmenes de información en aplicaciones exitosas, lo que ha derivado en que los dispositivos empleados para dicho propósito, como GPUs y CPUs multinúcleo requieran de gran cantidad de energía para su funcionamiento. Recientemente, han surgido investigaciones enfocadas en buscar alternativas de hardware, sobre el cual implementar las CNNs de forma eficiente, sobre todo para aplicaciones embebidas. Una de estas alternativas son los Arreglos de Compuertas Programables en Campo (FPGAs), que ofrecen la capacidad de procesamiento en paralelo espacial y temporal, un menor tiempo de latencia y bajo consumo de potencia; lo que resulta ideal para ese tipo de aplicaciones. El presente trabajo se divide en dos partes, por un lado se hace la implementación del paradigma Deep Learning con una CNN para clasificar imágenes de señales de tránsito vehicular (como primer caso de estudio), con el propósito de medir el tiempo de entrenamiento y su desempeño en la clasificación. Por otro lado, se investiga la tecnología relacionada con FPGAs, para determinar la forma en que se puede acelerar el cómputo implicado en ese tipo de redes con estos dispositivos, validándolos como una alternativa de implementación para sistemas embebidos. Los resultados obtenidos en la presente investigación son: 1) La programación, entrenamiento y prueba de una CNN. Se realizaron una serie de experimentos, encontrando un error en la clasificación de 3.25% y un tiempo de entrenamiento de 0.33 horas, para los mejores casos de los ensayos realizados. 2) Se analizan las ventajas de implementar este tipo de algoritmos en FPGAs, sus restricciones, requisitos y tres alternativas de desarrollo.