Deep Learning auf FPGAs

Hohe Geschwindigkeit, Bandbreite und Vorhersagegenauigkeit

Beim Deep Learning als einem Teil der künstlichen Intelligenz lernt ein Computermodell automatisch die Merkmale zur Unterscheidung von Objekten und führt Klassifizierungsaufgaben direkt auf Bildern, Videos, Texten oder Tönen durch. Meist werden hierfür neuronale Netzarchitekturen verwendet. Ist die Zahl verborgener Schichten in solchen Netzen hoch, spricht man von tiefen neuronalen Netzen wie etwa CNN (Convolutional Neural Network).

Für zu klassifizierende Objekte oder Defekte extrahiert ein solches Netz spezifizierende Merkmale, ausgehend von allgemeinen Merkmalen (Ränder, Farbe, Lichtwechsel) in den oberen Schichten hin zu besonderen, anwendungsspezifischen Merkmalen in den tieferen. In der Bildverarbeitung eignet sich eine CNN-Architektur für die Verarbeitung von Bildern und Videos als 2D- wie auch 3D-Daten (z.B. Stereo Vision, Lasertriangulation, Time of Flight, Blob-Tabellen).
Deep Learning erfordert große Mengen vorklassifizierter Daten, die durch ein Training angelernt wurden, und eine hohe Rechenleistung. Je mehr Daten für das Antrainieren verwendet werden, desto höher ist die Vorhersagegenauigkeit.

High-speed Deep Learning-Anwendung auf FPGA zur Fehlerdetektion auf reflektierenden Oberflächen

Deep Learning unterscheidet zwischen dem Training zum Anlernen des neuronalen Netzes, der Implementierung des Netzes z.B. auf einem FPGA und der Inference, dem Ausführen der CNN-Algorithmik des Netzes auf Bilder mit der Ausgabe eines Klassifizierungs-Ergebnisses. Der Einsatz von FPGA-Technologie bietet beim Training wenige Mehrwerte, umso mehr jedoch bei der Inference. Ein Demonstrator für die Fehlersuche auf metallisch reflektierenden Oberflächen hat gezeigt, wie eine Deep Learning-Lösung unter VisualApplets auf einem FPGA in Echtzeit und mit hoher Bandbreite läuft. Es wurden Durchsatzraten von 220 MB/s bei einer Zuordnungs-Genauigkeit von 99,4% erreicht. Hierbei waren keine weiteren CPU- oder ARM-Prozessoren notwendig. Die Bandbreite und Genauigkeit kann beim Einsatz von Framegrabbern mit größeren FPGA-Ressourcen noch deutlich gesteigert werden. Gezeigtes Beispiel ist die Inspektion von Metalloberflächen mit der Analyse von sechs Fehlerklassen.

Warum Deep Learning

FPGAs – Ideal für Deep Learning

Deep Learning embedded

Dienstleistungs-Pakete

Deep Learning Hardware

Deep Learning erreicht die in der Produktion erforderliche Verarbeitungs-Geschwindigkeit und kann bereits heute bestehende Lösungen ersetzen. Die Inference reicht für die Anforderungen einer Inline-Inspektion. Neue leistungsfähigere Camera Link Framegrabber wie die mit einer CNN-Runtime-Lizenz ausgestattete microEnable 5 marathon deepVCL enthalten bereits größere FPGA-Prozessoren, die für Deep Learning-Anwendungen mit der benötigten hohen Rechenleistung und Bandbreite notwendig sind. Größere FPGA-Ressourcen ermöglichen es, komplexere Architekturen und damit Anwendungen bei gleichzeitig höheren Bandbreiten zu implementieren. Zukünftige Framegrabber-Generationen werden von vorneherein mit der passenden Leistung für die Inference sehr großer neuronaler Netze ausgestattet sein. Anwender können ihr bisheriges Bildverarbeitungssystem aus Kameras, Kabeln, Beleuchtung, Sensoren und Aktoren weiter nutzen.

CNN ready Camera Link Framegrabber mit größeren FPGA-Ressourcen

Bildvorverarbeitung für noch mehr Ressourcen
Mit den zusätzlichen FPGA-Ressourcen lassen sich unterschiedliche Verarbeitungsschritte gleichzeitig, mit größerer Genauigkeit oder in höherer Bittiefe verarbeiten. Die höhere Verarbeitungs-Bandbreite ermöglicht eine Gesamtbildverarbeitung, komplexere Anwendungsdesigns wie z.B. Loop-Verarbeitung, mehrere parallele Bildausgaben und mehr Bildvorverarbeitung auf dem FPGA. Durch Vorverarbeitung anhand einer Verringerung der Auflösung und Lokalisierung (Blob-Analyse) lässt sich der Datendurchsatz wirkungsvoll reduzieren, wodurch die Bandbreite erhöht und kleinere oder tiefere Netze oder kleinere FPGAs eingesetzt werden können, die oft für einfache Bildverarbeitungs-Aufgaben ausreichen.
Für Embedded Vision-Anwendungen unterstützt der Ansatz neben Framegrabbern ebenso FPGA-Drittgeräte, die kompatibel zu VisualApplets sind, wie Kameras und Vision-Sensoren. Hierzu wird mit VisualApplets Embedder eine Kompatibilitätsschicht zwischen der Hardware und dem VisualApplets Programmierkern eingerichtet. Dieser reservierte Teil des FPGAs ist mit VisualApplets beliebig oft programmierbar und kann z.B. für dezentrale Deep Learning-Anwendungen eingesetzt werden.

Deep Learning Software

Baumer LX VisualApplets Kamera

Integration von Netzarchitekturen und Gewichten in VisualApplets

Über die grafische FPGA-Programmierung mit VisualApplets lassen sich passende Netzarchitekturen unterschiedlicher Größe und Komplexität integrieren sowie vortrainierte Konfigurationsparameter für die Gewichte der Netze (weights) für eine Vielzahl von Bildverarbeitungs-Anwendungen laden. Dabei werden auch Informationen über Netze und Parameter aus Drittsoftware und Trainingstools wie TensorFlow importiert. Neue Gewichte sind leicht zu laden, solange das Netz unverändert bleibt. Ein Nachtrainieren, z.B. für ein neues Werkstück in der Fertigung, geht mit relativ wenig Aufwand. Ändern sich Testumgebung oder -objekte, können die nachtrainierten Bilder über einen neuen Parametersatz der Gewichte oder als neues Netz nachgeladen werden.

Anwender sehen die Abbildung und Konfiguration eines neuronalen Netzes als einen CNN-Operator unter der VisualApplets Benutzeroberfläche. Das spezifische CNN wird zwischen dem Kamera-Operator als Bildquelle und dem DMA-Operator als Datenübergabe an den PC eingebunden. Zusätzliche Bildoptimierungen sind als Pre-Processing- (z.B. Bildverbesserung, Bildausschnitt) oder Post-Processing-Operatoren zu integrieren. Für die Steuerung externer Peripherie werden signalverarbeitende Operatoren eingesetzt, die auch Ausschleusungen ausführen. Das gesamte Anwendungs-Design lässt sich simulieren sowie synthetisieren und läuft immer als Echtzeitbetrieb in der definierten Geschwindigkeit mit geringsten Latenzen ab.
Die grafische Programmierung unter VisualApplets über Datenfluss-Diagramme öffnet Software-Entwicklern und Anwendungs-Ingenieuren den Zugang zu Bildverarbeitungs-Projekten wie Deep Learning und reduziert deren Entwicklungszeit und somit Time-to-Market verglichen mit einer HDL-Programmierung (VHDL/Verilog) erheblich.

VisualApplets

VisualApplets Embedder

Deep Learning im Test

In einer aktuellen Demonstratorenumgebung zur Erkennung von sechs unterschiedlichen Defektfehlerklassen auf Stahloberflächen wurde ein microEnable 5 marathon VCL eingesetzt. Die Stahloberflächen wurden mit einer Aufnahmegeschwindigkeit einer Farbzeilenkamera mit 220 MB/s aufgenommen und über ein neuronales Netz unter VisualApplets analysiert. Das Training wurde auf 200 Bilder pro Fehlerklasse bei einer Größe von 300*300 Pixeln durchgeführt. Die Inference lief ebenfalls bei 220 MB/s, konnte somit alle aufgenommenen Daten verarbeiten und eine Vorhersagegenauigkeit von 99,4% erreichen.
Die Trainingszeit lag bei 3 Tagen, die Implementierung auf dem FPGA unter VisualApplets mit Erstellung eines angepassten Netzes und Bildverbesserungsschritten bei 2 Tagen.
Mit dem Potenzial neuer Framegrabber mit größeren FPGA-Prozessoren und Ressourcen (z.B. die microEnable 5 marathon deepVCL) lässt sich die Datendurchsatzrate deutlich steigern, gleichzeitig können tiefere Netze entworfen und eingesetzt werden.

Anwendungsgebiete

Heute ist Deep Learning bereits im Einsatz bei der Muster- und Objektdetektion mit Klassifizierung. Beste Ergebnisse erzielt das Verfahren bei variierenden Objekten und dem Erkennen von Defekten oder Anomalien, aber auch bei schwierigen Oberflächen mit Transparenzen und Reflektionen. Im Fertigungsprozess ist dadurch eine Maschine imstande, eine Vielzahl von Varianten auch bei variierenden Umgebungsbedingungen zu handhaben. Deep Learning wird hier bei der Zustandsüberwachung und vorbeugenden Wartung erfolgreich eingesetzt. Weitere Anwendungsgebiete umfassen Inline-Inspektion, Robotik, Pick&Place, autonomes Fahren und Assistenzsysteme, Drohnen, Satellitenaufnahmen, Landwirtschaft, Medizintechnik, Zellforschung, und kognitive Systeme, die mit Menschen zusammenarbeiten bzw. für die Mensch-Maschine-Interaktion (HMI).

Machine Vision Embedded Vision Non-Industrial
Inline-Inspektion Fertigung Medizintechnik
Robotik Autonomes Fahren Landwirtschaft
Kognitive Systeme Drohnen Satellitenaufnahmen
Mensch-Maschine-Interaktion (HMI) Pick&Place Zellforschung

Deep Learning mit Silicon Software hat viele Vorteile

Deep Learning unter VisualApplets ermöglicht den Einsatz von neuronalen Netzen mit FPGA-Technologie für Anwendungen mit industriellen Anforderungen an Echtzeitfähigkeit bzw. geringen Latenzen (wichtig für Inline-Inspektion), Datendurchsatz, Bandbreite und geringe Wärmeleistung (wichtig für embedded Vision).

Die Implementierung von Deep Learning-Anwendungen ist mit VisualApplets einfach zu handhaben und in kurzer Zeit umzusetzen – und dies als hardwareprogrammierte Echtzeitanwendung.

Deep Learning auf FPGAs erzielt gleichzeitig eine hohe Geschwindigkeit als auch Bandbreite bei großer Erkennungsgenauigkeit (bei Demonstratoren zwischen 98,4 und 99%).

Anwender profitieren von langfristigen Einsparungen durch geringere Gesamtsystemkosten und schnelle Anpassbarkeit.

Der Ansatz mit FPGAs liefert sofortige Ergebnisse in Echtzeit (mit geringsten Latenzen) auch für hoch aufgelöste Bilder: von der Bildakquise über die Bildvorverarbeitung (Datenreduktion, Bildoptimierung) direkt zu Ergebnisbildern.

Durch Optimierung der Netzarchitekturen kann der FPGA auch auf kleinen Netzen hohe Voraussage-Wahrscheinlichkeiten über 98% und gleichzeitig Datendurchsätze von über 200 MB/s (aktuelle Demonstrations-Umgebung unter Camera Link) erreichen. Deep Learning wird hierdurch für Inline-Inspektion, aber auch im Embedded-Bereich einsetzbar.

VisualApplets basiert auf einer grafischen Benutzeroberfläche mit Flussdiagrammen. Für die FPGA-Programmierung werden keine Kenntnisse der Hardware-Programmierung vorausgesetzt.

Für den Einsatz von Deep Learning in eingebetteten Geräten (embedded Vision) ist VisualApplets auch auf FPGA-Drittgeräten wie Kameras und Vision-Sensoren lauffähig. Diese werden flexibel mit der geforderten spezifischen Intelligenz ausgestattet und sind mehrfach programmierbar. Anwendungsdesigns lassen sich auf weitere Geräte übertragen.

Die lange Verfügbarkeit von FPGAs, Framegrabbern und der grafischen Entwicklungsumgebung VisualApplets von 10 Jahren und darüber hinaus gewährleistet eine hohe Investitionssicherheit.

Weitere Informationen über Deep Learning

Video Deep Learning Hochgeschwindigkeits-Anwendung

VISION 2018 Interview mit Geschäftsführer

Deep Learning-Artikel (Zeitschrift inVision)

microEnable 5 deepVCL Framegrabber (Blogtext)