LINE SCAN BAR >

Beeindruckend schnell und präzise,

perfekt für flache und breite Anwendungen

Mehr

PRISMENBASIERTE SENSOREN >

Teil 2 unserer Serie zu Farbzeilenkameras

Mehr

JETZT AUCH IN DER APP! >

Das Handbuch der Bildverarbeitung

Mehr

Embedded GigE Vision Server

Prinzipiell besteht jedes Bildverarbeitungssystem 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 Bildsenke 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 dem Betriebssystem 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 (z.B. 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 standardmäßig vorhandenen Standardschnittstellen erlauben (USB, Ethernet, Firewire).

Vorteile der Ethernet-Schnittstelle

Die Ethernet-Schnittstelle, heutzutage zumeist als Gigabit-Ethernet (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 (Heartbeat-Pakete) versagen, was zum Abbruch der Verbindung führt. Aber selbst diesem Effekt kann mit entsprechenden Einstellungen (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 (z.B. 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 zumindest ein hohes Risiko von Missverständnissen.

CVB mit vollständiger GigE Vision-Unterstützung

Mit dem CVB GigE Vision Server hat STEMMER IMAGING durch die Ausnützung 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 Common Vision Blox 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 – also Bildübertragungen - zu allen 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 und kompakte Embedded Systeme

Gerade im Zusammenspiel mit den aktuellen System-On-Chip (SoC) Plattformen, 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 (z.B. 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 unmittelbar 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 beeindruckend. Durch mehrere USB3-, GigE- und MIPI-Schnittstellen bieten sich aktuelle SoC als dezentrale Bildverarbeitungssysteme zur Aufnahme verschiedenster Bildquellen an.

Anwendungsbeispiele

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 Kamerabildes auf dem FPGA z.B. des Intel Cyclone V und der Weitergabe des vorverarbeiteten Kamerabildes über GigE Vision, bis hin zur Aufnahme mehrerer Kameras und der Weitergabe kompletter Ergebnisbilder nach rechenintensiver Vorverarbeitung auf der lokalen GPU eines NVIDIA Jetson TX1 SoC. Auch dem Bau einer eigenen GigE Vision kompatiblen Kamera unter der Verwendung des CVB GigE Vision Servers auf einem ARM basierten SoC steht nichts im Wege. Lediglich ein CCD oder CMOS-Sensor muss noch an das System angebunden werden.

Je länger man sich 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.