Bildverarbeitung

Panta rei – alles fließt

Grafische Bildverarbeitung für Machine Vision

25.11.2014 -

Das Datenfluss-Prinzip ist ein neues Konzept mit großem Potential. Durch die Verbindung mit grafischer Programmierung wird es für die Bildverarbeitung einfach und intuitiv einsetzbar. Der Vorteil für den ­Anwender ist die schnelle und kostengünstige Projektrealisierung.


Vision beginnt meist mit der Kamera. Dann werden die Bilder verarbeitet bis eine Gut/Schlecht-Aussage feststeht und zur Maschine kommuniziert wird. Traditionell würde ein Programmierer zur Lösung der Aufgabe mit der Kodierung eines Zyklus beginnen. Ein im Datenfluss denkender Anwender sieht jedoch keine Schleife, sondern einen linearen Ablauf: die Daten fließen von der Quelle (Kamera) zur Mündung (Maschine).
Ein Datenfluss kommt ohne Schleifen aus, im Gegensatz zu herkömmlichen Programmen ist er deklarativ. Schleifen und Verzweigungen müssen nicht kodiert werden, sondern ergeben sich aus den verknüpften Komponenten. Datenfluss führt zu Vereinfachung und zu weniger Fehlern. Der sog. off-by-one Error (z. B. fehlerhaft gestaltete Schleife, die einmal zu oft oder zu wenig durchlaufen wird) ist beispielsweise einer der häufigsten Programmierfehler. Fast genauso oft wird die Bedingung für eine Verzweigung falsch kodiert. Das Datenflussprinzip hilft dabei, Fehler zu vermeiden und spart Entwicklungszeit und reduziert Kosten, die für die Fehlerbehebung entstehen.


Grafisch anschaulich
Eine Lösung zur Erstellung von Datenfluss Anwendungen bietet die nVision-Software. Sie ist für Anwender gedacht, die Vision-Projekte realisieren müssen, keine Programmierer sind und von einer Vereinfachung profitieren. Auch fachfremde Techniker und Ingenieure sind damit in der Lage, Vision-Projekte zu realisieren.
Der Aufbau eines Ablaufs ist denkbar einfach: Der Anwender wählt Befehle aus einem Menü und das Programm erstellt automatisch eine Pipeline. Natürlich hilft ein Verständnis für die Bildverarbeitung, aber die Komplexität des Programmierens wird deutlich verringert. Parameter aller Operationen sind einstellbar. Bei jeder Änderung läuft die Pipeline und zeigt neue Ergebnisse. Die Interaktivität ist äußerst hilfreich bei der Erprobung. Läuft die Kamera live, werden auch die Ergebnisse im Kamera-Takt berechnet.
Einzelschritte können grafisch beliebig ausgefeilt werden. Dafür gibt es einen Editor, mit dem Sub-Pipelines mit Verzweigungen erstellt und beliebig tief verschachtelt werden können. Beim Datenfluss gibt es keine Schleifen, aber es gibt Listen, die bearbeitet werden können. Mit dem Transform-„Knoten" können Listen umgewandelt werden, beispielsweise kann eine Liste von Regionen in eine Liste von Schwerpunkten dieser Regionen transformiert werden. Mit dem Filter-„Knoten" können Elemente nach bestimmten Kriterien aus Listen herausgefischt werden, z. B. um Objekte einer bestimmten Klasse zu finden. Mit „Take" und „Skip" können die Listenelemente übernommen oder übersprungen werden, solange eine Bedingung wahr ist. Mit Sub-Pipelines und Listenverarbeitung kann eine Aufgabe strukturiert werden, und es gibt grafische Mittel zum Refactoring, d.h. dem Umstrukturieren, während die Aufgabe fertig entwickelt wird.


Funktionen für Machine Vision
Der Funktionssatz ist für Machine Vision zugeschnitten, z. B. zum Lokalisieren, zum Identifizieren, zum Prüfen und zum Vermessen von Teilen. Es gibt Funktionen zur Bildverarbeitung, zur Bildanalyse, zum Mustervergleich mit Korrelation und geometrisch, zur Vermessung, für OCR, Barcode und Matrixcode Dekodierung, und für Kamera-Aufnahme und Kalibrierung. Alle Werkzeuge sind als grafische Knoten verfügbar und interaktiv parametrierbar oder verknüpfbar mit weiter oben berechneten Zwischenergebnissen.
Anwender haben freie Auswahl: Die Software unterstützt alle gängigen Kameras mit GigE Vision oder USB3 Vision Standard über die GenICam-Schnittstelle, oder auch über direkte Einbindung der Hersteller-SDKs.
Die Funktionen nutzen Parallelität auf mehreren Ebenen. Viele Funktionen sind vektorisiert, d.h. dass je nach Bilddatentyp und CPU 8, 16 oder 32 Pixel parallel mit einem Prozessortakt verarbeitet werden. Weiterhin nutzt die in nVision verwendete Library nGI auch die Mehrkernparallelisierung, die sich optimal für Bildverarbeitung eignet. Eine dritte Ebene der Parallelisierung erfolgt auf parallelen Strängen der Pipelines. Im Endergebnis ist die Performance äußerst hoch, was sich in kurzen Zykluszeiten bemerkbar macht.
Rund wird die Funktionalität durch Kommunikation mit der Außenwelt: nVision liest und schreibt Dateien oder elektrische ­Signale und kommuniziert über Netzwerk mit externen Geräten. Die Software enthält einen Runtime-Anteil und einen Designer zur Programmerstellung, und beide können über Netzwerk kommunizieren. Der ­Designer wird dabei zur Fernsteuerung für die Runtime, welche auf einer entfernten Maschine läuft.

Spannende Artikel zu Fokus-Themen finden Sie in unseren E-Specials. Lesen Sie jetzt die bisher erschienenen Ausgaben.

Zu den E-Specials

Media Kit

Die Mediadaten 2024 sind jetzt verfügbar! Laden Sie sie hier herunter.

Industrie-Lexikon

Begriffe aus der Bildverarbeitung und Automation, die man kennen sollte

Zum Lexikon

Spannende Artikel zu Fokus-Themen finden Sie in unseren E-Specials. Lesen Sie jetzt die bisher erschienenen Ausgaben.

Zu den E-Specials

Media Kit

Die Mediadaten 2024 sind jetzt verfügbar! Laden Sie sie hier herunter.

Industrie-Lexikon

Begriffe aus der Bildverarbeitung und Automation, die man kennen sollte

Zum Lexikon