Allgemeines, Absolvierende, Einblicke in Studierendenprojekte, Studierende, Technologie

Künstlich intelligent mit Ball und Stofftier

1. November 2022

Objekterkennung in Echtzeit durch Kombination von künstlicher Intelligenz und Cutting-Edge-Digitaltechnik

Ein Gespräch mit Nico Canzani, geführt von Dr. Anita Gertiser

Nico Canzani
Nico Canzani

Nico Canzani 
Meine Ausbildung begann klassisch mit diversen Schnupperlehren im technischen Bereich. Überzeugt von meiner Wahl, begann ich 2012 die Lehre als Elektroniker in der Axpo. Nach dem Abschluss studierte ich Elektro- und Informationstechnik mit der Vertiefung Mikroelektronik und Kommunikationssysteme an der Hochschule für Technik, Fachhochschule Nordwestschweiz. Im Anschluss trat ich eine Stelle als wissenschaftlicher Assistent am Institut für Sensorik und Elektronik an der FHNW an.

Warum ist Künstliche Intelligenz (KI) basierend auf neuronalen Netzwerken (KNN) aktuell so relevant?

Künstliche Intelligenz, kurz KI oder AI für artificial intelligence, entwickelt sich gerade zu einer Schlüsseltechnologie, mit der Fehler in Produktionsabläufen ermittelt, Geschäftsprozesse optimiert oder medizinische Diagnosen unterstützt werden. Die Einsatzmöglichkeiten sind schier unendlich. In der Elektrotechnik kommt die sogenannte Edge AI (siehe Infobox für Zusatzinformationen) zum Einsatz. Dies bedeutet, dass KI-Algorithmen lokal auf dem Gerät selbst ausgeführt werden. In Echtzeit-Anwendungen wie beispielsweise bei selbstfahrenden Autos ist dies zwingend, damit das System das Auto rechtzeitig abbremsen oder einem Hindernis ausweichen kann. Das Beispiel zeigt auch gleich die Notwendigkeit lokaler Verarbeitung, denn es müssen tausende von Fahrzeugdaten und Umgebungsinformationen pro Sekunde interpretiert und in Steuerungssignale umgesetzt werden. Das ist unmöglich mit dem Umweg über eine Applikation in der Cloud. Deshalb wird der AI-Algorithmus als Embedded System realisiert und ins Leitsystem integriert, was wiederum eine typische Elektrotechnikeraufgabe ist.

Edge Artificial Intelligence-Systeme bestehen aus Sensoren, Computing-Chips, auf denen die Datenanalyse erfolgt, sowie eine Kommunikationsstelle, um die Metadaten an einen Server zu schicken. Der Vorteil von Edge AI-Systemen liegt in der Datenauswertung, die direkt in die Endgeräte verlagert wird. Dies gewährt eine höhere Datensicherheit, reduziert den Energieverbrauch und bietet eine schnellere Datenverarbeitung.

Quelle: Janine von Ackeren (14. August 2022). Edge AI: Künstliche Intelligenz der nächsten Generation, Online: https://www.iis.fraunhofer.de/de/magazin/kuenstliche-intelligenz-ki-serie/edge-ai-uebersicht.html

Künstliche neuronale Netze, kurz KNN, bilden natürliche Neuronenstrukturen ab. Dabei gilt der Anspruch, dass das System unbekannte Zusammenhänge aus meist sehr grossen Datenbeständen (Big Data) extrahiert. Die verwendeten Algorithmen analysieren die Datenbestände maschinengetrieben, also ohne Vorgabe expliziter Ergebniserwartungen.

Quelle: Robert Grünwald (3. August 2020). Künstliches neuronales Netz einfach erklärt: Lernen mit Data Mining. Online: https://novustat.com/statistik-blog/kuenstliches-neuronales-netz-einfach-erklaert.html

Abbildung 1: .Struktur des künstlichen neuronalen Netzes (KNN), auf dem der KI-Wurfstand basiert

Was ist das Besondere – aus elektrotechnischer Sicht – an diesem Projekt? Wie ist das System aufgebaut?

Die Aufgabe in unserem P5-/P6-Projekt bestand darin, einen Wurfstand für 22 unterschiedliche Gegenstände zu entwickeln, die mit einer KI korrekt erkannt werden müssen. Der Aufbau besteht aus einer Kamera, dem passenden Dev-Board (Ultra96-V2) und einem daran angeschlossenen Monitor, auf dem die Resultate angezeigt werden. Die Wurfobjekte werden an der Kamera vorbeigeworfen, die die Gegenstände mit 200 fps (frame per second) festhält. Die aufgenommenen Bilder werden auf einem Mikrokontroller mittels Änderungs-Algorithmus (geschrieben in C++) in Echtzeit miteinander verglichen. Liegen relevante Änderungen vor, wird das Hauptprogramm (geschrieben in Python) benachrichtigt. Dieses verwaltet das GUI und koordiniert die Kommunikation mit den Sub-Komponenten. Die relevanten Bilder werden sofort an ein sogenanntes FPGA (siehe Infobox für Zusatzinformationen) geliefert. Das FPGA enthält eine Deep Processing Unit (DPU) von Xilinx, die mit Verilog fürs Projekt programmiert ist. Die DPU ist in der Lage, Objekte zu erkennen, welche zuvor trainiert wurden. Sobald die Erkennung abgeschlossen ist, wird das Hauptprogramm über das Resultat des Bildes informiert. Wenn alle Bilder verarbeitet sind, entscheidet das Hauptprogramm auf der Basis eines weiteren Algorithmus, um welches Objekt es sich beim eben geworfenen gehandelt hat.
Das Besondere an diesem Projekt ist das verwendete FPGA. Dieses ermöglicht eine Objekt-Erkennung in nur 7.5 ms und ist somit gegenüber einer Computer-CPU bedeutend schneller.

Ein Field Programmable Gate Array, kurz FPGA, besteht aus einem Raster elektronischer Logikmodule mit vor Ort programmierbarer Logikgatter-Anordnung. Es handelt sich dabei um einen adaptiven integrierten Schaltkreis, dessen Schaltungsstruktur der Anwender per Software konfigurieren kann, um die gewünschte logische Schaltung zu implementieren.

Quelle: Anna Kobylinska & Filipe Martins (3. September 2020). Was ist FPGA – Field Programmable Gate Array? Online: https://www.datacenter-insider.de/was-ist-fpga–field-programmable-gate-array-a-955142

Wie kann man einem System beibringen, Gegenstände zu erkennen?

Um die Objekte zu erkennen, muss dem neuronalen Netz zuerst «erklärt» werden, um welche Gegenstände es sich handelt. Dies kann man sich so vorstellen, wie man einem kleinen Kind beibringt: «Was ist das für ein Tier? Eine Kuh! Genau, und wie macht die Kuh? Iii-Aaah? Nein, Muh.» Wie gesagt, haben wir 22 unterschiedliche Objekte benutzt und das System zuerst mit jeweils ca. 1000 Bildern «gefüttert». Dabei wurden die Bilder künstlich verändert, bspw. bezüglich Helligkeit, Rotation oder gar gespiegelt. Am Ende waren es rund 100’000 Bilder, die mehrfach getestet wurden. Man kann sich vorstellen, wie zeit- und rechenintensiv diese Tests waren. Mit diesen 100’000 Bildern wurde das neuronale Netz (DPU) mit dem TensorFlow-Tool trainiert.

Abbildung 2: Erkennung eines geworfenen Papierballs mit Hilfe des KI-Wurfstands

Wie wurde das System getestet?

Um zu prüfen, ob der Wurfstand die 22 Objekte richtig erkennt, gibt es verschiedene Verifikationsverfahren, wie z. B. die Verwendung des Top-K-Wertes. Dieser Wert gibt an, der wievielte Zuordnungversuch des neuronalen Netzwerks (in absteigender Wahrscheinlichkeit) dem geworfenen Objekt entspricht, d. h. korrekt ist.

So hat die Wurfstand-Konfiguration bei 99.8 % der Test-Würfe schon beim ersten Zuordnungsversuch (entsprechend einem Top-K-Wert von eins) richtig getippt. Und bei max. drei Zuordnungs-Kalkulationen (Top-K-Wert von drei) wurden sogar 100 % richtig erkannt. Dies gilt aber nur unter korrekten Bedingungen. Eine störende Hand ist nicht mittrainiert worden und kann folglich das Resultat verfälschen. Mit einem gezielten Training könnte dem System jedoch beigebracht werden, auch Störelemente herauszufiltern.

Eine weitere Verifikation ist die benötigte Zeit pro Bild. Diese liegt für die DPU bei durchschnittlich 7.5 ms und bei total 24 ms, wenn Kamera-Akquisition, die Bildvorverarbeitung und die mathematischen Layer hinzugerechnet werden. Somit ist das Gesamtsystem in der Lage, 41 frames per second (fps) auszuwerten

[Die dazugehörigen technischen Details sind alle auf Github verfügbar.]

Was waren die grössten Herausforderungen – aus technischer Sicht?

Die Auswahl der richtigen Komponenten und deren Programmierung in verschiedenen Sprachen. Ebenso waren die Schnittstellen für die riesigen Datenmengen und die Kontrolle von Signal- und Informationsfluss sehr anspruchsvoll. Speziell bei dieser Aufgabe war die zusätzlich (teils manuelle) notwendige Aufbereitung der Referenzdaten und die Erzeugung der Verifikationsdaten im Wurfstand. Es konnte also nicht wie üblich einfach gemessen werden.

Abbildung 3: Der fertige KI-Wurfstand

Was ist der Nutzen dieses Projekts?

Es konnte aufgezeigt werden, dass heute Objekt-lokale KI relativ einfach und kostengünstig in ein Gesamt-System eingebettet werden kann. Sie liefert die notwendige Performance, um in Echtzeit KI-Aufgaben für Herstellungs- und/oder Überwachungsprozesse zu unterstützen.

Das Projekt ist für die Elektrotechnik an der Hochschule für Technik wichtig, weil es die traditionelle Elektrotechnik um zukunftsorientierte KI- Komponenten und deren Programmierung kombiniert und erweitert.

Nachfolgende Studierende, die ein ähnliches Projekt wählen möchten, erhalten dank der ausführlichen Github-Dokumentation wertvolle Hinweise für «Dos and Don’ts»

Weiterführende Links

zurück zu allen Beiträgen

Kommentare

Keine Kommentare erfasst zu Künstlich intelligent mit Ball und Stofftier

Neuer Kommentar

×