Real-Time Vision
Wie funktioniert Bildverarbeitung in Echtzeit?
Real-Time Machine Vision ist eine sehr komplexe Thematik, jedoch wird auch hier genau genommen nur ein Schritt nach dem anderen getan. Und so ist jeder Schritt einzeln betrachtet überschaubar.
Machine Vision ist die Verarbeitung optischer Signale durch Maschinen. Die Anwendungsfelder dafür sind so zahlreich wie vielfältig: Von Produktion über Qualitätssicherung bis hin zu Fahrzeugtechnik und in der Medizin kann in fast allen technologischen Bereichen in irgendeiner Form von automatischem Sehen profitiert werden. Da Automatisierung eben eines der Kernelemente in der Industrie darstellt ist es kein Wunder, dass in diesen Bereichen auch vermehrt auf Bilderfassung und -verarbeitung zurückgegriffen wird. Im industriellen Kontext wird speziell der Begriff „Machine Vision“ verwendet, da er sich vom übergreifenden Begriff „Computer Vision“ durch höhere Anforderungen unterscheidet. So werden für maschinenbasierte automatisierte Prozesse meist auch Echtzeiteigenschaften vorausgesetzt. Wie genau funktioniert also Bildverarbeitung in Echtzeit?
Real-Time Machine Vision: Wie läuft das ab?
Wenn man den groben Ablauf eines Machine-Vision-Vorgangs einmal Schritt für Schritt durchgeht, kann man drei wesentliche Abschnitte erkennen: Erfassung, Verarbeitung, Reaktion. Eine Kamera erfasst Bilder und gibt sie digitalisiert weiter. Diese werden anschließend von spezieller Software entsprechend relevanter Kriterien analysiert und ausgewertet. Die so verarbeiteten Bilddaten können wiederum technische Reaktionen, beispielsweise durch Maschinen, automatisch auslösen. Was sich hier vereinfacht dreiteilen lässt, ist in Wirklichkeit natürlich ein zeitlich zusammenhängender zyklischer Prozess, der einige hundert oder tausend Mal pro Sekunde abläuft. Und genau hier kann ein Echtzeitsystem dafür sorgen, dass jeder dieser Zyklen eine gewisse Gesamtdauer nicht überschreitet. Diese „harte“ Echtzeit, wie sie von Kithara RealTime Suite umgesetzt wird, macht einige Anwendungen überhaupt erst möglich. Erreicht wird dies, indem sowohl der Übergang zwischen den einzelnen Schritten als auch die Berechnungen während der Bildverarbeitung ohne Unterbrechungen stattfinden, was bei herkömmlichen Betriebssystemen nicht zu verhindern wäre.
Bilderfassung und Echtzeit
Bei Computer-Vision-Anwendungen im Industrie- und Forschungsbereich werden auch entsprechend höhere Anforderungen an die Hardware gestellt. So müssen Industriekameras im Vergleich zu herkömmlichen Kameras wesentlich robuster und resistent gegenüber äußeren Einflüssen wie Temperatur, Luftfeuchtigkeit, magnetischen Feldern, Vibrationen etc. sein. Da nahezu alle Funktionen einer Industriekamera über den angeschlossenen Rechner kontrolliert werden, sind diese Kameras sehr kompakt und lassen sich somit besser in Maschinen verbauen.
Bilder können entweder über sogenannte Framegrabber, das sind spezialisierte Hardware-Karten, an denen die Kameras angeschlossen sind, oder direkt über digitale Schnittstellen wie Ethernet und USB erfasst werden. Letztere bieten eine hohe Flexibilität und gewährleisten dank dedizierter Vision-Standards wie GigE Vision oder USB3 Vision die Austauschbarkeit verschiedener Kamerahersteller. Zudem ist mit GenICam (Generic Interface for Cameras) auch ein übergreifendes Interface verfügbar, das die Kameraschnittstellen noch weiter vereinheitlicht.
Das Echtzeitbetriebssystem von Kithara verwendet eigens entwickelte Treiber für Ethernet und USB, um GigE-Vision- beziehungsweise USB3-Vision-Kameras in Echtzeit anzusprechen. Damit lassen sich Bilddaten verzögerungsfrei von der Kamera abgreifen und weiterleiten. Da solche Daten recht umfangreich sein können, werden entsprechend große Pufferspeicher zur Verfügung gestellt, um dem Ausfall von Datenpaketen vorzubeugen und damit die Datenübertragung reibungslos ablaufen zu lassen.
Bildverarbeitungssoftware und Steuerungsreaktion
Sobald die Bilddaten von der Kamera erfasst und an den Rechner übertragen wurden, stehen diese zur weiteren Auswertung bereit. Die für den jeweiligen Anwendungsfall speziell angepassten Programme bedienen sich meist der Algorithmen leistungsfähiger Bildverarbeitungsbibliotheken. Zu deren vielfältigen Funktionen zählt unter anderem die Erkennung von Objekten, Texten, 2D-Codes, Gesichtern, Gesten oder Bewegungen. Damit lassen sich die Bilder automatisiert analysieren und die gewünschten Schlussfolgerungen ziehen, zum Beispiel für eine Steuerungsreaktion.
Man kann sich leicht vorstellen, dass die verwendeten Bildverarbeitungsalgorithmen sehr komplex sind. Daher ist es auch kein Wunder, dass bekannte Bibliotheken mitunter tausende einzelne Operatoren beinhalten. Beispiele dafür sind die kommerzielle Bibliothek Halcon von MVTec oder das quelloffene OpenCV. Weiterhin ist auch der Trend erkennbar, dass mit Machine Learning noch komplexere Anwendungen realisiert werden können.
Echtzeit-Automatisierung auch hinter der Kamera
Um Bildverarbeitungsprozesse auch im Echtzeitkontext auszuführen, werden solche Bibliotheken in das Echtzeitsystem geladen. Damit wird garantiert, dass die Reaktionszeiten zwischen Bilderfassung, Bildverarbeitung und Reaktion in einem minimalen festgelegten Zeitraum bleiben.
Auch Steuerungsreaktionen wie das Bewegen und Greifen eines Roboterarms als Folge einer Objekterkennung können mit Kithara RealTime Suite noch im selben Echtzeitkontext behandelt werden. Das erlaubt es Entwicklern, Bildverarbeitung und Maschinenlogik in ihrem Anwendungscode zusammenführen und aufeinander abzustimmen. So ist auch die Einbindung bildverarbeitender Anwendungen in übergreifende Automatisierungslösungen möglich. Im Ergebnis lassen sich so über ein einheitliches Echtzeitsystem eingehende Bilddaten auswerten und in komplexe Steuerungssequenzen umwandeln, die Abläufe in Maschinen direkt kontrollieren.