Revista de la Universidad del Zulia (Jan 2021)

Red neuronal convolucional usando VHDL para entrenar un clasificador de objetos en una imagen

  • Cesar Arturo Niño Carmonal,
  • Manuel Jesús Sánchez-Chero,
  • Emanuel Ortiz Ortiz,
  • Juan Carlos Sernaque Julca,
  • Cecilia Lizeth Risco Ipanaqué

DOI
https://doi.org/10.46925//rdluz.32.16
Journal volume & issue
Vol. 12, no. 32
pp. 240 – 260

Abstract

Read online

El objetivo del presente trabajo fue implementar una Red neuronal convolucional en hardware usando VHDL. En cuanto a su diseño fue experimental, la investigación inicia con el diseño de una red neuronal convolucional en Software usando Python, donde se utilizó Tensorflow y Keras. Este diseño necesitó un entrenamiento de 6 épocas, para superar el 90% de exactitud al momento de clasificar las imágenes del dataset MNITS. De este diseño se obtienen los parámetros e hiperparámetros, necesarios para el diseño en hardware. Para la implementación del algoritmo en hardware, fue necesario conocer el funcionamiento matemático de las operaciones de convolución, maxpooling y de las redes neuronales, ya que en el software estas operaciones están resumidas en una línea de código. Cada una de estas operaciones fue implementada en bloques diferentes, siguiendo el enfoque modular. La respuesta que se obtiene en el hardware, se muestra en una pantalla usando la comunicación interna de la placa entre el ARM y la FPGA. Esta respuesta obtenida en hardware es similar a la que se obtiene en software y el tiempo en el software es mucho mayor al del hardware. Para esta investigación se utilizó la plataforma SoC basada en FPGA, De-10 Nano.

Keywords