Bildverarbeitungssoftware HALCON 8.0 Bilder parallel auf Multikern-Prozessoren verarbeiten

Autor / Redakteur: Lutz Kreutzer* / Gerd Kucera

Wenn es um das Sammeln und Interpretieren von Informationen aus Bildern geht, bestimmt Machine Vision den Stand der Technik, weil ihre Entwicklung im Wesentlichen durch die Forderungen der Industrie und damit von hochkritischen Kunden getrieben ist. Trotz aller technischen Fortschritte der Hardware ist es die Software, die am Ende die industrielle Bildverarbeitung vorantreibt. Sie muss schneller sein als Maschinen arbeiten können – HALCON 8.0 ist schneller.

Anbieter zum Thema

Komponenten wie Kameras, Linsen und Objektive, Beleuchtungen oder Frame-Grabber werden stetig weiterentwickelt und erfolgreich vermarktet; nicht zu vergessen sei hier als Komponente auch die Kreativität des Applikations-Ingenieurs. Trotz allem ist es die Software, die am Ende den Fortschritt der industriellen Bildverarbeitung vorantreibt. Software muss Aussagen treffen und entscheiden. Und das in möglichst hoher Geschwindigkeit und mit höchster Zuverlässigkeit. Darüber hinaus können Beleuchtung, Optik und andere Unwägbarkeiten heutzutage bereits weit gehend softwareseitig kompensiert werden.

Geschwindigkeit ist am Ende alles und durchaus keine Hexerei

Geschwindigkeit war schon immer die treibende Kraft bei der Bildverarbeitung – unter Voraussetzung von Zuverlässigkeit und Robustheit. Daher wird auch in Zukunft der Markt bestimmt werden durch die Frage, wie viele Inspektionen kann meine Software in einer Sekunde schaffen? Software muss also, um wirklich industriell geeignet zu sein, schneller sein als Maschinen arbeiten können. Echtzeit-Entscheidungen werden also zunehmend gefragt sein, vor allem auch in der Robotik.

Der Engpass für die enorme Datenmenge ist der Prozessor

Die Datenmenge, die dabei anfällt, ist enorm. Das Nadelöhr ist heutzutage der Prozessor. In den letzten zwanzig Jahren sind die Prozessoren stetig weiterentwickelt worden. Vor zwei Jahren jedoch war man an einem Punkt angelangt, der eine eindeutige Grenze markierte: Ohne gravierende thermische Probleme ließen sich die Rechenleistungen der Prozessoren nicht erhöhen. Führende Hersteller brachten deshalb die ersten Mehrkern-Prozessoren auf den Markt. Das aber kam der Bildverarbeitung besonders zugute.

Erfahrene Bildverarbeiter haben sich schon zuvor eines Tricks bedient, der die Bearbeitung von großen Datenmengen schneller bewerkstelligen konnte. Die Daten eines Bildes wurden aufgeteilt und auf unterschiedliche Prozessoren geschickt, wo sie zwar zeitlich parallel, aber physikalisch getrennt voneinander verarbeitet werden konnten. Eine solche parallele Ausführung von Programmteilen nennt man Multi-Threading. Diese Technik aber setzt entsprechende Spezialkenntnisse des Programmierers voraus. Zudem ist die entsprechende Programmierung zeitaufwändig. Es sei denn, eine Software löst das Problem automatisch.

Daten werden in mehreren Prozessorkernen parallel verarbeitet

HALCON der MVTec Software GmbH in München (aktuelle Version 8.0) stellt dazu die Automatic Operator Parallelization (AOP) bereit, kurz Parallel HALCON: das ist immer noch weltweit einzigartig. Parallel HALCON teilt die Daten auf und verteilt sie auf die vorhandenen CPUs, wo sie verarbeitet werden. Danach fügt der Operator die errechneten Daten wieder zusammen, als wäre es eine einzige Berechnung gewesen.

Die Software erkennt die Zahl der Prozessorkerne automatisch

Die neue Generation der Mehrkern-Prozessoren arbeitet mit vier Kernen und stellt standardmäßig mehrfach parallele Einheiten bereit. Für HALCONs AOP ist die Anzahl der Prozessoren nicht begrenzt. Die Anzahl der Prozessoren wird automatisch erkannt und voll ausgenutzt. Die Automatisierung über Parallel HALCON zeigt gegenüber der klassischen Methode des Multi-Threadings eine vergleichbare Leistung, bietet jedoch gleichzeitig große Vorteile: Die Handhabung ist einfacher, die Fehleranfälligkeit ist geringer und auch Programmierer mit wenig Erfahrung kommen damit sehr gut zurecht.

Parallel HALCON ist nicht nur sicher, was das Aufteilen in Threads angeht, Parallel-HALCON ist auch ablaufinvariant, das bedeutet: Mehrere Verarbeitungsstränge können gleichzeitig mehrere Bildverarbeitungsoperatoren abrufen, nutzen und die Ergebnisse wieder zusammenfügen.

Parallel HALCON in Zusammenhang mit Multikern-Prozessoren ist daher in jedem Fall ein Technologieschub für die industrielle Bildverarbeitung. Bei aller Geschwindigkeitserhöhung muss aber eines klar sein: Zuverlässigkeit und Robustheit dürfen in keiner Weise darunter leiden. Daher gilt der Grundsatz: Wenn noch Spielraum da ist, müssen auch Robustheit und Zuverlässigkeit stetig weiter optimiert werden.

Mehr Geschwindigkeit durch effizientes Speichermanagement

Immer höhere Geschwindigkeiten lassen sich unter anderem durch fortschrittlicheres Speichermanagement oder durch effiziente Nutzung bestimmter Techniken wie MMX (Multi Media Extension; von Intel entwickelte Technik) oder SSE (Streaming SIMD Extensions; ebenfalls von Intel entwickelt) erreichen. Außerdem kann am Programmkern selbst optimiert werden, wenn die Software-Architektur es erlaubt (wie bei HALCON gegeben).

Es bieten sich jedoch auch andere Möglichkeiten an, Schnelligkeit, Zuverlässigkeit und Robustheit zu verbessern. Nachdem Microsoft die 64-Bit-Technik auch für Windows erschlossen hat, hat MVTec reagiert. HALCON nutzte die 64-Bit-Wortbreite unter Windows als erste Machine-Vision-Software weltweit und brachte somit bis zu 30% Zeitersparnis für Windows-Anwender.

Integrierte Entwicklungsumgebung und Rapid Prototyping

Standardsoftware soll möglichst einfach zu bedienen sein. Das verlangt nach Werkzeugen, die genau dazu die Voraussetzungen schaffen. Integrierte Entwicklungsumgebungen aber haben lange am Markt gefehlt; damit aber wird Rapid Prototyping (also die schnelle Erstellung eines Bildverarbeitungsprototyps) erst möglich. Weil der Markt für Bildverarbeitung in der Industrie zunehmend in die Breite geht, werden Entwicklungsumgebungen notwendiger, um die Software aus der Expertenecke herauszuholen. Moderne Oberflächen wie HALCONs HDevelop werden das Arbeiten enorm erleichtern und die Erstellung von oft gebrauchten Operatorensequenzen deutlich vereinfachen.

Der Trend geht sicherlich dahin, für die industrielle Bildverarbeitung immer mehr solcher Entwicklungsassistenten für typische Machine-Vision-Anwendungen marktreif zu machen. Solche Bedienoberflächen mit modernem Look-and-Feel werden für die Entwicklungen der nächsten Jahre vollkommen neu gestaltet werden. Das gibt dem Entwickler mehr Flexibilität.

Robuste Verfahren für die 3-D-Erkennung von Objekten

Flexibilität muss jedoch auch für die Bilddatenformate gelten: Ob 8 Bit, 16 Bit und mehr, ob Einkanal-, Farbbilder oder sonstige Mehrkanalbilder; Standardsoftware muss sie in Zukunft alle bedienen können. Viele Anwender arbeiten mit Windows-PC, andere verlassen sich eher auf Linux. Manche steigen auch um. Dasselbe gilt für die wichtigen Kameras, Smart-Kameras und Frame-Grabber: Gute Software muss sie alle bedienen können.

Die 3-D-Erkennung von Objekten ist eine Technik, die zunehmend im Trend der Bildverarbeitung liegt. Auch hier muss Standardsoftware robuste Verfahren bieten. Mit dieser Methode lassen sich für Standardsoftware neue Märkte erschließen wie zum Beispiel die Automobil- und deren Zulieferindustrie. Das 3-D-Matching ermöglicht die schnelle Entwicklung von so genannten Bin-Picking-Applikationen und anderen typischen Roboteraufgaben. Auf der Basis eines CAD-Modells können 3-D-Objekte mit nur einer Kamera (also ohne Stereo-Aufbau) erkannt werden. 3-D-Matching war am Markt bisher nur in speziellen Bildverarbeitungsprogrammen erhältlich, jetzt aber auch bereits in Standardsoftware wie HALCON 8.0.

Die Rolle der Software in der IBV

Schnelligkeit in der industriellen Bildverarbeitung ist von der verwendeten Software abhängig - unter der Voraussetzung, dass die Hardware stimmt. Zunehmend wird Standardsoftware eingesetzt werden, die dem Ingenieur bereits lange industriell erprobte Operatoren und Algorithmen bietet und die er daher selbst kaum mit derselben Zuverlässigkeit, Robustheit und Geschwindigkeit programmieren könnte.

Standardsoftware muss daher ein möglichst breites Anwendungsspektrum abdecken, sie muss also für alle Verfahren der industriellen Bildverarbeitung wie Blob-Analyse, Lesen von Bar- und Datacodes, Morphologie, Matching, Vermessung, 3D-Objekterkennung, binokularer Stereoanalyse und OCR zuverlässige und robuste Operatoren anbieten. Sie muss aber auch innerhalb dieser Verfahren Alternativen bieten, mit denen sich das individuelle Problem wirklich optimal lösen lässt. Dann aber spart Standardsoftware viel Zeit und lässt dem Ingenieur mehr Raum für seine eigentliche Aufgabe: nämlich der kreativen Umsetzung seiner Applikation.

*Dr. Lutz Kreutzer ist Manager PR & Marketing, MVTec Software, München

(ID:225251)