Framegrabber

Michael Noffz | Inka Krischke,

FPGA statt CPU

Framegrabber fungieren in Anwendungen der industriellen Bildverarbeitung als Vermittler zwischen Kamera und PC – auch bei Kameras mit Gigabit-Ethernet, Firewire oder USB, die direkt mit dem PC verbunden werden, denn letztlich sind hier die Framegrabber-Funktionen in die Kamera-Elektronik integriert. Lassen sich mit ihnen aber auch Echtzeit-Bedingungen einhalten?

© Silicon Software

Framegrabber übernehmen den Vermittlerpart zwischen Kamera und PC. Die Bildeinzugskarten besitzen darüber hinaus eine Trigger-Schnittstelle, die für die Steuerung der Kamera und externer Peripherie verantwortlich ist. Die Peripherie kann hierbei ein Signal liefern oder erwartet ein Steuersignal respektive Ausgangssignal vom Framegrabber. Beispiele für Eingangssignale sind Encoder in Fließbändern und für Ausgangssignale die Steuerung von Lichtquellen. Klassischerweise dreht sich die Signalverarbeitung weitgehend um die Bilderzeugung. Sie dient einer zeitlichen Abstimmung zwischen Objektgeschwindigkeit auf einem Fließband und der Aufnahmegeschwindigkeit einer Zeilenkamera oder dem Zeitpunkt, eine Objektbeleuchtung vor der Aufnahme durch eine Flächenkamera zu starten.

In den meisten Fällen sind mit dem Transfer des Bildes in den PC-Arbeitsspeicher die Aufgaben des Framegrabber erledigt. Weitere Auswertungen übernehmen die Bildverarbeitungssoftware, Signalsteuerungssoftware sowie dezidierte I/O-Karten. Für die meisten Anwendungen ist diese Konstellation auch ausreichend. Gibt es jedoch zwingende Gründe für die Einhaltung von Echtzeit-Bedingungen, gehen die Vo­raussetzungen dafür bei der Übergabe vom Framegrabber zur Bildverarbeitungssoftware verloren. Die Frage ist, ob sich die Echtzeit-Kette nicht doch aufrechterhalten lässt.

Anzeige

FPGAs für die Echtzeit

Da programmierbare Framegrabber eine Echtzeit-Fähigkeit mitbringen, liegt es nahe, die Kette hier weiterzuführen. Als zentrale Prozessortechno­logie auf den Bildverarbeitungsboards werden meistens FPGAs eingesetzt. Da sie mit den weltweit kleinsten Strukturbreiten gefertigt werden, lässt sich eine sehr hohe Logikdichte erzeugen. Diese wird dazu genutzt, eine hohe Parallelität zu erreichen. Die industrielle Bildverarbeitung ist prädestiniert als Anwendungsfeld für die massive parallele Verarbeitung von Bilddaten, sowohl in der Kamera als auch auf dem Framegrabber. Für das Auslesen schneller Sensoren, das Sortieren von Bilddaten und letztlich die Verarbeitung dieser Daten in Echtzeit werden FPGAs eingesetzt.

Konfiguration der FPGA-Hardware mit der Entwicklungsumgebung „VisualApplets“ ...

© Silicon Software

Über die Programmierung der FPGAs werden die Funktionalitäten für die Bildaufnahme, Bildverarbeitung und Signalverarbeitung abgebildet. Ein intelligenter Framegrabber kann also ein komplettes Bildverarbeitungssystem darstellen. Nach dem Einzug der Kamerabilder werden die Bilddaten aufbereitet, verbessert, gefiltert, teils segmentiert, um aus Pixelflächen Objekte zu erhalten, und algorithmisch weiterbearbeitet, um die für die Anwendung relevanten Daten zu erhalten. Dies können 1D-, 2D- oder 3D-Daten sein, Farb- oder Grauwerte, einfache Informationen über eine Anwesenheit oder ein Fehlen sowie qualifizierte Daten über Defekte oder Geometrien, die einem Kriterienkatalog folgen. Diese dienen letztlich als Basis für Entscheidungen.

Grundsätzlich stehen hierfür zwei Wege zur Verfügung: Der eine findet über die Übertragung von Daten zur Host-CPU über den Arbeitsspeicher statt, der andere über die direkte Steuerung von digitalen Eingangs- und Ausgangssignalen. Hierzu dient die Trigger-Schnittstelle als GPIO (general purpose input-output interface). Der Framegrabber generiert für Ausgangs-Pins variable Signale, die zur An­steuerung von Motoren, Ventilen oder anderer Peripherie genutzt werden. Je nachdem, welche Geräte zum Einsatz kommen und welche Anzahl an Signalen nötig ist, lassen sich Formatwandler, Aktoren oder weitere feldbuskonforme Peripherie an die GPIO-Schnittstelle des Framegrabber anschließen.

.. und Simulation des Hardware-Verhaltens

© Silicon Software

Da die Bild- und die Signalverarbeitung auf dem FPGA stattfinden und in die gleiche Bearbeitungs-Pipeline eingebunden sind, „vererbt“ sich die Echtzeit auf die Ansteuerung der Sys­temgeräte. Im Gegensatz zur CPU-Architektur, die die Bearbeitung von Aufgabenteilen in Zeitscheiben einteilt, findet die Bearbeitung auf dem FPGA als ein Pipeline-System statt, das keine Wartezyklen kennt und in dem die Erhöhung der Rechenleistung durch massiven parallelen Einsatz von Pipelines umgesetzt wird. Dies erlaubt hohe Durchsatzraten, stellt aber gleichzeitig hohe Anforderungen an die Synchronisierung der parallelen Datenflüsse. Ist das algorithmische Design für den FPGA erstellt, gibt es ein festes zeitliches Offset und danach einen Ausführungs-Determinismus, der Echtzeit-Bedingungen garantiert. Um beim Bild des Pipeline-Systems zu bleiben: Das Offset ist die Zeit vom Öffnen der Ventile bis zum kompletten Durchfluss des Systems. Selbst bei komplexen Aufgabenstellungen und modernen FPGA-Prozessoren bleibt dieser Offset-Wert im Bereich von Mikrosekunden.

Die Hardware-Programmierung

In den vergangenen Jahren wurden die FPGAs immer komplexer. Damit einhergehend stieg der Bedarf an einfacher Bedienung, denn die zunehmende Logikdichte muss weiterhin effizient zu programmieren sein. Dienten anfangs noch CAD-Werkzeuge dazu, die wenigen Logikzellen miteinander zu verschalten, werden heute FPGAs mit über 4,4 Mio. Logikzellen programmiert. Dabei steigt auch der zeitliche und logische Aufwand für die Simulation und Verifikation, die den Schaltungsentwurf überprüfen.

Erweiterter Bildverarbeitungsaufbau über Framegrabber.

© Silicon Software

Zwecks Ablösung sperriger und unkomfortabler Entwurfswerkzeuge wurde an neuen Sprachansätzen gearbeitet, Alternativen zu VHDL und Verilog sollten entstehen. Silicon Software beispielsweise arbeitet seit über 15 Jahren an FPGA-Programmierwerkzeugen, um eine größere Verbreitung zu erreichen, insbesondere bei Software-Programmierern und Applikationsingenieuren mit Bildverarbeitungsschwerpunkt. 2005 wurde das Programm „VisualApplets“ veröffentlicht, das auf einer grafischen Oberfläche basiert. Über diese lassen sich Datenflüsse aus Operatoren zusammenstellen, die einer mitgelieferten Bibliothek zu entnehmen sind. Jeder Operator liegt als Hardware-Code für das spätere FPGA-Design sowie als Software-Code vor. Dies ermöglicht eine pixelgenaue Simulation des späteren Hardware-Verhaltens. Generell gilt: Konfigurieren oder parametrisieren anstatt programmieren. Die Auseinandersetzung mit dem Timing einer Schaltung entfällt. Fehler werden angezeigt oder automatisch korrigiert. Ebenso werden Zusatzinformationen zu Ressourcenverbrauch und der erreichbaren Bandbreite dargestellt. Der Fokus liegt auf der Anwendungsentwicklung. Bei der Integration in die Software werden Parameter des Hardware-Designs, die während der Laufzeit über die Software-Anwendung verändert werden sollen, gekennzeichnet. Ein SDK-Generator erzeugt parallel zur Erzeugung des IP Core einen individuellen Software-Code mit Deklaration aller zugreifbaren Register. Hierüber kann der Anwender die Echtzeit-Fähigkeit und Integration sofort testen.

Prädestiniert für FPGAs

Doch welche Anwendungen sind nun prädestiniert für den Einsatz von FPGAs?
Generell gilt, dass Anwendungen mit zeitlich-deterministischen Anforderungen am ehesten auf FPGA-Implementationen zurückgreifen. In der Robotik ist nicht nur die Verbindung zwischen Bild- und Signalverarbeitung zur Bewegungssteuerung zeitkritisch, sondern auch die sicherheitsrelevanten Aspekte bei der Kollaboration zwischen Mensch und Maschine im gleichen Arbeitsbereich.

Schema des Echtzeit-Bildverarbeitungssystems mit Kamera, Framegrabber und Laserscanner-Anbindung.

© Silicon Software

Im Bereich der Echtzeit-Regelung wird über eine visuelle Auswertung die Konfiguration des Systems nachgeregelt. Ein Beispiel ist das Forschungsverbundprojekt „Weldone“ (innerhalb der Förderinitiative Mabrillas, die vom Bundesministerium für Bildung und Forschung unterstützt wird), in dem eine latenzfreie Steuerung der Laser­intensität beim Laserschweißen durch visuelle Kontrolle umgesetzt wurde. Ein wichtiger Aspekt dabei war die Sicherstellung der Echtzeit-Fähigkeit der Prozesse, die für die Erreichung der hohen Prozessgeschwindigkeit benötigt werden. Teilziel von Silicon Software war die Entwicklung eines Laserschweiß-Programmiersystems zur Echtzeit-Bildverarbeitung und Regelung stabiler und schneller Laserschweißprozesse, das mit Visual­Applets realisiert wurde.

Ein weiterer Bereich ist die Inline-Sortierung unterschiedlichster Pro­dukte. So wurden etwa im Segment Nahrungsmittel (Reis) und Textil (Baumwollfasern) Projekte in China und Indien realisiert: Reiskörner wurden im freien Fall auf die Reisqualität (Farbe) sowie Fremdkörper überprüft und unmittelbar über die Steuerung von Druckluftventilen aussortiert. Eine Zeilenkamera lieferte die Bilder, die innerhalb der Fallhöhe beziehungsweise der Fallzeit zu analysieren sind. Innerhalb der geringen Zeitdauer des Falls muss eine Entscheidung über die Aussortierung getroffen werden.

Schüttgut-Sortierlösung: Das ankommende Schüttgut wird von einer Zeilenkamera erfasst und innerhalb von weniger als 0,02 ms ausgewertet. Fehlerhafte Objekte werden über einen Auswurfmecha­nismus ausgeschleust.

© Silicon Software

Bei der Anwendung zur Baumwollsortierung wird die Faser auf ihre Farbqualität geprüft, wobei die zuläs­sigen Farbabweichungen in einer Datenbank als Farbraumprofil hinterlegt werden. Auch hier liefert eine Reihe mehrfacher Zeilenkameras die Ausgangsbilder, die direkt auf dem FPGA der microEnable-Framegrabberkarte ausgewertet werden. Über die I/O-Schnittstelle steuert der FPGA mit geringsten Latenzen die Aktivierung der Druckluftventile.

Ein anderes Anwendungsszenario findet sich im Bereich Recycling, wo zur Sortierung von Glasarten optische Inspektionssysteme mit einer direkten Ansteuerung von Druckventilen zur Ausschleusung eingesetzt werden.

Und last but not least mag ein System zur Erzsortierung im Bergbau als Beispiel für die FPGA-Nutzung dienen: Bei dieser Anwendung sind die genutzten Bildverarbeitungssysteme Anforderungen wie Staub, Temperaturschwankungen, schweren Objekten und Dauerbeanspruchung ausgesetzt. Die Firma Stemmer Imaging hat ein BV-System entwickelt, das FPGA-Bausteine auf Bilderfassungskarten nutzt. Die Aufgabenstellung bestand darin, bestimmte Gesteine während des Transports in sehr kurzer Zeit zu klassifizieren, ihre geometrischen Merkmale und ihre Position auf dem Fließband zu erkennen und die gefundenen Objekte anschließend über Auswerfer vom Förderband zu entfernen.

Aufgrund der optimierten Verarbeitungsroutinen von VisualApplets 2.0 und der Nutzung der FPGA-Ressourcen ermöglicht das System in dieser Bergbau-Anwendung eine Objektklassifizierung mit Erkennungszeiten von weniger als 0,02 ms. Die Bildverarbeitung umfasst die Aufnahme eines RGB-Kamerasignals, einen White-Balance-Abgleich und eine Wandlung in den HSI-Farbraum, um den Hintergrund und die Gutteile in puncto Farblichkeit zu definieren. So entstehen drei Kriterien: gut, unbekannt und Hintergrund. Auf Basis einer Bildsegmentierung mittels Blob-Analyse findet eine Klassifizierung der so gefundenen Objekte mit ihren spezifischen Merkmalen statt: die Fläche der Objekte, ihr Schwerpunkt in x- und y-Richtung, das umrandende Rechteck, ihr orthogonaler und diagonaler Umfang sowie die Kompaktheit der einzelnen Gesteinsbrocken. Die Errechnung des Schwerpunkts ist erforderlich, um die genaue Lage der Schlechtteile zu kennen und so das nachfolgende Ausschleusen über die Aktuatoren zu ermöglichen. Dabei müssen die exakte Position, der Zeitpunkt sowie die Dauer der Einwirkung durch die Aktuatoren berechnet werden, um das erkannte Fehlerteil sicher auszuschleusen. Wird auf diese Weise ein Gesteinsbrocken erkannt, der ausgesondert werden muss, moduliert der Framegrabber ein serielles TTL-Triggersignal, das über Wandlerboxen zunächst in ein RS-232-Signal und später in das RS-485-Format umgesetzt wird. Die so verarbeiteten Fehlersignale werden an zwei Steuerungseinheiten weitergeleitet, die in diesem Systemaufbau bis zu 256 Aktuatoren zum Ausstoßen der unerwünschten Teile ansteuern können.

Autor:  Michael Noffz ist Leiter Marketing und Kommunikation bei Silicon Software in Mannheim.

  • Xing Icon
  • LinkedIn Icon
Anzeige
Anzeige

Das könnte Sie auch interessieren

Anzeige
Anzeige
Anzeige
Anzeige

VDMA Machine Vision

Staffelübergabe im Vorstand

Daniel Seiler, CEO von AT – Automation Technology, wurde vom Vorstand der VDMA Fachabteilung Machine Vision zum Vorstandsvorsitzenden gewählt. Er folgt auf Dr. Olaf Munkelt, Mitbegründer und Geschäftsführer von MVTec Software, der seinen Vorsitz...

mehr...
Anzeige
Anzeige
Anzeige

IDS Imaging Development Systems

Event-basierte Bildgebung

Eine effiziente Alternative zur Highspeed-Kamera-technik mit großer Sensorauflösung und hohen Bildraten ist die Event-basierte Bildgebung. Statt kontinuierlich große Datenmengen zu erzeugen, erfasst sie nur relevante Veränderungen und liefert so...

mehr...

Eckelmann

Doppelspitze in Shanghai

Stefan Becker wurde zum Geschäftsführer der Eckelmann Automation Technology in Shanghai berufen und die Unternehmenstochter gemeinsam mit Zhongwei Huang leiten.

mehr...
Jetzt Newsletter abonnieren