Objekterkennung ist ein heiß umstrittener Markt in der Bildverarbeitung. Das ist bereits an den Patentstreitigkeiten zu erkennen, die der vergangenen Zeit zwischen Konkurrenten am Weltmarkt gefochten wurden. Um für nahezu jede Applikation eine Lösung zu bieten, hat MVTec bis zur aktuellen Version 10 seiner Software Halcon die Matching-Verfahren stetig ergänzt und weiterentwickelt. Nicht nur, dass jede momentan in der Industrie gestellte Frage zur Objekterkennung mit Halcon 10 gelöst werden kann, sondern die Software bietet dazu verschiedene Verfahren an, die die Flexibilität für den Programmierer erhöhen. Halcon gilt als umfassende Standardsoftware für die industrielle Bildverarbeitung und bietet entsprechend mehr als 1.600 Software-Operatoren an. 2D-Matching Sollen flächige Objekte erkannt werden, hat man mit Halcon unterschiedliche Methoden und Verfahren zur Verfügung. Das korrelationsbasierte Matching ist ein oft verwendetes Verfahren. Es basiert auf dem Vergleich von Grauwerten eines bekannten Objekts, das über das zu prüfende Bild geschoben wird. Bei hinreichenden Übereinstimmungen erkennt die Software so das gesuchte Objekt schnell und ist dabei robust gegenüber Unschärfe, Kantendeformation oder Texturen. Dabei spielen Rotation und Orientierung keine Rolle. Das subpixelgenaue formbasierte Matching findet Objekte präzise und robust in Echtzeit, sogar wenn sie rotiert, skaliert, perspektivisch verzerrt, lokal deformiert (Bild 1), teilweise überdeckt oder auch teilweise außerhalb des Bildes sind und nicht linearen Beleuchtungsschwankungen unterliegen. Dieses Verfahren verarbeitet Bilder mit 8 oder 16Bit sowie Farb- und andere Mehrkanalbilder. Objekte können anhand von Bildvorlagen oder CAD-Daten trainiert werden. Darüber hinaus lokalisiert Halcons komponentenbasiertes Matching Objekte, die aus mehreren gegeneinander beweglichen Teilen bestehen wie beispielsweise Zangen, Scheren oder Schalter. Ein weiteres 2D-Verfahren ist das deskriptorbasierte Matching (Bild 2). Planare Objekte mit Textur wie Verpackungen können mit diesem Matchingverfahren schnell in beliebiger Rotation und Kippung gefunden werden. 3D-Matching In vielen Bereichen in der Industrie wird zunehmend 3D-Objekterkennung (3D-Matching) nachgefragt und angewendet. Vor allem die Robotik entdeckt 3D-Matching zunehmend als leistungsfähiges Verfahren, um Roboter zu sehenden Maschinen zu machen. Hier stellt Halcon 10 mit seinem 3D-Vision-Paket die notwendigen Verfahren in seiner Bibliothek bereit. Das formbasierte 3D-Matching bestimmt die 3D-Lage von beliebig angeordneten dreidimensionalen Objekten. Dieses Verfahren erkennt die Position und Orientierung von 3D-Objekten basierend auf ihrem CAD-Modell mit nur einer Kamera. Das geht auch in Kombination mit einem Stereoverfahren, wobei die Software die Genauigkeit erhöhen kann, indem das so genannte Mehrbild-Stereo beliebig viele Kamerabilder in die Information einfließen lassen kann. Das wird vor allem bei Bin Picking-Anwendungen, also der roboterbasierten Vereinzelung von Schüttgut, immer stärker eingesetzt. Was aber, wenn ein Objekt keine klaren Kanten und Konturen aufweist, also die Form sich nur schwer erfassen lässt? Halcon 10 bietet in dem Fall das oberflächenbasierte 3D-Matching als Alternative zum formbasierten 3D-Matching, wenn es um das optimierte Auffinden von gerundeten oder kantenlosen Objekten wie Rohren und anderen Bauteilen aus Distanzbildern geht (Bild 5 und 6). Schnelligkeit als Maßstab In der industriellen Bildverarbeitung ist neben Robustheit und Genauigkeit die Schnelligkeit das Hauptkriterium. In der Softwareentwicklung geht es daher vor allem darum, neue Möglichkeiten zu entdecken, um die Verarbeitung schneller zu machen. In der Entwicklungsabteilung von MVTec wird ständig versucht, die zugrunde liegenden Algorithmen so zu verbessern, dass sie nicht nur robust arbeiten, sondern gleichzeitig schneller werden. Allerdings gibt es auch andere Möglichkeiten, um für eine Beschleunigung zu sorgen. Mit der Version 10 verfügt Halcon über eine GPU-Beschleunigung, die auf dem OpenCL-Standard basiert. Das bedeutet, dass Teile der Bildverarbeitung auf den Graphikprozessor ausgelagert werden, über den so gut wie alle Rechner verfügen. Das ist an sich am Markt nichts Neues. Halcon aber ist in der Lage, das Auslagern von mehr als 50 Operatoren so zu organisieren, dass der Programmierer sich keine Gedanken über den Ablauf machen muss. Die Bildverarbeitungsteil eines Programms muss zu diesem Zweck nicht extra umgeschrieben werden; vielmehr kann der Programmierer es der Automatik überlassen, so viel wie möglich auszulagern. Dadurch erleichtert diese Automatik dem Programmierer die Arbeit. Außerdem können mit dieser Auslagerung subpixel-genaue Ergebnisse erzielt werden. Die Halcon verfügt schon lange über eine automatische Operator-Parallelisierung (AOP). Diese erkennt automatisch, über wie viele Prozessoren oder Cores ein Rechner verfügt und teilt die Threads entsprechend auf, ohne dass der Programmierer dazu etwas tun muss. Die Geschwindigkeit steigt dadurch nahezu linear proportional zur Anzahl der Prozessoren. Diese AOP wird mit jeder Version von Halcon weiter ausgedehnt. Halcon 10 benötigt außerdem weniger Hauptspeicherplatz als die vorhergehenden Versionen. Für Klassifikationsapplikationen bietet sie alternativ zum herkömmlichen Berechnung ein Look-Up-Table-basiertes Verfahren an, das zwar mehr Speicherplatz benötigt, aber im Gegenzug die Berechnung beschleunigt. Zuverlässige Identifikation Auch für Identifikationsapplikationen bietet Halcon fortschrittliche Verfahren an. So ist die Texterkennung (OCR) im industriellen Umfeld eine spezielle Herausforderung, weil die Zeichen, die erkannt werden sollen, oft beschädigt oder verschmutzt sind oder in einer Schriftart angebracht wurden, die die Software ganz einfach nicht kennen kann. Halcon verfügt jedoch über so viele vortrainierte Schriftsätze, dass ein Training von Schriften und Zeichen weitgehend wegfällt. Außerdem wurde die Segmentierung verbessert: Halcons Smart Text Finder erkennt im Bild die Region, in der Textzeichen vorhanden sind, und schlägt eine ROI (Region of Interest) vor. Das ermöglicht eine robuste und einfache Verarbeitung. Beim Lesen von Barcodes und Datacodes war jede Version von Halcon robust gestaltet. Die aktuelle Version kann darüber hinaus mehrere unterschiedliche Barcodes in einem Bild mit nur einem Aufruf auslesen (Bild 3). Außerdem wurde das Lesen von Composite-Codes beschleunigt. Schnelles Entwickeln In der industriellen Produktion ist die schnelle Marktverfügbarkeit (Time to Market) ein wichtiges Kriterium. Daher muss die Automatisierungsapplikation möglichst schnell entwickelt werden. Halcon hilft dabei mit seiner integrierten Entwicklungsumgebung HDevelop. Mit dieser IDE (integrated development environment) stehen dem Programmierer verschiedene Möglichkeiten zur Verfügung, die das Erstellen des Bildverarbeitungsprogrammcodes erleichtern und beschleunigen. So verfügt HDevelop über einen Measure-Assistenten, der entlang einer vorgewählten Linie Entfernungen zwischen Kanten misst (Bild 4), über Tools zum ROI-Handling oder zum Erstellen eines Grauwertprofils entlang einer vorgewählten Linie oder eines Kreisbogens, um nur einige zu nennen. Diese IDE wird in verschiedenen Sprachen angeboten. Was wird demnächst folgen? Die neue Version 11 von Halcon kommt im Sommer 2012 auf den Weltmarkt. Halcon war eine der ersten Standardsoftware-Produkte am Markt mit einem umfangreichen 3D-Vision-Paket. Auch mit der neuen Version wird daher vieles rund um 3D-Vision verbessert, beschleunigt und ergänzt werden. Auch bezüglich der integrierten Entwicklungsumgebung HDevelop wird es mit der Version 11 einige Innovationen geben. Zudem wird Halcon 11 eine Reihe neuer Datacodes lesen können und der Datacode-Leser wird schneller werden. Außerdem wird das gesamte Softwarepaket beschleunigt.
Neuer Schrittmotor mit UL/CSA-Zertifizierung
Nanotec erweitert seine Produktpalette um den Hightorque-Schrittmotor ASA5618.