Seite drucken

Bachelorarbeit

Reduktion des Ressourcenbedarfs Neuronaler Netze zur Gestenerkennung

Hintergrund

Künstliche neuronale Netze (KNNs) werden heute meist von leistungsfähigen Rechnern ausgeführt. Es gibt aber auch Anwendungen von KNNs für leistungsschwache Mikrocontroller mit wenig Speicher in kleinen eingebetteten Systemen. Ein Beispiel ist das optische Erkennen von Gesten mit denen Menschen Geräte steuern (z. B. Handbewegung links nach rechts). Ein solches System kann als kleines, preiswertes Modul realisiert werden, das einen Mikrocontroller und wenige Lichtsensoren enthält, die als eine Art Facettenauge genutzten werden. Aus den gemessenen Lichtstärken erkennt das KNN eine begrenzte Zahl von Gesten und signalisiert die Erkennung anderen Baugruppen des Gerätes über digitale Ausgänge. Ein Prototyp eines solchen Moduls mit 3x3 Lichtsensoren und einem Arduino-Board (ATmega328P: 8-Bit, 16 MHz, 2 kB RAM, 32 kB Flash-Speicher) als Verarbeitungseinheit wurde bereits entwickelt. In einer Bachelorarbeit wurde untersucht, welche Gesten mit welchen KNNs (Feedforward- und Recurrent-Netze) und welcher Zuverlässigkeit erkannt werden können. Dazu wurden für Training und Ausführung auf einem PC das KNN-Werkzeug Keras und Python-Skripte eingesetzt. Die Anwendung wurde für die Prototypen-Hardware experimentell umgesetzt und der Ressourcenbedarf (Rechenzeit und Speicher) bestimmt. Der verwendete Mikrocontroller konnte das KNN zur Erkennung einfacher Gesten ausführen.

Ziele der Arbeit

Das Ziel der hier ausgeschriebenen Arbeit ist es zu untersuchen, wie sich der Ressourcenbedarf für die Ausführung von Feedforward-Netzen zur Gestenerkennung reduzieren lässt. Das ermöglicht die Ausführung auf noch ressourcenärmeren Mikrocontrollern oder die Erkennung komplexerer Gesten, die größere KNNs erfordern. Ansätze für die Ressourcenreduzierung sind der Einsatz von Festkommazahlen ggf. mit sehr geringer Bitbreite, das Speichern von Gewichten (Konstanten) mit geringer Bitbreite (ggf. einzelne Bits), ressourcensparende Implementierungen der Ausführung des KNNs, das Entfernen unnötiger Neuronen oder unnötiger Verbindungen zwischen Neuronen aus dem trainierten Netz, die Verwendung einfach berechenbarer Aktivierungsfunktionen und die Reduktion der Anzahl verwendeter Lichtsensoren. Für die Ansätze soll vergleichend untersucht werden, inwieweit Ressourcen (Ausführungszeit, RAM, Flash-Speicher) gespart werden können und in wieweit sie die Erkennungswahrscheinlichkeit der Gesten beeinflussen. Das soll beispielhaft für den Mikrocontroller des Prototyps betrachtet werden.

Technologie Neuronale Netze, Mikrocontroller, Python, C
Kontakt Dr. Marcus Venzke