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)

Gibt es Einschränkungen? – Ja, aber…

Natürlich ist ein FPGA auf die Anzahl der nutzbaren Logikelemente beschränkt. Ist dieser voll, kann nicht einfach der FPGA-Baustein gewechselt werden, da er ein fester Bestandteil der Kameraelektronik ist. Einschränkend kommt hinzu, dass ein FPGA Dinge wie Schnittstellenanbindung z.B. zu Ethernet oder USB übernehmen muss. Jedoch kann durch cleveres Programmieren viel und auch neue Features in ein FPGA gesteckt werden. Aktuelles Beispiel ist der SmartFrameRecall (Bild 4): Dabei erzeugt das FPGA kleine Vorschaubilder mit reduzierter Auflösung (Thumbnails), die mit IDs versehen an den Host-PC übertragen werden. Gleichzeitig wird das entsprechende Bild in Vollauflösung im Bildspeicher der Kamera abgelegt, der als FIFO Ringpuffer angelegt ist. Im Host-PC wird das Vorschaubild von der Anwendung analysiert. Wird das Bild in Vollauflösung benötigt, sendet die Anwendung einen Request und das Bild wird im gleichen Datenstrom wie die Vorschaubilder übertragen. Die Anwendung kann darüber hinaus auch die Region of Interest (ROI) angeben, sodass das FPGA nur den entsprechenden Bereich des Originalbildes überträgt. Die Vorteile liegen auf der Hand. Wie bei allen FPGA-basierten Features bleibt die CPU im Host-System unangetastet, was den Stromverbrauch insgesamt reduziert. Des Weiteren ermöglicht es der SmartFrameRecall, dass große Sensoren mit hohen Frameraten auch über GigE voll ausgereizt und bei voller Geschwindigkeit verwendet werden können oder die Hardware-Aufwendung verringert und somit auch die Hardware-Kosten reduziert werden können. Konkret veranschaulicht dies das Beispiel eines automatisierten Kommissionierungssystems. Werden zur vollständigen Erfassung und Verfolgung von beispielsweise Pharmapackungen üblicherweise bis zu acht Industrie-PCs und 16 Industriekameras benötigt, konnte ein Kunde durch den Einsatz von Industriekameras mit SmartFrameRecall sieben Industrie-Rechner im Gegenwert von 14.000€ einsparen. Auch durch den Wegfall von Kabeln konnten die Kosten reduziert werden. Der minimale Aufpreis für die smarteren Industriekameras war daher schnell kompensiert.

Bild 4 | Beim SmartFrameRecall erzeugt das FPGA
kleine Vorschaubilder mit reduzierter Auflösung, die
mit IDs versehen an den Host-PC übertragen werden. (Bild: Matrix Vision GmbH)

Fazit

Durch Kameras mit Smart Features können im Gesamtsystem durch Wegfall von Kabeln, Controllern und der Reduzierung der Host-PC-Leistung weit mehr Kosten gespart werden, als es durch den Einsatz von ´asiatischen Low-Cost-Kameras´ möglich wäre. Ferner kann die Leistungsfähigkeit des Gesamtsystems verbessert und die Flexibilität erhöht werden, da das System einfach skaliert werden kann. Mit der Einführung der ersten Ne-x-t Generation Kamera hat Matrix Vision seit jeher das Ziel verfolgt, die Funktionalität ihrer Kameras mit smarten Features kontinuierlich zu erweitern und dadurch einen echten Mehrwert für Kunden zu bieten.

Themen:

| Fachartikel

Ausgabe:

inVISION 4 2017
Matrix Vision GmbH

Das könnte Sie auch Interessieren

Bild: TeDo Verlag GmbH
Bild: TeDo Verlag GmbH
Webinar Spectral Imaging

Webinar Spectral Imaging

Am 7. Mai findet um 14 Uhr das inVISION TechTalk Webinar ‚Spectral Imaging‘ statt. Dabei stellen Vision & Control (Tailored Optics and Lighting for Hyper- and Multispectral Imaging), Lucid Vision (Advanced sensing with latest SWIR and UV cameras) und Baumer (Inspect the invisible with powerful SWIR & UV Cameras) verschiedene Trends zu SWIR, UV und Hyperspectral Imaging vor.