Smartere Kamera(-features)

Smartere Kamera(-features)

Industriekameras mittels FPGA intelligenter machen

Industriekameras sind meist einfach gestrickt: Sie nehmen Bilder auf und senden diese an ein Host-System. Dort bereitet der Kameratreiber die Daten auf, welche die Anwendung auf dem gleichen System verarbeitet. Je nach Datenvolumen kann so selbst ein High-End-System schnell an seine Grenzen kommen. Warum also nicht Industriekameras mittels FPGA smarter machen und diese die Bilddaten aufbereiten lassen, sodass sich das Host-System voll auf die Anwendung konzentrieren kann?

 datenfluss der mvBlueCougar-X. In Verbindung mit dem speicher, aber auch ohne, kann das FPGA der Kamera viele Aufgaben selbst ?bernehmen. (Bild: Matrix Vision GmbH)

Bild 1 | Bilddatenfluss der mvBlueCougar-X. In Verbindung mit dem Bildspeicher, aber auch ohne, kann das FPGA der Kamera viele Aufgaben selbst übernehmen. (Bild: Matrix Vision GmbH)

An und für sich ist ein FPGA nichts Neues, immerhin wurde das erste Patent schon im Jahre 1985 vergeben. Jedoch steckt in dem Baustein ein Potenzial, welches clever ausgeschöpft, eine bildverarbeitende Industriekamera wesentlich smarter macht. Nicht verwechseln darf man eine smarte Industriekamera mit einer Smart Kamera. Diese vereint eine Industriekamera und einen vollwertigen PC mit Prozessor, Speicher, Schnittstellenkarte, etc. in einem Gehäuse. Das Smarte an einer Industriekamera kann man am besten anhand des Bilddatenflusses der mvBlueCougar-X GigE-Farbkamera darstellen (Bild 1). In Verbindung mit dem Bildspeicher, aber auch ohne, kann das FPGA der Kamera viele Aufgaben selbst übernehmen. Neben der Generierung der Statistikdaten verwaltet diese beispielsweise die Bildpufferung selbst, welche durch Pre-Triggering einen Blick in die Vergangenheit ermöglicht. Auch die Flat-Field-Korrektur kann direkt auf der Kamera durchgeführt werden, d.h. jeder einzelne Pixel des Sensors wird korrigiert, sodass es bei der Aufnahme von homogenen Objekten nicht zu unterschiedlichen Pixelwerten kommt (was ohne diese Korrektur bei Sensoren ein normaler Effekt ist). Hinter dem Begriff Frame Average versteckt sich eine Entrauschungsfunktionalität, welche zum einen das Bildrauschen reduzieren und zum anderen die Bewegung in einem Bild kompensieren kann. Neben Binning oder Decimation, also dem Kombinieren oder Auslassen benachbarter horizontaler oder vertikaler Pixel mit und ohne Mittelung der Grauwerte, kann die Kamera auch viele Optimierungen zur Verbesserung der Bildqualität übernehmen. Dazu gehören sowohl Gain und Offset, als auch allgemeine Lookup-Tabellen, also Umsetzungstabellen, mit welchen die Bilder beispielsweise invertiert oder anhand eines Schwellwertes binarisiert werden können. Bei Farbkameras kann das FPGA zusätzlich einen automatischen Weißabgleich durchführen, debayern, also aus dem Bild ein Farbbild machen sowie Farben mittels Matrizen korrigieren, d.h. eine Matrix mit sensorspezifischen Korrekturkoeffizenten, ein Parameter für die Farbsättigung, wirksam für alle Bildformate (RGB und YUV) und die Wahl des Farbraums des Anzeigegerätes. Last but not least kann die Kamera noch eine Gamma-Korrektur (LUTLuminanz) durchführen, welche das Bild im Bayer-Pfad oder im RGB-Pfad in die Richtung hin ändert, wie das menschliche Auge Licht und Farbe wahrnimmt. Das visuelle System des Menschen nimmt die Helligkeit als Logarithmus der aktuellen Lichtintensität wahr. Aus diesem Grund muss ein Monitor für eine natürliche Darstellung mit einem Gamma-Wert von üblicherweise 2,2 gegensteuern (Bild 2). Dies führt dazu, dass die linearen Bilder einer digitalen Kamera wiederum am Monitor unnatürlich wirken. Dies kann einfach durch den Reziprok des Gamma-Wertes des menschlichen Auges ausgeglichen werden. Doch die smarte Verwendung des FPGAs ist nicht nur auf den Bereich ´Bilddaten und deren Vorverarbeitung´ begrenzt, nein, das FPGA kann auch hardware-nahe Aufgaben wie die Blitzansteuerung übernehmen und unterstützt zeitkritische I/O- und Erfassungssteuerung. Durch die zeitkritische I/O- und Erfassungssteuerung können beispielsweise Triggersignale flexibel erzeugt, mehrere Kameras synchronisiert oder Bildsequenzen mit unterschiedlichen Blitz- und Belichtungseinstellungen on-the-fly schnell erzeugt werden. Blitz-Controller und anderen Steuerungskomponenten werden nicht mehr benötigt, da die Kamera-Software die Steuerung selbst übernimmt. Diese Echtzeit-Reaktionen sind mit Standard-Netzwerkprotokollen und Standard-PC Betriebssystemen nicht möglich.

a+b: Gamma-Ausgleich eines Monitors (links); Gamma-Korrektur in der Kamera, um einen idealen Gamma-Wert (rot) zu erhalten (rechts) (Bild: Matrix Vision GmbH)

Bild 2 | Gamma-Ausgleich eines Monitors (oben); Gamma-Korrektur in der Kamera, um einen idealen Gamma-Wert (rot) zu erhalten (unten) (Bild: Matrix Vision GmbH)

Gamma-Ausgleich eines Monitors (links); Gamma-Korrektur in der Kamera, um einen idealen Gamma-Wert (rot) zu erhalten (rechts) (Bild: Matrix Vision GmbH)

(Bild: Matrix Vision GmbH)

Gamma-Korrektur

Die Vorteile durch die auf der Kamera durchgeführten, bildvorbereitenden Funktionen lassen sich über die Gamma-Korrektur verdeutlichen: Das Bildmaterial der USB 3.0 Industriekamera mvBlueFox3-2024 mit einem 2,4MP Pregius CMOS-Sensor von Sony hat eine ADC-Auflösung von 12Bit. Eine 12Bit nach 12Bit host-basierte (also über den Treiber) Gamma-Korrektur führt auf einem 4-Kern i7 (2,5GHz) Host-System unter Windows 10 inklusive der Live-Bilddarstellung zu einer CPU-Last von 6 bis 7%. Ohne Gamma-Korrektur beträgt die CPU-Last ca. 1,5%. Bei 8Bit Auflösung und kamerabasierter Gamma-Korrektur wird hingegen eine CPU-Last von 1% erzeugt. Ein anderes Beispiel mit der gleichen Kamera als Farbversion: Bei 160fps und einem host-seitigem Debayering ist das System voll ausgelastet, wohingegen die zusätzliche Last auf dem Host-System nicht messbar ist, sobald das RGB auf der Kamera erzeugt wird. Der Frage, ob die erhöhte CPU-Last nicht durch ein leistungsstärkeres Host-System auszugleichen ist, kann man entgegnen, dass zum einen auch beim Aufrüsten irgendwann Grenzen erreicht und zum anderen das Host-System schon bei der Planung festgezurrt werden muss. Kommt es zu Konzeptänderungen, dass beispielsweise doch mehrere Kameras zum Einsatz kommen sollen, ist eine Skalierung selbst bei leistungsstarken Industrie-PCs nur schwer oder gar nicht möglich. Embedded Systeme haben wir hier noch gar nicht berücksichtigt. Ein weiteres Plus ist, dass die Kamera-basierte Vorverarbeitung der Bilddaten über die volle Auflösung (je nach Sensor 10 bis 12Bit) geht. Host-basierte Vorverarbeitung arbeitet mit der Auflösung, die nach der Übertragung am System ankommt. Um Bandbreite zu sparen, sind das meistens 8Bit. Hier können wichtige Information schon verloren sein. Ein anschauliches Beispiel ist auch hier wieder die Gamma-Korrektur. Bild 3 links zeigt die lineare Kompression der Bilddaten auf 8Bit, während rechts eine Gamma-Korrektur eine höhere Dynamik im 8Bit Bild erreicht, was dazu führt, dass im dunklen Bereichen des Bildes der Fahrer wieder sichtbar wird. Ein weiterer Vorteil ist die Updatefähigkeit. Neue Features oder Optimierungen von bestehenden Anwendungen können ohne Kameraaustausch einfach durch ein Firmware-Update in das FPGA geladen werden.

a+b: Das links zeigt die lineare Kompression der daten auf 8Bit, w?hrend rechts eine Gamma-Korrektur eine h?here Dynamik im 8Bit erreicht. (Bild: Matrix Vision GmbH)

Bild 3 | Das Bild links zeigt die lineare Kompression der Bilddaten auf 8Bit, während rechts eine Gamma-Korrektur eine höhere Dynamik im 8Bit-Bild erreicht. (Bild: Matrix Vision GmbH)

(Bild: Matrix Vision GmbH)

Seiten: 1 2Auf einer Seite lesen

Themen:

| Fachartikel

Ausgabe:

inVISION 4 2017
Matrix Vision GmbH

Das könnte Sie auch Interessieren