Vision-Abläufe vereinfachen

Vision-Abläufe vereinfachen

Grafische Pipeline-Verarbeitung mit Datenfluss-Prinzip

Vielfach werden heute Programmier-Bibliotheken mit fertigen API-Funktionen verwendet. Obwohl sie Funktionen zur Verarbeitung von Bildern bereitstellen, ist das Erstellen einer kundenspezifischen Applikation aufwändig und fehleranfällig. Um aus einer ersten schnellen Lösung eine robust funktionierende Applikation zu erstellen, ist erheblicher Aufwand nötig, der zu Projektbeginn häufig unterschätzt wird. Letztlich werden Spezialisten benötigt, die Expertise für die Bildverarbeitung und Maschinensteuerung mitbringen und programmieren können. Die Software nVision adressiert diese Problematik und bietet eine einfach anzuwendende und kostengünstige Alternative.
Sie ist eine Programmierumgebung für Bildverarbeitungsanwendungen, die das Datenfluss-Prinzip verwendet. Dabei gibt es kein Programm mehr, welches die Daten Schritt für Schritt bearbeitet. Sie fließen vielmehr durch das Programm, in etwa so wie Wasser durch ein Rohrleitungssystem. Damit lassen sich Lösungen schneller erstellen, und die Ergebnisse sind intuitiv und weniger fehleranfällig. In Anlehnung an die Rohrleitungs-Metapher werden die Datenfluss Programme Pipelines genannt.

Praktische Rohrleitungen

Mit der Software lassen sich Anwendungen aus einzelnen Komponenten aufbauen. Der Anwender wählt dazu die Einzelschritte aus einem Menü aus und die Software erstellt automatisch einen Ablauf. Dieser kann als Datenfluss-Programm auf weitere Bilder angewandt werden, wobei die Bilder von Kameras oder Dateien kommen können. Interaktive Werkzeuge liefern bei Bedarf Hilfestellungen und Informationen, die bei der Programm-Erstellung und Parametrierung sehr hilfreich sind. Ein Beispiel für diese Unterstützung ist die Vorschau in den einzelnen Pipeline-Knoten: automatisch wird das Ergebnis eines Schrittes als kleines Live-Bild, Grafik oder Text angezeigt. Für eine qualitative Prüfung eines Ablaufs ist das äußerst nützlich. Bei Bedarf wird die Vorschau mit nur einem Mausklick fenstergroß. Nicht alle Anwendungen lassen sich in einen linearen Ablauf pressen, Verzweigungen und Schleifen werden zu ihrer Lösung benötigt. Dies erfolgt in einer grafischen Umgebung, mit der verzweigte Abläufe erstellt werden. Es werden die bekannten Datenfluss-Prinzipien verwendet. Verzweigte und lineare Pipelines fügen sich bestens zusammen. Pipelines lassen sich strukturieren, in Unter-Pipelines und in verschiedene Schleifen. Diese werden implizit mit spezifischen Knoten definiert, und die Schleifen-Ausführung wird bestimmt durch die Daten, die durch die Schleife fließen.

Schnelle Entwicklung

Einer der häufigsten Fehler beim Programmieren – eine Schleife einmal zu wenig oder einmal zu oft auszuführen – wird damit unmöglich. Pipelines sind von Natur aus weniger fehleranfällig und sorgen für weniger Fehlersuche und kürzere Entwicklungszeit. Für die schnelle Entwicklung der Pipelines gibt es eine große Zahl fertiger Knoten mit Funktionen: Bilderfassung mit GigE Vision bzw. USB3 Vision aller Kamerahersteller, Verarbeitung mit Filtern und morphologischen Funktionen, Transformationen, statistischen Auswertungen, geometrischer Mustervergleich, Vermessung, 1D/2D-Code-Dekodierung und OCR.

Herstellerunabhängig

nVision ist mit seinen Hilfsmitteln gut für schnelles Prototyping geeignet, aber seine Anwendungsmöglichkeit endet damit nicht. Für eine fertige Lösung ist eine Verbindung zur Außenwelt nötig. Neben den Knoten für Kamera-Interfaces existieren auch Knoten, mit denen digitale und analoge EA-Signale über EA-Hardware oder gebräuchliche Feldbusse eingelesen und ausgegeben werden können. Damit kann z.B. auf externe Trigger-Signale reagiert werden und es können – abhängig von der Bildverarbeitung – Signale zur Steuerung anderer Geräte ausgegeben werden. Außerdem gibt es Knoten zum Schreiben und Lesen von Dateien und Daten aus Datenbanken. Der vollständige Satz an Bildverarbeitungs-Funktionen wird ergänzt durch Knoten zur Programmier-Unterstützung, z.B. für Mathematik, Logik und Zeichenketten-Verarbeitung. Zudem ist die Software ein Client-Server-System. Mit dem Designer erstellt und parametriert man Anwendungen. Die Ausführung der Anwendungen, zusammen mit einer optionalen maschinentauglichen Anzeige, wird von der nVision Runtime durchgeführt. Designer und Runtime können auf unterschiedlichen, über Netzwerk verbundenen Rechnern laufen. Der Designer kann sich mit einer entfernten Runtime verbinden und ermöglicht dadurch die Entwicklung und Parametrierung von laufenden Anwendungen, die Maschinen zum Erstellen, Einrichten und Überprüfen vom Büro aus fernsteuern können. Der Einrichter kann sich mit seinem Laptop vor Ort oder entfernt über das Netzwerk mit der Maschine verbinden und die Parametrierung der Anwendung auf der Runtime vornehmen. Die Modularität der Runtime sorgt für eine kostengünstige Vervielfältigung der Zielsysteme. Anwender können mit einem SDK ihren eigenen Code in das System integrieren. In C/C++ oder C# geschriebene Funktionen können von Pipelines aus aufgerufen werden. Die Integration eines bereits bestehenden Codes in das komplette System ist problemlos möglich. Außerdem können Anwender auf diese Art mit spezieller Hardware kommunizieren. Der umgekehrte Weg ist ebenfalls möglich: der Anwender kann grafische Pipelines in seine C/C++- oder C#-basierten Anwendungen einbauen.

Das könnte Sie auch Interessieren