title: FPGA Based Embedded Neural Network Object Detector
Creators: name: Baischer, Lukas
Publisher: name: TU Wien
Year: 2021
Subjects: subject: Maschine Learning
subject: FPGA
subject: Digital Design

description: Deep Learning ermöglicht es Maschinen komplexe Aufgaben zu lösen, die davor nur von Menschen bewältigt werden konnten. Das hat vor allem in der Computer Vision, der Spracherkennung und in verschiedensten Voraussagemodellen zu Durchbrüchen geführt. Ein Teilbereich der Computer Vision ist die Objekterkennung, welche in einem Bild ermittelt,welche Objekte aus einem Objektepool vorhanden sind und wo sie sich befinden. Dafür gibt es eine enorme Anzahl an Anwendungsmöglichkeiten in den verschiedensten Bereichen. Beispiele dafür wären etwa autonomes Fahren, Haushaltshilfen, Service- und Assistenzroboter und vor allem auch Industrieanwendungen wie zum Beispiel Sortieraufgaben,Qualitätsüberprüfungen und jegliche andere einfache sich wiederholende Tätigkeiten die Sinnerfassendes Sehen benö-tigen. Allerdings hat die Objekt Erkennung basierend auf Deep Learning im Vergleich zu herkömmlichen Algorithmen einen Entscheidenden Nachteil, den enormen Rechenaufwand der von CPUs nicht in Echtzeit zu bewältigen ist. Aus diesem Grund benötigt eine echtzeitfähige Deep-Learning-Objekterkennung zusätzliche Hardware die die Berechnungen beschleunigt. Für diese Aufgabe gibt es drei mögliche Plattformen, GPUs, FPGAs und ASICs. Die am häufigsten verwendete Plattform stellen GPUs dar, da sie einfach zu verwenden sind, sowohl Training als auch Inference ermöglichen und einen hohen Throughput ermöglichen. Ein Nachteil von GPUs ist, dass sie einen hohen Energieverbrauch haben. Im Vergleich dazu stellen FPGAs und ASICs eine Energieeffizientere Alternative dar. Außerdem können FPGAs und ASICs für die jeweilige Aufgabe optimiert werden und es können zur Anbindung an andere Teile der Maschine alle Arten von Interfaces und Feldbusse hinzugefügt werden. Dabei bieten FPGAs die größere Flexibilität, da diese überprogrammierbare Hardware verfügen. Der Nachteil ist jedoch, dass FPGAs im Vergleich zu ASICs und GPUs einen geringeren Throughput erreichen. Wegen des geringen Energieverbrauchs und der hohe Flexibilität sind FPGAs ein vielversprechender Kandidat für die Implementierung einer echtzeitfähigen Objekt Erkennung in Edge-Devices.Aus diesem Grund zeigt diese Arbeit wie in einem low-cost FPGA ein flexibler Hardwarebeschleuniger implementiert werden kann, der aufgrund eines Converters ähnlich einfach zu verwenden ist wie eine GPU, einen geringen Energieverbrauch aufweist und mit YOLOv3-tiny eine Framerate größer 10 fps erreicht. Der Converter ermöglicht es einbestehendes CNN-Model in PyTorch zu quantisieren und voll automatisch in für den Hardwarebeschleuniger verständliche Befehle zu übersetzen, was eine einfache Verwendung garantiert. Außerdem ist der Hardwarebeschleuniger über einen Device Treiber an ein Linux angebunden, dass auf dem CPU-Teil des FPGAs ausgeführt wird. Dies ermöglicht eine einfache Anbindung der Objekterkennung an andere Programmteile und externe Geräte. Zusätzlich bietet der Hardwarebeschleuniger die Möglichkeit unterschiedliche Taktfrequenzen zu verwenden um das für die Anwendung am besten geeignete Verhältnis von Energieverbrauch und benötigter Framerate zu finden. Wenn eine Taktfrequenz von 100MHz verwendet wird erreicht der Hardwarebeschleuniger eine Framerate von ca. 9 fps. Dabei benötigen das gesamten Zybo-Z7-20 Board nur 3.12 W. Durch erhöhen der Taktfrequenz kann die Framerate auf bis zu 12 fps gesteigert werden.
description: Deep learning enables machines to solve complex tasks that previously could only be mastered by humans. That led to break throughs in computer vision, speech recognition, and a wide variety of prediction models. A sub-area of computervision is object detection. It determines in an image which objects are present from a pool of objects and where they are. There is an enormous number of possible applications for object detection in a wide variety of fields. Examples of that are autonomous driving, domestic help, service-, and assistance robots. In addition, there are industrial applications such as sorting tasks, quality checks, and other simple repetitive activities. However, the enormous computational effort that CPUs cannot handle in real-time is a crucial disadvantage of object detection based on deep learning compared to conventional algorithms. Therefore, real-time deep learning object detection requires additional hardware that accel-erates the calculations. There are three possible platforms for accelerating, neural networks GPUs, FPGAs, and ASICs.The most common platform is the GPU. GPUs have the benefit that they are easy to use, enable training and inference,and achieve high throughput. One disadvantage of GPUs is that they have high energy consumption. Compared to GPUs, FPGAs and ASICs represent more energy-efficient alternatives. In addition, FPGAs and ASICs are optimizable for the respective task. Besides, FPGAs and ASICs enable various interface types and fieldbuses for connecting other machine parts. Compared to ASICs, FPGAs offer more flexibility because they consist of programmable hardware. The disadvantage, however, is that FPGAs achieve a lower through put compared to ASICs and GPUs. Since FPGAs provide high flexibility in combination with low power consumption, FPGAs are a promising candidate for implementing a real-time capable object detector for edge devices.Therefore, this work shows how to implement a flexible hardware accelerator in a low-cost FPGA that has similar usability as GPUs, low power consumption, and achieves a frame rate greater than 10 fps using YOLOv3-tiny. A converter makes it possible to quantize an existing CNN model from PyTorch and translate it into commands understandable by the hardware accelerator. In addition, the hardware accelerator is connected to a Linux system via a device driver thatruns on the CPU part of the FPGA. That enables easy integration of the object detector to other program parts and external devices. In addition, the hardware accelerator offers the option of using different clock frequencies to find the mostsuitable ratio of energy consumption and the required frame rate for each application. If the hardware accelerator usesa clock frequency of 100MHz, it achieves a frame rate of approximately 9 fps. The entire Zybo-Z7-20 board consumes only 3.12 W. The frame rate can be increased up to 12 fps by increasing the clock frequency.