Intelligentere Edge-Endgeräte durch Künstliche Intelligenz in FPGAs

| Autor / Redakteur: Harald Werner * / Sebastian Gerstl

Bild 1: Das Lattice-Ökosystem für KI Lösungen.
Bild 1: Das Lattice-Ökosystem für KI Lösungen. (Bild: Lattice)

Künstliche Intelligenz scheint oft aufwändige Cloudverbindungen und hohen Stromverbrauch zu fordern. Doch auch mit Low-Cost-FPGAs lässt sich eine effiziente, günstige KI-Implementierung sicherstellen.

Künstliche Intelligenz ist ein Thema, das jetzt auch die Industrie bewegt. Für deren Anwendung werden oft High-End-GPUs, -CPUs oder -FPGAs verwendet. Deren hohe Rechenleistung ist nötig, um die anfallenden Daten (Big Data) auswerten zu können. Dies geschieht meist in der Cloud. Endgeräte, die in der „Edge“ benutzt werden, senden Ihre Informationen in die Cloud. Dort werden diese von großen Rechen-Farmen ausgewertet und die Ergebnisse an das Endgerät in der „Edge“ zurückgesendet.

Dies sieht auf den ersten Blick wie ein sehr logischer Weg für die Auswertung und Analyse der Daten aus.Näher betrachtet verbergen sich hinter diesem Prinzip aber auch erhebliche Nachteile.

Alle relevanten Daten müssen bei diesem Ansatz in die Cloud übertragen werden und somit ist die Übertragungsrate und Antwortzeit von großer Bedeutung. Auch das Verwalten/Speichern dieser großen Datenmengen muss in der Cloud vorgesehen sein. Für die Endgeräte bzw. deren Nutzer bedeutet dies zusätzliche Kosten.

Auch Datensicherheit und Robustheit der Datenverbindung sind ein großes Thema. Wenn alle Daten in die Cloud übertragen werden, trifft das auch auf persönliche Daten wie z.B. Bilder, Sprachdaten und Bewegungsprofile zu. Durch gezielte Angriffe oder Sicherheitslücken können diese sensiblen Daten für Dritte, nicht erwünschte Personen zugänglich werden. Außerdem die Netzwerkverbindung zum Datenzentrum (Cloud) an sich ist relevant. Fällt diese aus, ist das System nicht mehr funktionsfähig. Dieses hat zur Folge, dass Entwickler sehr viel Aufwand in die Sicherheit der Daten und Zuverlässigkeit der Netzwerke stecken müssen.

Anstatt nun alle Daten in die Cloud zu senden, können Daten mit Hilfe Künstlicher Intelligenz (KI) in Lattice Low Power FPGAs direkt vor Ort im Endgerät ausgewertet werden. Es ist so möglich, nur die relevanten Daten weiter in die Cloud zu übertragen oder gar die komplette Auswertung schon im FPGA durchzuführen. Dadurch wird die zu übertragene Datenmenge reduziert bzw. die Reaktionszeit verkürzt. Dies bedeutet auch, dass weniger Speicherplatz und weniger Übertragungskapazität benötigt werden. Die Geräte können auch ohne eine Verbindung zur Cloud Entscheidungen treffen.

Datenauswertung in einem FPGA am Geräte-Edge

Die meisten „Edge“-Endgeräte müssen auf Stromverbrauch achten. Dies bedeutet, dass die Auswertung der Daten mit wenig Verlustleistung erfolgen muss. Hierzu werden Bausteine benötigt, die eine geringe statische und dynamische Verlustleistung aufweisen. Erstere ist meist Wichtiger, da die Verarbeitungsgeschwindigkeit mit moderaten Frequenzen ablaufen kann.

Um KI optimal in das Endgerät zu implementieren, müssen die Auswertebausteine in verschiedensten Gehäusen zur Verfügung stehen. Sehr kleine Gehäuse werden z.B. für kleine Handgeräte benötigt. Diese benötigen aber einen erhöhten Aufwand bei der Herstellung des Endgerätes. Desweiteren müssen sich die Bausteine in einem Kostenrahmen bewegen, die das Endgerät nicht übermäßig verteuert.

Weiterhin müssen IP Cores für die Implementierung der Künstlichen Intelligenz vorhanden sein, die so ausgelegt sind, das kleinere verlustleistungsoptimierte FPGAs benutzt werden können. Es muss eine Anbindung der verschiedenen und gängigen Künstlichen Intelligenz Tools (z.B. TensorFlow, Caffee) gegeben sein, um die vorhanden IP Cores entsprechend Ihren Trainingswerten zu konfigurieren.

FPGA-Lösungen für den Einsatz künstlicher Intelligenz (KI)

Lattice bietet hier zwei Lösungen an. Zum einen: ein Ultra Low Power FPGA, welches als Coprozessor dient, der Daten vorfiltert; nur die relevanten Daten werden zur Auswertung weitergegeben. Als Beispiel dient hier eine Gesichtserkennung, basierend auf einem Neuronalen Netzwerk. In dieser Applikation ist das Ultra Low Power FPGA in der Lage zu erkennen, ob es sich bei einem von einer Kamera erfassten Bild um ein menschliches Gesicht handelt oder nicht. Nur wenn es sich um ein Gesicht handelt, kann das Bild z.B. an die Cloud gesendet werden, um dort weitere Analysen durchzuführen. Alternativ kann ein Signal an den Hauptprozessor gesendet werden, der aus dem Stand-by-mode in den aktiven Mode versetzt wird und danach die Analyse des Bildes durchführt.

Diese Applikation der reinen Gesichtserkennung mit Ultra-Low-Power-FPGA arbeitet im mW-Bereich und kann die Präsenz eines Gesichts innerhalb von Millisekunden erkennen. Die mW-Applikation weckt den Applikationsprozessor nur dann aufweckt, wenn das Vorhandensein eines Gesichts erkannt wurde. Erst danach nimmt dieser die weitere Analyse vor oder sendet die Daten zur Verarbeitung weiter.

Für diesen Ansatz bietet sich eine Lösung mit Low-Power-FPGAs, wie z.B. die iCE40 Ultra Plus Bausteine, an. Um in diesen Bausteinen Künstliche Intelligenz zu implementieren, stellt Lattice einen IP Core mit einem BNN (Binäres Neuronales Netzwerk) zur Verfügung, welches in der Radiant Designsoftware von Lattice verarbeitet werden kann. Damit nicht jeder Entwickler von Null anfangen muss, bietet Lattice Semiconductor zudem diverse Referenzdesigns.

Im zweiten Ansatz lassen sich kleinere Auswertungen schon im FPGA selbst realisieren. Eine solche Lösung arbeitet mit einer Leistungsaufnahme von weniger als 1 Watt. Ein Beispiel ist die Gesichtserkennung mit der Gesichtsverfolgung. Hierzu dient ein Low-Density-FPGA. FPGAs der ECP5-Reihe erlauben es z.B. Systemdesignern, skalierbare Lösungen zu realisieren. Dabei ist es wichtig, die Anforderungen genau zu analysieren und die Bildrate, Bildgröße zu bestimmen und zu entscheiden, was lokal oder in der Cloud verarbeitet werden soll. Diese Lösung stellt einen Kompromiss zwischen Verlustleistung und Größe des FPGAs dar.

Für die Evaluierung dieses zweiten Ansatzes können Systemdesigner die Video Interface Plattform mit dem Starter-Kit (Embedded Vision Development Kit, EVDK) nutzen. Das EVDK besteht aus drei Boards, mit einem ECP5-85-FPGA als Processing Unit. Zur Implementierung des Künstliche Intelligenz Netzwerk steht seitens Lattice ein Convolutional Neuronales Netzwerk (CNN) IP Core zur Verfügung, das mit Hilfe der Diamond Designsoftware von Lattice konfiguriert und in das FPGA implementiert werden kann.

Beide Lösungen verwenden einen Neural Network Compiler, der Dateien lesen kann, die mit handelsüblichen Softwaretools wie Caffee and TensorFlow generiert wurden. Diese Tools werden benötigt, um das Neuronale Netzwerk zu trainieren.

Gesichtserkennung im mW-Bereich

Die Gesichtserkennungs-Applikation ist auf der iCE40 UltraPlus Mobile Development Plattform implementiert (siehe Bild 2). Die 8-Bit-Bilddaten im 128x128-Format werden in der Video Processing Unit auf 32x32 Punkte heruntergerechnet und dem BNN Accelerator zugeführt. Dieser analysiert die Daten und entscheidet, ob das Bild ein Gesicht enthält oder nicht. In der bei Lattice verfügbaren Demoversion sollte das Gesicht etwas 50% des Bildes abdecken. Die Genauigkeit der Analyse hängt von der Qualität der Daten ab, die für das Training des verwendeten Neuronalen Netzwerks benutzt wurden.

Das BNN ist ein IP Core für das Verarbeiten von Deep Neural Networks (DNNs) mit binären Wichtungen. Es berechnet alle erforderlichen Lagen eines Neuronalen Netzwerkes und ist optimiert für Bilddaten (z. B. Gesichts- oder Gegenstandserkennung). Audioapplikation wie Phrasen-Erkennung können ebenfalls in dem FPGA realisiert werden. Hierfür muss das BNN zuvor entsprechend auf Audiodaten optimiert werden.

Die Verlustleistungsabschätzung für die Gesichtserkennung liegt bei etwa 2,22mW für das komplette System. Davon entfallen 1,376 mW auf den verwendeten Himax-Bildsensor und nur 0,847mW auf das FPGA selbst. Das Design enthält ein siebenlagiges BNN, bei dem in jeder Lage 512.000 Neuronen bereitstehen. Effektiv sind also 3,584 Millionen Neuronen implementiert, was das FPGAs mit 3931 LUTs und ca. 800kbit Memory auslastet. Das System verarbeitet 5 Frames pro Sekunde, was für die Applikation völlig ausreicht.

Das BNN kann mit der Designsoftware Radiant konfiguriert werden. Diese generiert ein HDL-Modul, welches sich in den ICE40 Ultra Plus implementieren lässt.

Das BNN wird über den SPI Loader Block mit Trainingsdaten geladen, die zunächst mit TensorFlow generiert werden (siehe Bild 3). Da die Gesichtserkennungsapplikation die TensorFlow-Ausgabedatei nicht direkt lesen kann, werden diese mit dem Neuronalen Network Compiler der Lattice SensAI Software in ein lesbares Format umgewandelt. Neben TensorFlow wird auch der Caffe-Flow unterstützt (siehe Bild 4).

Gesichtsverfolgung im Watt-Bereich

Diese Applikation ist auf dem Starter-Kit der Video Interface Plattform (Embedded Vision Development Kit, EVDK; siehe Bild 5) realisiert. Das Kit besteht aus drei Boards: An das ECP5-Prozessor Board, mit einem ECP5 SRAM FPGA mit 85K LUTs sowie einem externen DDR3 Memory, werden mit High-Speed-Steckverbindern je ein Input- und ein Output-Board angeschlossen. Der externe Bildsensor ist über ein MIPI-CSI2-Interface am Crosslink-FPGA verbunden. Dort werden die Daten von CSI2 nach DVI konvertiert und dem Video Processing Modul im RGB-Format zur Verfügung gestellt. Dieses Modul kann die Daten auf ein 32x32-, 90x90- oder 224x224- Format herunterrechnen; in unserem Beispiel arbeiten wir mit 90x90 Punkten. Die Bilddaten gehen an den CNN Accelerator, ein IP Core für das Deep Neuronale Netzwerk, der mit Festpunktalgorithmus arbeitet. Das CNN kann in der Designsoftware Diamond konfiguriert und generiert werden. Anschließend kann man es ebenfalls als HDL-Modul im ECP5-FPGA implementieren.

Das CNN erkennt nun ein Gesicht basierend auf den zur Verfügung gestellten Trainingsdaten, welche vom SD Card Loader in das CNN geladen werden (siehe Bild 6). In der Demo sollte das Gesicht ca. 20% des Bildes einnehmen. Die Trainingsdaten werden wie beim BNN über den Neuronalen Network Compiler das SensAI Tool in das für das CNN lesbaren Format umgewandelt.

Das Ergebnis vom CNN Accelerator wird zurück an die Video Processing Unit gegeben, welche jetzt einen grünen Rahmen um das erkannte Gesicht legt. Diese Daten werden zu dem HDMI Output Board weitergeleitet. Hier kann jetzt ein HDMI Monitor angeschlossen und das Bild (Gesicht mit Rahmen) angezeigt werden.

Event-Tipp: FPGA-Kongress 2019 FPGAs eignen sich auch für den Einsatz neuronaler Netzwerke am Geräte-Edge. Auf dem FPGA-Kongress 2019 werden renommierte Referenten von Intel, Xilinx sowie erfahrene Dienstleister über ihre Erkenntnisse und Lösungen im Einsatz von FPGAs bei künstlicher Intelligenz referieren. Der Fachkongress, der von ELEKTRONIKPRAXIS und dem Schulungscenter PLC2 veranstaltet wird, fokussiert sich auf anwendergerechte Lösungen, die Sie schnell in Ihren eigenen Entwicklungs-Alltag integrieren können. Näheres zu Programm und Anmeldung finden Sie unter www.fpga-kongress.de .

Beide Beispiele zeigen KI-Implementierungen, die in „Edge“ Endgeräten eingesetzt werden können. Beide Ansätze sind im Vergleich zu Cloud- oder Prozessor-basierenden Lösungen stromsparender, verringern die zu übertragenen Datenmengen und verkürzen die Antwortzeit des Systems. Des Weiteren können sie auch ohne eine Netzwerkverbindung zur Cloud arbeiten. Diese Applikationen sollen nur als Anregung dienen, um zu zeigen, was mit dem Einsatz von Künstlicher Intelligenz via FPGAs möglich ist. Ob ein Gesicht erkannt werden soll oder ein anderes Objekt ist nur von den verwendeten Trainingsdaten abgängig; auch audiobasierte Anwendungen (wie z.B. Phrasen-Erkennung) lassen sich so sehr einfach und effektiv realisieren. Die erwähnten Beispiele zeigen dabei, das selbst kleine und preiswerte FPGAs ausreichen, um Künstliche Intelligenz in einem System zu implementieren.

* Harald Werner ist Area Sales Manager CE/EE bei der Lattice Semiconductor GmbH in München.

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45760182 / FPGA)