zuruck zur Themenseite

Artikel und Hintergründe zum Thema

Bildverarbeitung

Jan Bihn,

FPGA unterstützt CPU

Oft geht es in der Bildverarbeitung darum, eine Flut von Daten in möglichst kurzer Zeit zu erfassen, um daraus Steuerdaten zu generieren. Neben leistungsfähigen Multicore-Systemen bietet sich bei Hochgeschwindigkeitsanwendungen eine nur scheinbar unterlegene Technologie an: FPGAs entlasten die CPUs der Bildverarbeitungsrechner.

© National Instruments

Seit die Firma Xilinx im Jahre 1984 die ersten FPGAs (Field-Programmable Gate Arrays) in Form von einfachen Schnittstellen-Chips auf den Markt brachte, hat sich die Technologie stetig weiterentwickelt. Heute ersetzen FPGAs in Signalverarbeitungs- sowie Steuer- und Regelanwendungen sowohl vordefinierte ASICs (Application Specific Integrated Circuits) als auch Prozessoren. FPGAs vereinen dabei die positiven Eigenschaften der vordefinierten ASICs, wie Unabhängigkeit von Betriebssystemen und CPU-Takt, mit der Programmierbarkeit in Form von Bitfiles.

Einfach gesagt, handelt es sich bei FPGAs um wieder programmierbare Siliziumchips. Eine Matrix aus Millionen von Logikblöcken lässt sich durch programmierbare Verbindungen zu Schaltungen verknüpfen. Im Unterschied zu Prozessoren arbeiten FPGAs die Verarbeitungsoperationen (Tasks) nicht nach einem definierten Takt ab, sondern führen die Operationen parallel durch. Den einzelnen Tasks werden abgegrenzte Bereiche auf dem Chip zugewiesen, deshalb arbeitet jeder Task autonom und unbeeinflusst von den anderen Logikschaltungen. Auch nachträglich hinzugefügte Tasks verlängern deshalb die Verarbeitungszeit nicht.

Anzeige

Die CPU entlasten

Bild 1. Der FPGA-Chip übernimmt die gesamte Bildverarbeitung.

© National Instruments

Die positiven Eigenschaften der FPGAs motivierten Hersteller wie National Instrument, diese Technik auf die Bildverarbeitung zu übertragen (siehe Kasten). Gerade im Fertigungsbereich kommt es bei der Prüfung von Bauteilen innerhalb kürzester Zeit zu einer Flut von Bildern, die es möglichst performant zu verarbeiten gilt. Damit entlasten die so ausgestatteten Framegrabber-Karten den Prozessor des eingesetzten Industrie-PCs. Dieser kann die nun freien Rechenkapazitäten auf weitere Analysen oder auch die Datenübertragung und -speicherung konzentrieren.

Die Auslagerung von Bildverarbeitungs- und Analyseschritten auf FPGA- Chips reduziert die Latenz zwischen Erfassung der Bilddaten am Eingang bis hin zur Ausgabe geeigneter Steuersignale am Ausgang.

Bild 2. Arbeitsteilung: Vorverarbeitungen auf Bitebene erfolgen auf dem FPGA, anschließend werden die Bilddaten an die CPU übergeben.

© National Instruments

Zur Entlastung der CPU bieten sich zwei Methoden an: In der ersten Variante (siehe Bild 1) führt der FPGA die gesamte Bildverarbeitung aus, wodurch nur minimale Systemlatenz entsteht. Anschließend können die Bildinformationen an die CPU übertragen werden, um die Daten zu speichern, oder um die Bilder zu visualisieren. In einer zweiten Variante teilen sich der FPGA-Chip und Prozessor die Arbeit (siehe Bild 2).

Während der FPGA eine Vorverarbeitung erledigt, kümmert sich der Prozessor um anspruchsvollere Algorithmen. Im Beispiel übernimmt der FPGA die Operationen auf Bit-Ebene wie Filterungen oder Kantenerkennung. Das vorverarbeitete Bild wird dann an die CPU übertragen, die Operationen auf Bildebene übernimmt, etwa die Mustererkennung. Die Systemlatenz ist in diesem Fall immer noch gering, da der Prozessor weniger Funktionen auszuführen hat als bei traditionellen Bildverarbeitungssystemen.

Der parallele Takt

Der FPGA-Chip empfängt die Bilddaten und verarbeitet individuelle Bits mithilfe eines parallelen Hardwaretakts. Die Taktrate eines FPGA ist dabei nicht mit der Taktrate einer CPU zu verwechseln. Bei FPGAs gibt die Taktrate an, wie viele verschiedene binäre Eingangsszenarien pro Sekunde verarbeitet und direkt zu nutzbaren Ausgangssignalen umgewandelt werden können.

Aktuelle FPGAs schaffen eine typische Taktrate von etwa 100 MHz. Reicht diese Leistung aus, erfolgt die Datenübertragung und -verarbeitung hardwareseitig in einem einzigen Taktzyklus. Damit ist die optische Kohärenztomografie oder ein Steuersystem für Anwendungen wie Laserausrichtung und Sortierung ein idealer Einsatzbereich. Viele Bildverarbeitungsalgorithmen lassen sich in parallel ausführbare Operationen auf einem FPGA unterteilen. Beispiele für Funktionen, die ein FPGA übernehmen kann:

Vorverarbeitung

  • Bildtransformationen
  • Bildoperatoren
  • Korrektur der Schatteneffekte
  • Bayer-Decodierung
  • Umrechnung von Farbbereichen
  • 1D- und 2D-Fast-Fourier-Transformation
  • Filterung (glätten/schärfen)
  • Binäre Morphologie

Merkmals-Extraktion

  • Kanten, Linien und Ecken
  • Binäre Objekte
  • Farbe

Messungen

  • Schwerpunkt
  • Bereichsmessungen

Diese Operationen können auf kleine Bitbereiche sowie auf mehrere Bereiche eines Bildes simultan in einem Takt an den FPGA übergeben und gleichzeitig verarbeitet werden. Übergeordnete Informationen über Muster oder Objekte im Bild sind dazu nicht erforderlich. Es bleibt festzuhalten, dass die FPGA- Technologie neue Möglichkeiten in der Bildverarbeitung eröffnet, wo CPUs bisher am Limit arbeiten. Auch die Programmierung der FPGAs wurde mit Einsatz von grafischen Entwicklungsumgebungen wie Labview von National Instruments vereinfacht und einem wesentlich breiteren Anwenderkreis zugänglich gemacht.

Trotzdem lohnt sich der Einsatz von FPGAs nicht zwangsläufig: Für viele Standardaufgaben in der industriellen Bildverarbeitung gibt es ein großes Angebot an Standardhardware, wie Framegrabber-Karten für unterschiedliche Kameraschnittstellen und Bus-Anbindungen. Gerade in solchen Fällen ist abzuwägen, ob zusätzliche Kosten für FPGA-Hardware und -Programmierung gerechtfertigt sind.

Autor: Klaus Dinnes ist Marketing-Ingenieur bei National Instruments in München.

FPGA-Hardware von National Instruments

Ein Beispiel für eine FPGA-basierte Bildverarbeitungshardware ist das FlexRIO Adaptermodul 1483 von National Instruments.

© National Instruments

Ein Beispiel für eine FPGA-basierte Bildverarbeitungshardware ist das FlexRIO Adaptermodul 1483 von National Instruments (NI). Dieses PXI-Modul unterstützt Camera-Link-Geräte in Base-, Medium- und Full-Konfiguration sowie 80-Bit-Konfigurationen mit zehn Tap-Konfigurationen von Camera-Link-1.2- Kameras. Diese Framegrabber-Kombination bietet vier Digital-I/O-Kanäle, zwei optisch isolierte Eingänge und einen Inkremental-Drehgeber-Eingang für eine Triggerfunktion. Außerdem sind zahlreiche Optionen für modulare I/Os und industrielle Kommunikation über die PXI-Plattform verfügbar.

In der Vergangenheit stand FPGA-Technologie lediglich solchen Anwendern zur Verfügung, die über fundiertes Wissen im Bereich digitales Hardwaredesign und VHDL-Programmierung verfügen. Im Gegensatz dazu bietet NI seit 2003 das FPGA-Erweiterungsmodul für Labview an. Diese Erweiterung ermöglicht eine FPGA-Programmierung ohne größere Vorkenntnisse mittels grafischer Symbole. Labview FPGA übersetzt den grafischen Code in maschinennahe Sprachen wie VHDL und wendet ihn auf FPGA-Hardware an.

  • Xing Icon
  • LinkedIn Icon
Anzeige
zurück zur Themenseite
Anzeige

Das könnte Sie auch interessieren

Anzeige

Schaltschränke

Clever klimatisiert

Um elektrotechnische Komponenten in Steuerungs- und Schaltschränken vor zu hohen Temperaturen zu schützen, muss die Wärme effizient aus dem Schrank abgeführt werden. Anstelle einer aktiven Klimatisierungs­komponente genügt oft eine passive...

mehr...

IoT

Im Dschungel der Plattformen

Am Markt tummeln sich immer mehr IoT-Plattformen. Doch welche Lösung eignet sich für welche Anwendung? Wie grenzen sie sich voneinander ab und wo liegt jeweils ihr Fokus? Ein Überblick.

mehr...
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Werker-Unterstützung

Was Exoskelette leisten können

Sie kombinieren menschliche Intelligenz mit maschineller Kraft, indem sie die Bewegung des Trägers unterstützen oder verstärken – die Rede ist von Exoskeletten. Anfänglich für medizinische und militärische Zwecke entwickelt, stehen sie nun an der...

mehr...
Jetzt Newsletter abonnieren