Machine-Vision-Skripte einfach in Applikationen integrieren

Library Project Export

Machine-Vision-Skripte einfach in Applikationen integrieren

Werden Bildverarbeitungsskripte in einer Entwicklungsumgebung erstellt, müssen sie oft mit hohem Aufwand in die Anwendung integriert werden. Mit dem LibraryProject-Export-Verfahren von MVTec lässt sich dieser Prozess deutlich vereinfachen.

 Mit HDevelop und der HDevEngine lassen sich Vision-Anwendungen professionell 
erstellen. Mithilfe des Library Project Export entfällt zudem die Notwendigkeit, die HDevEngineSchnittstelle zu programmieren. (Bild: MVTec Software GmbH)

Mit HDevelop und der HDevEngine lassen sich Vision-Anwendungen professionell erstellen. Mithilfe des Library Project Export entfällt zudem die Notwendigkeit, die HDevEngineSchnittstelle zu programmieren. (Bild: MVTec Software GmbH)

In der industriellen Bildverarbeitung werden Anwendungen meist im Rahmen von professionellen Programmierumgebungen erstellt. Eine solche ist beispielsweise HDevelop. Eingebunden in die Standardsoftware Halcon, erlaubt diese integrierte Entwicklungsumgebung (IDE, Integrated Development Environment) die interaktive und schnelle Entwicklung anspruchsvoller Bildverarbeitungslösungen. Wurde der Code für eine Machine-Vision-Anwendung erstellt, lässt er sich als Quelltext für C, C++, C# oder Visual Basic .NET exportieren oder mit der so genannten HDevEngine direkt in die Applikation integrieren.

Visionteil einer Anwendung ändern

Die HDevEngine ist eine Bibliothek, die als Interpreter fungiert und es möglich macht, HDevelop-Programme und -Prozeduren direkt aus einer Anwendung heraus zu laden und auszuführen. Mit ihr lässt sich der Bildverarbeitungsteil einer Anwendung schnell ändern, ohne die gesamte Anwendung neu kompilieren oder re-zertifizieren zu müssen. Dies führt zu massiven Zeit- und Kosteneinsparungen. Zudem lassen sich Änderungswünsche von Kunden schneller und kostengünstiger umsetzen. Ein weiterer Vorteil: Automatisierte Produktionslinien können flexibel an wechselnde Werkstücke angepasst werden. Dies erweist sich als sehr hilfreich für IIoT-Szenarien (Industrial Internet of Things). Zudem lassen sich Inspektionseinheiten schnell mit neuem Bildverarbeitungscode zur Lösung unterschiedlicher Prüfaufgaben ausstatten.

 Mit der Programmierumgebung HDevelop lässt sich der Visionteil einer Anwendung schnell ändern, ohne die gesamte Anwendung neu kompilieren oder re-zertifizieren zu müssen. (Bild: MVTec Software GmbH)

Mit der Programmierumgebung HDevelop lässt sich der Visionteil einer Anwendung schnell ändern, ohne die gesamte Anwendung neu kompilieren oder re-zertifizieren zu müssen. (Bild: MVTec Software GmbH)

Integration mit Library Export

Üblicherweise erfolgt die Integration der HDevEngine in eine Anwendung durch das Programmieren einer speziellen Schnittstelle (API, Application Programming Interface). Abhängig von der Anzahl der Ein- und Ausgabeparameter muss hierfür eine Vielzahl von Code-Zeilen geschrieben werden, was einen hohen Zeitaufwand mit sich bringt. Außerdem muss sich der Entwickler intensiv in die API der HDevEngine einarbeiten. Durch den Einsatz des so genannten Library-Export-Features von MVTec lassen sich diese Integrationsschritte deutlich vereinfachen. Dabei stehen ein C++- sowie ein C#-Wrapper zur Verfügung, die den gesamten, benötigten API-Code enthalten. Der Entwickler muss lediglich die exportierte Bibliothek einbinden und kann dann die im Skript enthaltenen Prozeduren genauso einfach aufrufen, wie Funktionen beliebiger anderer Bibliotheken. Auch die Code-Vervollständigung von Microsoft Visual Studio oder anderer Entwicklungsumgebungen unterstützen nun die Verwendung der vom Wrapper generierten Funktionen.

Code strukturieren und Prozeduren generieren

Der Library-Export-Prozess verläuft in mehreren Schritten: Bei der Erstellung einer Vision-Anwendung wird in der Entwicklungsumgebung zunächst ein Skript geschrieben und der Code strukturiert. Dies ist wichtig, da sich hierdurch das Zusammenfassen zu Prozeduren vereinfacht, die dann später in der Applikation verwendet werden können. Dabei ist darauf zu achten, dass der Code zum Lösen der Bildverarbeitungsaufgabe von der Visualisierung der Ergebnisse getrennt ist. Die markierten Code-Zeilen können dann über das Kontextmenü in eine Prozedur zusammengefasst werden. Im erscheinenden Dialog wird der Name der Prozedur festgelegt und anschließend die automatisch erstellten Parameter der Prozedur überprüft und gegebenenfalls nochmals angepasst.

Skript in Applikation integrieren

Nach dem Speichern kann über den Library Export der Wrapper Code generiert werden. Durch diese Dateien lassen sich die im Skript enthaltenen Prozeduren nun auf einfachste Weise in der Applikation verwenden. Bei der Initialisierung des Wrappers wird der Pfad zu dem exportierten Skript gesetzt. Hierdurch weiß er, wo er das entsprechende Skript findet. Dieses kann, wenn nötig, angepasst werden, ohne dass die Applikation neu erstellt werden muss.

Fazit

Die Integration von Bildverarbeitung in eine Anwendung ist meist zeitaufwändig. Dieser Prozess kann durch die Verwendung eines Interpreters für Machine-Vision-Skripte, wie z.B. der HDevEngine, stark vereinfacht und beschleunigt werden. Mithilfe des Library Project Export entfällt darüber hinaus die Notwendigkeit, die HDevEngine-Schnittstelle zu programmieren. Im Ergebnis können Bildverarbeiter dadurch massiv Zeit und Kosten einsparen.

Themen:

| Fachartikel

Ausgabe:

inVISION 5 2019
MVTec Software GmbH

Das könnte Sie auch Interessieren