Die Libelle, oder auf Englisch Dragonfly, besitzt bis zu 30’000 Einzelaugen. Dank dieser Augen geniesst sie eine 360°-Rundumsicht und lässt sich auch bei schnellsten Flugmanövern stehts durch diese Augen leiten. Zudem sieht die Libelle ultraviolettes Licht, was es ihr unter Anderem ermöglicht, ins Wasser hineinzusehen.
An diese herausragende Vielfalt an Fähigkeiten kommen wir mit unserem Projekt-Setting nicht heran. Wir können mit unseren aktuell verwendeten Kameras bloss ein 78° Sichtfeld abdecken, und dies auch nur im für Menschen sichtbaren Farbspektrum.
Dass wir uns trotzdem anmassen, ein Projekt über Machine Vision «Dragonfly» zu nennen, basiert auf unserer überlegenen Software, welche auch mit der verfügbaren und im Vergleich zur Libellen-Sicht bescheidenen Bildqualität erstaunliche Resultate erzielt. Gerne nehmen wir Sie mit auf die Reise und bringen Ihnen “Die spannende Geschichte von den Güezis auf dem Förderband” näher.
Die Motivation
Künstliche Intelligenz ist in aller Munde. Besonders im Bereich der digitalen Bildverarbeitung wird oft damit geworben. Doch was heisst es eigentlich, ein konkretes Problem mit Künstlicher Intelligenz oder auf Englisch artificial intelligence (AI) zu lösen? Und was könnten potentielle Projekte und Use Cases sein, welche sich für die Anwendung von AI eignen? Um diese Fragen beantworten zu können, haben wir im Frühling 2020 ein Vorzeigeprojekt gestartet, mit dem Ziel, eine hinreichend standardisierte Lösung für die Qualitätssicherung mit Machine Vision zu bauen. Machine Vision kann als Untergebiet von AI betrachtet werden. Es befasst sich mit der Automatisierung industrieller Prozesse mithilfe von visuellen Systemen und entsprechender Software.
Projektstart
Das Projektteam einmal zusammengestellt, waren wir alle freudig aufgeregt – wir übertrumpften uns gegenseitig mit Vorschlägen für mögliche Projektnamen. “Dragonfly” machte das Rennen unangefochten. Schnell stand ein Projektplan und eine ungefähre Vorstellung des möglichen Endprodukts. Mit dem Ziel, mittels AI und Machine Vision Mehrwerte für unsere Kunden schaffen zu können (und inspiriert von diversen Kundenanfragen in diesem Gebiet), wollten wir ein System aufbauen, das mithilfe einer Kamera Qualitätskontrollen flexibler und wirtschaftlicher durchführen kann als dass das heute vielerorts der Fall ist. Ganz nach dem Motto “der Weg ist das Ziel” sind die Erfahrungen, welche wir auf dem Weg zu unserem Prototypen sammeln durften, ein ebenso echter Mehrwert für uns wie das dabei entstandene, generische Lösungsframework für unsere Kunden. Das Endprodukt selbst soll das angeeignete Know-how nach aussen tragen, anschaulich darstellen und hoffentlich nicht zuletzt auf monetäre Gegenliebe am Markt stossen.
Die erste Kamera
Es ist nicht immer von Vorteil, wenn man auf weitgehend unbebautem Land steht und uneingeschränkt nach der besten Baumöglichkeit sucht. Ungefähr so haben wir uns gefühlt, als wir die Recherche nach einer geeigneten (Industrie-) Kamera begannen. Die Anzahl Schweizer Industriekameraanbieter und erst die Industriekameraanbietersortimentsauswahl (man muss die Deutsche Sprache einfach gern haben) ist irrsinnig gross. Unterschiedliche Typen wie Farbkameras, Schwarzweisskameras, Zeilenkameras haben alle ihre Vor- und Nachteile. Natürlich haben auch alle eine zusätzliche Ausstattungsauswahl. Sensorgrösse, Objektiv, Aufnahmegeschwindigkeit, Rechenleistung sind nur einige der Punkte, mit welchen wir uns befassen mussten bei der Auswahl einer Kamera. Wenn das Bild dann auch noch bis zum verarbeitenden Computer gelangen soll, kommt man nicht an den Standards der verschiedenen Schnittstellen wie GigE oder USB 3.0 vorbei. Zum Glück waren Hersteller und Vertreiber jeweils sehr zuvorkommend und wollten sich gerne die konkrete Anwendung vor Ort anschauen. Da diese in unserem Falle noch gar nicht existierte, und wir einfach eine “0815”-Industriekamera zum Austesten der Standards suchten, war es etwas schwieriger. Zum Schluss erklärte sich ein Hersteller bereit, uns eine Kamera zum Ausprobieren auszuleihen.
Bereits die Verkabelung und Stromversorgung stellte eine grosse Herausforderung dar. Nach langem Tüfteln und Basteln kriegten wir jedoch die ersten Farbbilder mit einer ansprechenden Wiederholungsrate rein. Trotz steiler Lernkurve ist für uns klar geworden: einem Kunden können wir dieses ”Gebastel” nicht antun. Wir werden künftig bei Kundensystemen die Produkte von Drittanbietern zuziehen, welche die Bilderfassung bis zu unserem Computer bereits weitgehend im Produkt selber sicherstellen.
Die Schlussfolgerung für unser Projekt stand fest: Wir würden uns vorerst keine (weitere) Industriekamera zu Testzwecken mehr besorgen. Stattdessen werden wir eine gewöhnliche Webcam einsetzen und erste Tests mit dieser durchführen . Sollten diese positiv verlau-fen würde das Vorzeigeprojekt mit einer handelsüblichen Webcam durchgeführt.
Die ersten Güezis
Von der Idee geleitet, eine Qualitätskontrolle basierend auf einem Machine Vision System durchzuführen, haben wir verschiede Szenarien durchgedacht. Am Schluss war es ein Kopf-an-Kopf-Rennen zwischen den Kandidaten ”Auswertung von öffentlich verfügbaren Überwachungskamera-Daten” (wie zum Beispiel an einem Bahnhof zur Kontrolle der Pünktlichkeit der Züge) und der ”Qualitätskontrolle von Güezis”. Da Güezis doch etwas greifbarer und anschaulicher (und vor allem leckerer) sind, haben sie das Rennen gemacht. Was Qualitätssicherung bedeutet war schnell klar – ist ein Güezi kaputt, ist es von schlechter Qualität. Doch halt: Beim Kauf des ersten Sacks Güezis fiel uns auf, dass es von einer Sorte nur ein einziges Güezi enthielt. Dementsprechend wurde der Task angepasst: Es soll eine Klassifizierung und Zählung von 6 Güezisorten stattfinden. Ein einsames Güezi in einem gemischten Sack soll unter unserer Kontrolle nicht mehr vorkommen.
Der erste Sack Güezi enthielt von der einen Sorte nur ein Stück. So entstand die Idee, die Qualitätskontrolle auf die Klassifizierung und Zählung von Güezis auszulegen.
Das erste Modell
Mit den ersten Güezi-Fotos wurde eine erste Pipeline für die Bildverarbeitung aufgesetzt. Für ein Proof of Concept reichten bereits wenige Bilder, und ein vortrainiertes ResNet-18 konnte mit wenig Aufwand auf unsere Güezis angewandt werden. Aufgebaut wurde das Modell in Python mit der Deep-Learning Bibliothek PyTorch. Das Monitoring und Versionieren der Modelle erfolgte über Azure Machine Learning (AML). Einmal in die Pipeline eingebaut, kann AML für einzelne Tasks wie für das Loggen von Kosten der Optimierung ganz einfach angebunden werden. Weitere Vorzüge von AML sind die einfache Operationalisierung mit dem Bereitstellen eines Webservices, der ein Auswerten von Bildern via REST-API ermöglicht. Zudem kann im Hintergrund ein Modell neu trainiert werden, wenn zum Beispiel neue Daten vorhanden sind. Dazu wird automatisiert ein Compute Cluster provisioniert und das Modell in der Cloud retrainiert.
Die ersten Verbesserungen
Um etwas näher an die Realität der Industrie zu kommen, haben wir uns entschlossen, ein Förderband anzuschaffen. Dieses soll die Güezis an der Webcam vorbeiführen. Dies hat zur Folge, dass wir einerseits einen definierten, immer gleichen Hintergrund haben, was für das Modell wichtig ist, andererseits können wir so vermeiden, ständig die Hand unter der Kamera zu halten und Fehlklassifikationen zu erzeugen.
Auch ein Stativ wurde beschafft, um die Kamera flexibel einstellen und auf verschiedene Gegebenheiten reagieren zu können. Die Webcam war zum Glück mit einem Kameragewinde ausgestattet und konnte so leicht montiert werden.
Zusätzlich haben wir die Lichtsituation mit einem professionellen Kameralicht stabilisiert. 128 LEDs sorgen nun dafür, dass das Licht für die Kamera immer gleich bleibt. So sollte es in jedem Raum bei jeder Beleuchtung möglich sein, akzeptable Bilder zu erhalten.
Das erste Web-Interface
Oft werden wir von Kunden um eine Darstellung der Vision-Daten gebeten. Dies liegt etwas ausserhalb der IT-Logix Kernkompetenz, und ist mit herkömmlichen BI-Visualisierungstools wie Power BI nicht praktisch zu realisieren. Deshalb haben wir uns entschieden, ein Web Interface für unseren Prototypen zu erstellen, welcher das Modell in Aktion zeigen soll. Eine weitere Anforderung, welche Projekte oft mit sich bringen, ist die Möglichkeit, Daten zurück ins System zu speisen. Dies haben wir in Form einer Labeling-Funktion realisiert. Im Hintergrund läuft das Interface mit einer Python-Django Implementation. Django ist ein Webframework, welches das umfangreiche Erstellen von Websites mit Python erlaubt. Ein Docker Container ermöglicht zudem, rund 6 Bilder pro Sekunde zu labeln und direkt im Browser das Ergebnis anzuzeigen.
Das Vorzeigeprojekt
Wir sind stolz Ihnen die erste Version unseres Vorzeigeprojekts vorzustellen. Unsere Stars – die 6 Güezi – können auf ein Förderband gelegt werden, welches die Güezi unter dem Stativ, vorbei an der Kamera bewegt. Hinten angekommen, fallen die Güezi in eine Schale. In der Industrie wäre hier die Verpackung. Mit unserem System wüssten wir immer genau, wie viele Güezi von welcher Sorte im Sack sind, und können so die Qualität in Bezug auf die Ausgeglichenheit sicherstellen.
Die Güezi werden im besten Licht betrachtet. Mit der professionellen Beleuchtung können uns schlechte Lichtverhältnisse nichts mehr anhaben. Ohne das Laufband stoppen zu müssen können die Güezis von der Webcam eingefangen werden und wir erhalten scharfe Bilder. Mit der gleichbleibenden Beleuchtung ist auch die Stabilität des Modells gegeben, welches mit Bravour auch zuvor nicht explizit trainierte Güezis von der gleichen Sorte erkennt. Trainiert wurde die finale Version des Modells auf der Basis von rund 3’500 Bildern, 500 Bildern pro Güezi (von allen Seiten aufgenommen).
Mit diesem Setup und einigen Änderungen an der Software kann auch eine Qualitätskontrolle in Bezug auf das Aussehen der Güezi ohne grösseren Aufwand realisiert werden.
Wir freuen uns darauf, unser System bei Ihnen vorzustellen und Einsatz-Möglichkeiten in Bezug auf Ihre Anforderungen zu besprechen. Wichtig: Ob Güezis, Radfelgen, Bakterienkulturen, Ultraschall-Haarriss-Identifikation oder Reifegrad von Bananen – solche Themen sind sachverwandt und bedingen nur geringfügige Anpassungen am Modell.