Convolutional neural network using VHDL to train an object classifier on an image

Keywords: Convolutional Neural Network; FPGA; Python; SoC; VHDL

Abstract

The objective of the present work was to implement a convolutional neural network in hardware using VHDL. Regarding its design, it was experimental, the research begins with the design of a convolutional neural network in Software using Python, where Tensorflow and Keras were used. This design required a 6-epoch training to exceed 90% accuracy when classifying the images from the MNITS dataset. From this design, the parameters and hyperparameters, necessary for hardware design, are obtained. For the implementation of the algorithm in hardware, it was necessary to know the mathematical operation of the convolution, maxpooling and neural network operations, since in the software these operations are summarized in a line of code. Each of these operations was implemented in different blocks, following the modular approach. The response obtained in the hardware is displayed on a screen using the internal communication of the board between the ARM and the FPGA. This response obtained in hardware is similar to that obtained in software and the time in software is much longer than in hardware. The FPGA-based SoC platform, De-10 Nano, was used for this research.

Downloads

Download data is not yet available.

Author Biographies

Cesar Arturo Niño Carmonal, Universidad Nacional de Piura. Perú

Docente Asociado. Universidad Nacional de Piura. Perú. 

Manuel Jesús Sánchez-Chero, Universidad Nacional de Frontera
Docente Investigador. Universidad Nacional de Frontera.  Perú.
Emanuel Ortiz Ortiz, Universidad Nacional de Piura. Perú.

Bachiller. Universidad Nacional de Piura. Perú.

Juan Carlos Sernaque Julca, Universidad Nacional de Piura. Perú.

Bachiller. Universidad Nacional de Piura. Perú.

Cecilia Lizeth Risco Ipanaqué, Universidad Nacional de Frontera. Perú
Jefa (E) de la Unidad de Tecnología de Información y Comunicación. Universidad Nacional de Frontera. Perú.

References

ALTERA CORPORATION. (2018). Floating Point Exponent (ALTFP_EXP) - Megafunction User Guide. 1st ed. Altera corpotation.

Belean, B. (2018). Application-Specific Hardware Architecture Design with VHDL. 1st ed. Cham: Springer.

Cong, J., Xiao, B. (2014). Minimizing computation in convolutional neural networks, in International Conference on Artificial Neural Networks (ICANN). Springer, pp. 281–290.

Cross, N. (2001). Métodos de diseño: estrategias para el diseño de productos. México, D.F.: Limusa.

Géron, A. (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems (2.a ed.). California, United State: O’Reilly Media.

Goodfellow, I., Bengio, Y., Courville, A. (2016). Deep Learning} (1.a ed.). Cambridge, Massachusetts, Estados Unidos: MIT Press.

Heaton, J. (2015). Artificial Intelligence for Humans, Volume 3: Deep Learning and neural network (1.a ed., Vol. 3). Scotts Valley, California, Estados Unidos: CreateSpace Independent Publishing Platform.

Hernández, R., Fernández, C., Baptista, M. (2014). Metodología de la Investigación (6ta ed.). México: McGranw-Hill/ interamericana.

Krizhevsky, A., Sutskever, I., Hinton Geoffrey E., Geoffrey E Hinton. (2012). ImageNet Classification with Deep Convolutional Neural Networks. In Advances in Neural Information Processing Systems - NIPS’12, pp. 1–9.

Lecun, Y., Bottou, I,. Bengio, Y., Haffner, P. (1998). Gradient-based learning applied to document recognition". Proceedings of the IEEE, 86(11). 2278-2324.

Mittal, S. (2018). A Survey of FPGA-based Accelerators for Convolutional Neural Networks. Neural Computing and Applications. 10.1007/s00521-018-3761-1.

Mittal, S. y Vetter, J. (2015). A Survey of Methods for Analyzing and Improving GPU Energy Efficiency, ACM Computing Surveys.

NVIDIA. 2013. Tesla k40 GPU active accelerator. Report, 2013.

Ovtcharov, K., Ruwase, O., Kim, J.-Y., Fowers, J., Strauss, K., Chung, E. S. (2015). Accelerating deep convolutional neural networks usingspecialized hardware, Microsoft Research Whitepaper, 2 (11).

Panchal, G., Ganatra, A., Kosta, Y., Panchal, D. (2011). Behaviour analysis of multilayer perceptrons with multiple hidden neuronsand hidden layers. International Journal of Computer Theory and Engineering. 3 (2), 332–337.

Tu, F., Yin, S., Ouyang, P., Tang, S., Liu, L., Wei, S. (2017). Deep convolutional neural network architecture with reconfigurable computation patterns, IEEE Transactions on Very Large Scale Integration (VLSI)Systems.

Published
2021-01-11
How to Cite
Niño Carmonal, C. A., Sánchez-Chero, M. J., Ortiz Ortiz, E., Sernaque Julca, J. C., & Risco Ipanaqué, C. L. (2021). Convolutional neural network using VHDL to train an object classifier on an image. Journal of the University of Zulia , 12(32), 240-260. https://doi.org/10.46925//rdluz.32.16