Overview
FPGAs are becoming a key component in various industries, including automotive and space applications, due to their low latency, low power consumption, and high-speed processing capabilities. These attributes make FPGAs particularly advantageous in the AI field, where neural networks play a critical role. We are optimizing and fine-tuning various Deep Learning and OpenCV algorithms to run on FPGAs. Additionally, we have created a pipeline to simplify the implementation process.
Goals
The main goal is to implement and optimize multiple different neural network models for classification, object detection and semantic segemetnation tasks. It is also needed to fullfill FPGA hardware needs to avoid high latencies. Alongisde latencies we want to make models more efficient for FPGA platforms in terms of its usability.
Solution
The optimization of the YOLOv3 model and its implementation on FPGA involved various tools. Initially, the model was optimized through Quantization Aware Training, where the precision of the weights was reduced. Following this, the FINN compiler was used, which partially automates the synthesis and implementation of the model for the target platform. This includes various methods that aim to bypass floating point values passing through the neural network, as these significantly consume FPGA resources, which we aim to avoid. Through this process, adequate files are generated, which are then run on the FPGA, enabling the detection.
Results
- Successful implementation of Yolov3 Face Detection algorithm on PYNQ Z2.
- The metrics achieved are – PYNQ Z2 (NVIDIA Jetson Nano):
- FPS: 23.43 (12.50)
- Power Consumption: 2.4 W (14.90 W)
- mAP 50 Score: 0.89