Bildverarbeitungsstandards
Konkurrenz oder Ergänzung?
Mit der Definition von Camera Link wurde Ende des letzten Jahrhunderts der erste Bildverarbeitungsstandard auf den Weg gebracht. Inzwischen sind weitere Standards wie GenICam, GigE Vision oder USB3 Vision hinzugekommen. Wie stehen diese zueinander?
Die Veröffentlichung der ersten Version des Camera-Link-Standards durch die Automated Imaging Association (AIA) im Jahr 2000 gilt als ein Meilenstein in der Geschichte der industriellen Bildverarbeitung: Ein serielles Kommunikationsprotokoll für schnelle Bildübertragungen mit einheitlicher Schnittstelle für Kameras, Framegrabber und Kabel entstand. Sogar Stecker und unterschiedliche Konfigurationsmöglichkeiten für unterschiedliche Übertragungsraten wurden vorgegeben. Doch trotz dieses Fortschritts gibt es auch Nachteile: Jeder Hersteller entwickelte seine eigenen Treiber und sein eigenes Feature-Set mit eigenen Namen. So war es gang und gäbe, dass die gleiche Kamera je nach Framegrabber- und Treiber-Hersteller unterschiedliche Funktionalitäten aufweisen konnte. Entscheidet sich also ein Anwender für einen Hersteller und passt seine Software an, ist ein Wechsel – ob freiwillig oder unfreiwillig – nicht ohne große Software-Anpassung möglich. Zudem waren und sind Camera-Link-basierte Lösungen durch die speziellen Kabel sowie den zusätzlichen Framegrabber eher hochpreisig angesiedelt.
Mit dem Aufkommen der Consumer-Schnittstellen und dem Siegeszug von USB und Ethernet lag es auf der Hand, dass der industrielle Bildverarbeitungs-Markt Kameras für diese Schnittstellen entwickelte. Schließlich eröffnet eine höhere Verbreitung der Schnittstellen zum einen neue Anwendungsmärkte und zum zweiten profitieren sowohl Anwender als auch Hersteller von Bildverarbeitungs-Produkten aufgrund des Massenmarktes von günstigen Preisen für Komponenten und Bauteile.
GenICam als Basis aller Standards
Die standardisierte Schicht zwischen Treiber und Kamera (On-the-Wire) ermöglicht es, dass standardkonforme Treiber und Kameras einfach getauscht werden können – auch herstellerübergreifend.
© Matrix Vision2003 wurde mit der Arbeit am Standard Generic Interface for Cameras – GenICam – unter der Schirmherrschaft der European Machine Vision Association (EMVA) begonnen und 2006 das erste Modul ratifiziert. GenICam abstrahiert den Zugang zu den Kamera-Features. Eine Namenskonvention (Standard Feature Naming Convention, SFNC) legt hierbei die Bezeichnungen und die Eigenschaften der Standard-Features herstellerübergreifend fest: Ist eine Kamera standardkonform, heißen die Features über Herstellergrenzen hinweg gleich und zeigen das gleiche Verhalten. Zusätzlich erlauben spezifische Features außerhalb der SFNC eine Abgrenzung der Anbieter untereinander (Quality of Implementation). Ergo lässt sich eine standardkonforme Kamera problemlos mit einem standardkonformen Treiber eines anderen Herstellers betreiben.
Für USB 2.0 und die zahlreichen USB-2.0-Industriekameras, die ab 2003 eingeführt wurden, kam der GenICam-Standard zu spät, so dass die meisten Hersteller bei ihren proprietären Treibern und Feature-Bezeichnungen blieben.
Für die Consumer-Schnittstelle Gigabit Ethernet (GigE) mit einer Bruttobandbreite von 1 Gbit/s, die sich ab 2006 flächendeckend durchsetzte, kam der Standard zum richtigen Zeitpunkt. Doch hier ist GenICam nur die halbe Miete: Die Features würden zwar gleich heißen, das Setzen und Lesen der Features wäre allerdings weiterhin proprietär und jeder Hersteller würde seine eigene Treiber-Lösung auf den Markt bringen.
Um dies zu verhindern, haben mehrere führende Bildverarbeitungshersteller mit GigE Vision einen Bildverarbeitungsstandard für Gigabit Ethernet definiert und 2006 veröffentlicht. Dieser Standard gibt eine Transportschicht für die Kamera vor, die das Finden, das Konfigurieren, das Streamen der Daten sowie die Behandlung von Ereignissen regelt und eine Schnittstelle zu GenICam herstellt. Gleichzeitig wird sozusagen die 'Intelligenz' auf die Kamera ausgelagert, das heißt, die Kamera stellt eine XML-Datei zur Verfügung, die alle von der Kamera unterstützten Features sowie die dazugehörenden Featureset-Register auflistet. Des Weiteren läuft die Firmware auf der sich selbst bootenden Kamera.
Somit wird GigE Vision zum 'On-the-wire'-Standard: Ein Treiber ruft lediglich die XML-Datei der Kamera ab und liest und setzt die Kamera-Register. Da dies jeder Treiber – herstellerunabhängig – macht, lässt sich jede GigE-Vision-Kamera mit jedem GigE-Vision-kompatiblen Treiber betreiben.
Eine einfache Erweiterung des IEEE-Standards ermöglicht Dual Gigabit Ethernet und demzufolge eine Erhöhung der Bruttobandbreite auf 2 Gbit/s. 'Link Aggregation' heißt das Zauberwort, mit dem sich Kanäle in vorhandenen Gigabit-Ethernet-Netzwerken bündeln lassen. Die Handhabung wird dadurch nicht komplizierter, da gebündelte Leitungen weiterhin als eine Schnittstelle in der Software erscheinen.
Der nächste Schritt bei Gigabit Ethernet ist 10-Gigabit-Ethernet mit einer Bruttobandbreite von 10 Gbit/s. Netzwerk-Komponenten sind zwar verfügbar, aber ein Wechsel ist in den meisten Fällen (noch) nicht wirtschaftlich – ergo wird es noch dauern, bis sich 10-GigE-Netzwerke durchgesetzt haben. GigE Vision unterstützt beide Erweiterungen der Gigabit-Ethernet-Schnittstelle.
Verbesserungen durch USB3 Vision
Mit der Consumer-Schnittstelle USB 3.0 hat die beliebte, aber in die Jahre gekommene USB 2.0 im Jahr 2010 die nötige Auffrischung erhalten; eine Bruttobandbreite von 480 Mbit/s war einfach nicht mehr zeitgemäß. Dank der Rückwärtskompatibilität konnte sich auch die neue Generation schnell durchsetzen; hier findet sich mittlerweile ebenso kaum eine neue PC-Hardware, die nicht mit USB 3.0 ausgestattet ist. Die Vorteile liegen auf der Hand: Die USB-3.0-Schnittstelle unterstützt eine Bruttobandbreite von 5.000 Mbit/s, wobei in der Version 3.1 bereits eine Verdopplung angekündigt wurde.
Logische Konsequenz der positiven Erfahrungen, Feedbacks und höheren Wachstumsraten, die die Bildverarbeitungshersteller mit dem GigE-Vision-Standard gemacht und erhalten haben, war, bei der USB-3.0-Schnittstelle Gleiches zu tun: So wurde 2013 der USB3-Vision-Standard veröffentlicht. Wie der Name vermuten lässt, ist der Standard mit GigE Vision vergleichbar und basiert ebenso auf GenICam. Dieses Mal ist jedoch darüber hinaus die Mechanik Teil des Standards – so ist zum Beispiel vorgegeben, wie verschraubbare Kabelanschlüsse auszusehen haben. Damit ist die Schnittstelle insgesamt robuster.
Einfacher Schnittstellenwechsel
Die gemeinsame GenICam-Basis der Standards ist für eine weitere programmiertechnische Überraschung gut: Neben der Tatsache, dass Kameras herstellerübergreifend einsetzbar sind, ist es möglich, die Schnittstelle zu wechseln – USB3-Vision-Kamera wegnehmen, GigE-Vision-Kamera anschließen und umgekehrt. Durch GenICam sind die Features gleich. Voraussetzung ist, dass die neue Kamera die Features unterstützt und im Code eingebunden wird. Im Quellcode muss der Anwender im besten Fall nur eine einzige Zeile anpassen, wie das folgende Pseudo-Code-Beispiel zeigt:
#include <TREIBER_API_HEADER.h>
#include <GENICAM_API_HEADER.h>
// Initalisierung Kamera
Treiber::DeviceManager devMgr;
Treiber::Device pDev = getDeviceByProduct("KAMERA_USB3_VISION");
// NEU: Treiber::Device pDev = getDeviceByProduct("KAMERA_GIGE_VISION ");
// Kamera-Features anpassen
GenICam::CounterAndTimerControl catc (pDev);
catc.timerSelector.writeS( "Timer1" );
catc.timerDelay.write( 0. );
…
Durch die 'On-the-Wire'-Standards und GenICam ist sogar ein Wechsel der Schnittstelle einfach möglich – vorausgesetzt, die Kameras unterstützen die gleichen Features.
© Matrix VisionDer Teil mit den Anpassungen der Kamera-Features bleibt unangetastet. Handelt es sich zudem um eine Bildverarbeitungsapplikation, die eine standardkompatible Bildverarbeitungsbibliothek verwendet, sind hier ebenfalls keine weiteren Code-Änderungen notwendig.
Ferner wird es für Hersteller von Bildverarbeitungsbibliotheken einfacher: Sobald die Software den Standard unterstützt, ist sie mit jeder kompatiblen Kamera verwendbar. So entfallen die früher notwendigen proprietären Anbindungen der Hardware- oder Software-Hersteller und damit eine weitere Fehlerquelle. Für den Anwender entsteht ein breites Software-Angebot und die Anbindung der Hardware kann kaum komfortabler sein.
Grundsätzlich stärken Standards wie GenICam, GigE Vision und USB3 Vi-sion das Vertrauen der Anwender, sie heben die industrielle Bildverarbeitung auf eine höhere Qualitätsebene und vereinen unterschiedliche Techniken. Anwender werden flexibler, so dass sich beispielsweise bei einem Designwechsel sowohl Kamera als auch Schnittstelle herstellerübergreifend austauschen lassen. Und last but not least sind Bildverarbeitungsstandards keine statischen Einheiten, sondern sie entwickeln sich stetig weiter – beispielsweise wird Version 3.0 von GenICam auch 3D-Kameras unterstützen.
Autor:
Ulli Lansche ist Technischer Redakteur bei Matrix Vision in Oppenweiler.












