Bildverarbeitung in Kameras und Rechner verschmilzt Rollenverteilung ade

man about the house

Bild: iStock, sturti
05.10.2017

Anwendungen der Bildverarbeitung im industriellen Umfeld kommen meist mit Datenraten aus, für die Standardschnittstellen ausreichen. Ein GigE Vision Server mit Ethernet-Schnittstelle löst nun die klassische Rollenverteilung von Kamera und Rechner auf.

Jedes Bildverarbeitungssystem besteht prinzipiell aus zwei grundlegenden Funktionseinheiten: der Bildquelle und der Bildsenke. Als Bildquelle kommen im Umfeld der industriellen Bildverarbeitung heutzutage üblicherweise kompakte CMOS-Kameras zum Einsatz. Die Bild­senke ist die Verarbeitungseinheit, die aus dem Bild Ergebnisse extrahiert. Dabei handelt es sich derzeit zumeist um klassische PC-Systeme auf Basis von Intel-Prozessoren und Windows.

Die Kommunikation zwischen Bildquelle und Bildsenke kann über verschiedene Schnittstellen stattfinden, die je nach Anforderungen an Kabellänge, Datenrate und Systemtopologie jeweils individuelle Vorteile bieten. Hochauflösende Kameras mit beeindruckenden Bildraten generieren extreme Datenmengen, die nach optimierten Schnittstellen verlangen und somit spezielle Interfacekarten im Rechner erfordern - zum Beispiel CoaXPress, CameraLink, CameraLink HS.

Die Definition von Bildquelle und Bildsenke beschreibt bereits bildlich, dass die Übertragung der Bilddaten, also des substantiellen Datenvolumens, in der Regel unidirektional erfolgt. Dieser Tatsache tragen die genannten Kameraschnittstellen insofern Rechnung, dass die Übertragungsbandbreiten zwischen Quelle und Senke unsymmetrisch ausgelegt sind. Die meisten Applikationen im industriellen Umfeld kommen allerdings mit weniger anspruchsvollen Kameras aus, deren Datenraten eine Übertragung über gebräuchliche und in normalen PC-Systemen vorhandenen Standardschnittstellen wie USB, Ethernet, Firewire erlauben. 

Vorteile Ethernet-Schnittstelle

Die Ethernet-Schnittstelle, heutzutage zumeist als Gigabit-Variante
(1GigE) ausgeführt, bietet die Besonderheit des „Full-Duplex“-Betriebs. Über diese Schnittstelle können im Gegensatz zu den weiteren oben aufgeführten Schnittstellen gleichzeitig und ohne gegenseitige Beeinflussung Daten mit voller Bandbreite empfangen und gesendet werden. 

Erst bei vollständiger Auslastung der Übertragungsbandbreiten in beide Richtungen kann die Übertragung des notwendigen Kontrollprotokolls, der sogenannten Heartbeat-Pakete, versagen, was zum Abbruch der Verbindung führt. Aber selbst diesem Effekt kann mit entsprechenden Einstellungen, dem Interpacket-Delay, entgegengewirkt werden. Die Ethernet-Schnittstelle erlaubt also die Auflösung der klassischen Rollenverteilung von Bildquelle (Kamera) und Bildsenke (Rechner) für die Bildverarbeitung.

Mittlerweile haben sich fast alle Hersteller von industriellen Kameras mit GigE-Schnittstelle und industrieller Bildverarbeitungssoftware auf den GigE-Vision-Standard als Hardwareprotokoll und GenICam als Software Interface geeinigt. Durch die Verwendung dieser Hard- und Softwarestandards besteht eine sehr umfangreiche und umfassend getestete Kompatibilität zwischen etablierten Kameras und Softwarepaketen auf den verschiedensten Rechnersystemen.

Bemerkenswert ist, dass der GigE-Vision-Standard als Hardwareprotokoll einschließlich GenICam als Softwareinterface nicht auf die 1GigE-Schnittstelle beschränkt ist. Alle beschriebenen Vorzüge kommen gleichermaßen auch beim Einsatz von Ethernet-Schnittstellen mit höheren Bandbreiten, wie zum Beispiel 10GigE, zum Tragen. Auf die saubere begriffliche Trennung von Hardwareprotokoll und Software Interface muss bei diesen Betrachtungen unbedingt Wert gelegt werden, da eine GenICam-Unterstützung als Software Interface ebenfalls vom CoaxPress gefordert wird. Bei oberflächlicher Verwendung der Begrifflichkeiten besteht ein hohes Risiko von Missverständnissen.

Rollenverteilung ade

Mit dem Common Vision Blox (CVB) GigE Vision Server hat Stemmer Imaging durch Ausnutzen der beschriebenen Eigenschaften der Ethernet-Schnittstelle bei voller Unterstützung des GigE-Vision-Standards und mit entsprechender Zertifizierung die klassische Rollenverteilung zwischen Kamera und Rechner aufgehoben. Unter Verwendung des Standard-Softwaremoduls aus der Programmierbibliothek CVB kann nun auch der Rechner als Bildquelle fungieren und Bilddaten dank der Full-Duplex-Übertragung der Ethernet-Schnittstelle über GigE Vision an andere Bildsenken schicken. Da es sich um eine vollständige GigE-Vision-Unterstützung handelt, verhält sich diese Bildquelle exakt so, wie eine „normale“ GigE-Vision-Kamera und bietet auch diesbezügliche Kommunikation zu GigE-Vision-kompatiblen Bildsenken.

Was zunächst wie eine technische Spielerei anmutet, eröffnet auf den zweiten Blick ungeahnte Möglichkeiten, die zu völlig neuen Systemtopologien führen werden. Insbesondere seit Stemmer Imaging nun eine CVB-Version für ARM-Prozessoren und Linux vorgestellt hat, müssen alte Denkweisen bei der Auslegung von Systemen hinterfragt werden.

Dezentrale-Embedded-Systeme

Gerade im Zusammenspiel mit den aktuellen System-On-Chip-Plattformen (SoC) verschwimmen die bisher klaren Grenzen zwischen Bildverarbeitung mit „intelligenten Kameras“ und „PC-basierter Bildverarbeitung“. Nun können dezentrale, kompakte Embedded Systeme auf Basis von hochspezialisierten SoC - zum Beispiel Intel Cyclone V oder NVIDIA Jetson TX1 - sogar die Bilddaten von mehreren Kameras aufnehmen, vorverarbeiten und die generierten Ergebnisbilder wiederum als GigE-Vision-Kamera ausgeben. Dabei kann die komplette Steuerung und Ergebnisübertragung völlig transparent über die GenICam-Funktionalität erfolgen und erfordert somit keine proprietäre Anpassung der folgenden Bildsenke. 

Dabei wiederum kann der GenICam-Standard seine Flexibilität ausspielen: Die Kamera teilt der Software selbst mit, welche speziellen Features von der Kamera zur Verfügung gestellt werden. Im Falle des GigE Vision Servers sind diese „Kamera-Features“ frei programmierbar und können dadurch Systemfunktionen beschreiben, die weit über reine Kamerafunktionen hinausgehen. Die so geschaffene „virtuelle“ Kamera kann über die entsprechenden Kamera-Features komplett ferngesteuert werden. Die CVB-GigE-Vision-Server-Technologie steht also jedem Anwender einer GigE-Vision-kompatiblen Software auf jedweder Bildsenke zur Verfügung – unabhängig von Hersteller, Betriebssystem und Plattform.

Die bereits vorhandene Rechenleistung der verfügbaren SoC und die Vielfalt der unterstützten Schnittstellen sind beeindruckend. Durch mehrere USB3-, GigE- und MIPI-Schnittstellen bieten sich aktuelle SoC als dezentrale Bildverarbeitungssysteme zur Aufnahme verschiedenster Bildquellen an.

Mögliche Anwendungsfälle reichen von der reinen lokalen Umsetzung einer USB- oder MIPI-Kamera auf den GigE-Vision-Standard, über die lokale Vorverarbeitung eines einzelnen Kamera­bildes auf dem FPGA (etwa Intel Cyclone V mit Weitergabe des vorverarbeiteten Kamerabildes über GigE Vision) bis hin zur Aufnahme mehrerer Kameras und der Weitergabe kompletter Ergebnisbilder nach Vorverarbeitung auf der lokalen GPU eines NVIDIA Jetson TX1 SoC. Auch der Bau einer eigenen GigE-Vision-kompatiblen Kamera unter der Verwendung des CVB GigE Vision Servers auf einem ARM-basierten SoC ist möglich. Lediglich ein CCD oder CMOS-Sensor muss noch an das System angebunden werden. 

Definitionen verschwimmen

Je länger sich der Anwender mit den Möglichkeiten des GigE Vision Servers auf SoC-Plattformen beschäftigt, umso mehr verschwimmen die bekannten Definitionen. Ob dieser lokale Bildverarbeitungsknoten des Gesamtsystems nun als „Rechner“, als „Kamera“, „intelligente Kamera“ oder „Vision Sensor“ bezeichnet wird, obliegt letztendlich dem Betrachter.

Firmen zu diesem Artikel
Verwandte Artikel