The Technique for Implementing a Neural Network for Recognizing Handwritten Digits in FPGAs Based on Fixed Point Calculations

Solovyev R.A., Kustov A.G., Rukhlov V.S. (IPPM RAS)
Abstract - The article proposes the implementation of a convolutional neural network in a FPGA for the solution of a practical problem, namely the recognition of handwritten figures from a video stream. The first part of the article is devoted to the adaptation of the MNIST dataset to the problem of recognition of numbers from a real camera. A new proposed training method allowed to avoid the long process of collecting data and to confine only to a small set in addition to the modified MNIST. The second part of the article is devoted directly to the method of implementing a neural network in a hardware device. Requirements for real-time video processing on a neural network imposed greater restrictions on the performance of device. Thanks to the proposed approaches, it became possible to achieve the required performance characteristics and even exceed them by several times. Such indicators were achieved due to a number of optimizations. A neural network with a small number of weights and architectural features aimed at reducing consumed resources was designed. Calculations by a special algorithm are transferred from a floating point to a fixed point. It turned out that only 12 bits are sufficient to store the weights, so that there are no differences from the mathematical model. The proposed device was implemented and tested on a De0Nano debug card based on the Cyclone IV FPGA. The processing speed of the video stream exceeded 150 frames per second. The code for training the neural network and for generating the Verilog code of the target device was published in Open Source.

Keywords - convolutional neural nets, FPGA, fixed point calculations, 2D convolution

Методика реализации нейронной сети для распознания рукописных цифр в FPGA на основе вычислений с фиксированной точкой

Соловьев Р.А., Кустов А.Г., Рухлов В.С. (Институт проблем проектирования в микроэлектронике РАН, г. Москва)
Аннотация - в работе исследуются нейронные сети для обработки видеопотока в реальном времени на оборудовании с ограниченными вычислительными ресурсами. Для решения проблем связанных с производительностью аппаратуры в работе предлагается перейти от вычислений на программном уровне к аппаратной реализации, перейти от вычислений с плавающей точкой к фиксированной точке. Предлагается набор методов для проектирования нейросети, которая будет наиболее быстрой и точной в случае использования фиксированной точки. Приводится пример проектирования устройства для решения конкретной практической задачи. Показывается, как можно приспособить существующие наборы данных (датасеты) для использования в другой задаче, где данные отличаются. Приводится пример разработки проекта для прототипирования в ПЛИС с использованием камеры и устройства вывода. Финальный проект, реализованный на базе предложенных методик, успешно работает в реальном времени на студенческой плате De0Nano на базе ПЛИС Cyclone IV.

Ключевые слова - свёрточные нейронные сети, ПЛИС, фиксированная точка, двухмерная свёртка.