Neue Möglichkeiten

Spitzentechnologie in der Bildverarbeitungs-Software

  • Das deskriptorbasierte Matching erkennt perspektivisch verzerrte Flächen. Dazu werden bestimmte Punkte detektiert, deren Grauwerte sich deutlich von ihrer benachbarten Umgebung unterscheiden (Helligkeit, Krümmung, Ecken, Flecken)Das deskriptorbasierte Matching erkennt perspektivisch verzerrte Flächen. Dazu werden bestimmte Punkte detektiert, deren Grauwerte sich deutlich von ihrer benachbarten Umgebung unterscheiden (Helligkeit, Krümmung, Ecken, Flecken)
  • Das deskriptorbasierte Matching erkennt perspektivisch verzerrte Flächen. Dazu werden bestimmte Punkte detektiert, deren Grauwerte sich deutlich von ihrer benachbarten Umgebung unterscheiden (Helligkeit, Krümmung, Ecken, Flecken)
  • Das perspektivische, deformierbare Matching erkennt kantenbasiert perspektivisch verzerrte Objekte mit ausgeprägten kanten- und flächenbetonten Elementen wie hier eine schräg gestellte Autotür
  • Mit dem Mehrgitter-Stereo werden Nachteile des konven­tionellen Stereo-­Verfahrens beseitigt.  Die Bereiche ohne Information (links, schwarze Flächen) erscheinen im Mehr­gitter-Verfahren als ­saubere Kanten und Strukturen
  • Der Datacode-Leser erkennt unscharfe Codes ebenso wie Codes mit zerstörtem oder fehlendem „Finder Pattern“

Mit der Version 9.0 steigert Halcon die Geschwindigkeit: die automatische Parallelverarbeitung (AOP) wird nun zusätzlich beschleunigt und Multicore-Hardware dadurch noch besser genutzt. Dazu kommen neue Matching-Verfahren, die es ermöglichen, Objekte und Werkteile in perspektivisch stark verzerrter Form robust und zuverlässig zu erkennen.

Neben Fortschritten rund um 3D-Vision wartet Version 9.0 mit einer wesentlich verbesserten Benutzerfreundlichkeit auf. Außerdem können extrem große Bilder mit mehr als 32k x 32k Pixel verarbeitet werden. Und Datacodes werden von Halcon 9.0 auch dann noch gelesen, wenn bedeutende Teile fehlen.



GPU oder Framegrabber?
Es gibt die viel diskutierte Möglichkeit, die Bildvorverarbeitung auf die Graphikkarte auszulagern. Doch für die praktische Anwendung ist das nicht sinnvoll. Zwar können auf Graphikprozessoren Verarbeitungsschritte in hoher Geschwindigkeit vonstatten gehen. Aber keine aktuell verfügbare Hardware ermöglicht die Datenübertragung von CPU zu GPU schnell genug. Daher wird in Wirklichkeit durch die zweifachen langsamen Transferzeiten jede Applikation in Summe abgebremst. Aus diesem Grund setzt MVTec nicht auf GPU-Vorverarbeitung.
Auf einem Framegrabber jedoch können freie Rechenkapazitäten ohne zusätzlichen Transfer genutzt werden. Deshalb bietet Halcon 9.0 ein Visual Applets-Interface an, mit dem es möglich ist, Bildvorverarbeitung auf Framegrabbern von Silicon Software in Echtzeit einzubinden.
MVTec konzentriert sich primär jedoch darauf, die Geschwindigkeit dadurch zu erhöhen, dass mit jeder Version die Algorithmen an sich schneller werden. So wurde mit Halcon 9.0 nicht nur die gesamte Bibliothek um etwa 5  % beschleunigt, sondern auch ausgewählte Operatoren (Gauss 3,7-fach; Median 27-fach für 16 bit Grauwerte; Grauwertmorphologie 11-fach für 16 bit Grauwerte).
Fazit: Wer mit einem geeigneten Framegrabber arbeitet, der sollte die Bildvorverarbeitung auslagern, wer ohne Framegrabber arbeitet, sollte die Bildvorverarbeitung nicht auslagern.

Schnelle Parallelverarbeitung - voll­automatisch
Bereits mit der Einführung der ersten Maschinen, die mehrere Prozessoren gleichzeitig zur Verfügung stellten, haben die Entwickler von MVTec reagiert.

Mit der Version 6.0 kam Halcon damals auf den Markt und bot optional zur Normalversion die Variante „Parallel Halcon" an. Diese Version ist mit einer automatisierten Operator-Parallelverarbeitung (AOP) ausgestattet. Parallel Halcon war konkurrenzlos und setzte sich am Markt vor allem bei Kunden durch, die Hochgeschwindigkeits-Bildverarbeitung betreiben wollten.
Man war also gut vorbereitet, als vor einigen Jahren Multicore-Prozessoren auf den PC-Markt kamen. Das bewährte AOP nutzte diese Multiprozessor-Technologie und ist in der Version 9.0 jetzt noch einmal um mehr als 20 % beschleunigt worden.
AOP bestimmt automatisch (also ohne Arbeit des Programmierers) die Anzahl der verfügbaren Prozessorkerne. Dann wird das Bild ebenso automatisch in die entsprechende Anzahl von Teilbildern aufgeteilt. Nach der Verarbeitung der entsprechenden Stränge durch die einzelnen Prozessorkerne fügt die Software diese automatisch zum Ergebnisbild zusammen. Mit steigender Anzahl der Prozessoren steigt für Filteroperatoren auch die Geschwindigkeit der Bildverarbeitung kontinuierlich an.
Ein weiterer Vorteil von AOP: der Programmierer kann eine Region of Interest (ROI) als Freiform im Bild vorwählen, um nur einen bestimmten Teil eines Bildes zu verarbeiten. Die Orientierung der ROI spielt keine Rolle. Damit wird zusätzlich Prozessorzeit gespart.
Über einfache Filter weit hinaus werden auch viele komplexe Operatoren und Methoden parallelisiert, die für eine große Zahl von industriellen Anwendungen relevant sind. Hierzu zählen die schnelle Fourier-Transformation (FFT), Matching, 3D-Matching sowie Subpixel-Extraktion. In Version 9.0 laufen mehr als 400 Operatoren unter AOP.
Mit der AOP können auch Arrays von Bildern parallel verarbeitet werden, ebenso Arrays von Regionen, wie sie beim Segmentieren entstehen (z. B.: OCR oder Blobanalyse), und auch Arrays von subpixelgenauen Konturen.
Parallelisierung ist jedoch nur dann sinnvoll, wenn genügend Speicherdurchsatz zur Verfügung steht; das Ergebnis ist also hardwareabhängig. Halcon hat auch hier eine Lösung: Die Software erkennt die Hardwareumgebung automatisch und entscheidet auf dieser Grundlage, welcher Algorithmus parallelisieren soll, um unnötigen Overhead zu umgehen.
Das System parallelisiert auch Mehrkanalbilder (wie etwa Farbbilder) mit beliebiger Zahl von Kanälen.
Fazit: Version 9.0 parallelisiert industrierelevante Filter, Operatoren und Verfahren vollautomatisch und optimiert. Ausprogrammiertes Multi-Threading kann das nicht leisten.

Matching für perspektivische ­Verzerrungen

Halcons schnelles formbasiertes Matching und komponentenbasiertes Matching sind weitgehend bekannt und einzigartig. Mit der Version 9.0 kommen nun neue Matching-Technologien auf den Markt.
Das deskriptorbasierte Matching erkennt perspektivisch verzerrte Objekte. Dazu werden bestimmte Punkte detektiert, deren Grauwerte sich deutlich von ihrer benachbarten Umgebung unterscheiden (durch Helligkeit, Krümmung, Ecken und Flecken). Planare Objekte wie Druckbilder mit Textur können mit deskriptorbasiertem Matching ex­trem schnell in beliebiger Rotation und Kippung lokalisiert werden.
Das perspektivische, deformierbare Matching erkennt kantenbasiert per­spektivisch verzerrte Objekte. Werkteile mit ausgeprägten kanten- und flächenbetonten Elementen wie beispielsweise eine Autotür sind mit dieser Methode in hoher Genauigkeit, Zuverlässigkeit und Robustheit erkennbar.
Das formbasierte Matching ist ab der Version 9.0 mit einer vorwählbaren Toleranz ausgestattet. Dadurch wird die Robustheit im Finden von Objekten erheblich verbessert. Diese Option ist nicht nur für unscharfe Bilder (oft bei der Inspektion von elektronischen Kleinbauteilen) von Bedeutung, sondern auch beim Matching von Objekten, die nicht exakt bau­gleich sein müssen.
Fazit: Die Matching-Verfahren von Halcon sind weltweit einzigartig und eröffnen der Industrie völlig neue Möglichkeiten für verzerrte Objekte.

Umfangreiche 3D-Vision hilft der ­Robotik und Inspektion

3D-Vision wird am Markt immer wichtiger, gerade in der Robotik. Halcon bot bisher bereits viele 3D-Technologien: 3D-Objekterkennung, 3D-Kamerakalibrierung, binokulare Stereorekonstruktion, Depth from Focus. Mit Version 9.0 kommen außer den beiden oben beschriebenen Matching-Verfahren zur Erkennung von perspektivisch verzerrten Objekten folgende weitere neue Methoden hinzu:
Bei Stereobildern tritt oft das Problem auf, dass ganze Bereiche keine Textur aufweisen. Um diese Informationslücke zu überbrücken, wurde bei MVTec das Mehrgitter-Stereo entwickelt. Mit diesem Mehrgitter-Verfahren werden diese Nachteile des konventionellen Stereo-Verfahrens beseitigt. Die Bereiche ohne Information erscheinen im Mehrgitter-Verfahren als saubere Kanten und Strukturen. Texturlücken in Stereobildern können also überbrückt werden. Dieses Verfahren liefert hochgenaue Ergebnisse.
Die neue Version bietet weiterhin neue Operatoren zur 3D-Vermessung von Höhenprofilen mittels eines Linien-Laserprojektors im Lichtschnittverfahren. Diese speziellen Algorithmen können Lichtlinien extrahieren, aus denen dann ein 2 1/2 D Modell generiert wird.
Das Programm verfügt über eine einzigartige 3D-Kamera-Kalibrierung. Mit Hilfe dieser Kalibrierung werden äußere und innere Kameraparameter bestimmt. Damit können Pixelkoordinaten einfach, schnell und hochgenau in Weltkoordinaten umgerechnet werden, was die Robotersteuerung und -referenzierung erheblich vereinfacht. Das zugrunde liegende Kameramodell für diese 3D-Kalibrierung wurde in Halcon 9.0 dergestalt erweitert, dass auch komplexe Linsenverzeichnungen sowie Verkippungen der optischen Achse rechnerisch eliminiert werden können. Damit wird die Genauigkeit der Ergebnisse von 3D-Algorithmen wie beispielsweise 3D-Matching oder Stereo erheblich gesteigert.
Fazit: Halcon 9.0 verfügt über umfangreiche Möglichkeiten für 3D-Vision, so dass alle 3D-Bildverarbeitungs-Aufgaben schnell und sicher gelöst werden können.

Datacodes auch ohne Finder-Pattern
Datacodes sind weltweit eindeutig auf dem Vormarsch. Idealerweise bestehen sie aus eine gepunkteten Fläche, die den eigentlichen Code bildet, sowie einem Rahmen, der zur Orientierung und Lage­erkennung des Codes dient, dem „Finder-Pattern". In der Praxis aber ist es oft so, dass bedeutende Teile beim Aufbringen des Datacodes nicht abgedruckt werden oder durch Transport oder andere Einflüsse mechanisch beschädigt oder überdruckt werden. Für herkömmliche Datacodeleser ist der Datacode oft nicht mehr lesbar. Halcon 9.0 bringt einen Datacodeleser auf den Markt, der dazu in der Lage ist, Datacodes noch zu lesen, wenn Teile beschädigt sind, auch wenn der gesamte Finder-Pattern fehlt. Die Software liest die Datacodes ECC 200, QR und PDF417 in jeder Größe mit Elementen von mindestens 2x2 Pixel.
Alle gebräuchlichen Barcodes können in jeder Orientierung sogar mit einem Strichabstand von nur 1,5 Pixel gelesen werden. Der Barcode-Leser wurde für alle RSS-Formate (inklusive Composites) erheblich beschleunigt und verbessert.
Fazit: die Zuverlässigkeit und Robustheit bei der Identifikation von Bar- und Datacodes wurden auf einen Höchststand gebracht.

Große Bilder werden problemloser
Schon lange wurde es von der Industrie gewünscht: Version 9.0 verarbeitet jetzt Bilder von mehr als 32k x 32k. Die Größe der Bilder ist nicht nach oben begrenzt. Das ist vor allem interessant für hochauflösende Zeilenkamera-Applikationen, wie sie in der Druckkontrolle oder in der Elektronikindustrie zur Komponentenkontrolle eingesetzt werden. Setzt man diese Technologie in Kombination mit schneller Parallelverarbeitung ein, kann trotz der großen Datenmenge die gewünschte Echtzeit erreicht werden, ohne die Bildvorverarbeitung auszulagern. Die Programmierung wird dadurch wesentlich einfacher und schneller, und die Applikation läuft problemlos.
Fazit: Große Bilder können ab jetzt problemlos und ohne großen Aufwand verarbeitet werden. Das macht auch umfangreiche Zeilenkameraapplikationen robust, fehlerfrei und zuverlässig.

Benutzerfreundliche Entwicklungs­umgebung (IDE)

Die neue Version verfügt über eine vollwertige integrierte Entwicklungsumgebung (IDE). Diese Entwicklungsumgebung (HDevelop) ist wiederum verbessert und erweitert worden.
HDevelop hat jetzt einen Freitexteditor. Damit verfügt der Benutzer über einen Editor mit erweiterter automatischer Vervollständigung. Diese Funktion kann den Programmiervorgang vor allem für geübte Programmierer erheblich beschleunigen.
HDevelop verfügt über sog. Assistenten. Neu ist der Assistent zur Kamerakalibrierung. Dieser Assistent hilft dem Anwender, die notwendige Kalibrierung der Kamera einfach und genau durchzuführen. Nach der Einstellung der Parameter fügt der Assistent auf Wunsch den entsprechenden Programm-Code in das HDevelop-Pogramm ein.
Vom Benutzer selbst entwickelte Prozeduren werden jetzt ebenso behandelt wie bereits bestehende Operatoren. Das betrifft sowohl deren Dokumentation wie auch das Erscheinen in Auswahlfenstern der Entwicklungsumgebung HDevelop. Damit wird das Einbinden von Eigenentwicklungen jetzt erheblich aufgewertet.
Die Version 9.0 bietet die Möglichkeit, Programmbausteine und Programmierklassen - Codelets - außerhalb der Entwicklungsumgebung HDevelop einzusetzen. Eine große Anzahl dieser Bausteine sowie passende Beispiel-Applikationen liegen als Sourcecode vor und können entweder direkt oder als Vorlage verwendet werden. Die Codelets helfen insbesondere, die erweiterte Funktionalität des HDevelop-Grafikfensters und der HDevelop-Assistenten auch außerhalb von HDevelop schnell und einfach zu nutzen.
Fazit: All diese Programmierhilfen und -beschleuniger helfen dem Programmierer, die Applikation sehr schnell umzusetzen und somit, Produkte schneller an den Markt zu bringen.

Autor(en)

Kontaktieren

MVTec Software GmbH
Arnulfstraße 205
80634 München
Germany
Telefon: +49 89 457 695 0
Telefax: +49 89 457 695 55

Jetzt registrieren!

Die neusten Informationen direkt per Newsletter.

To prevent automated spam submissions leave this field empty.