3 Verwendungsmöglichkeiten für tinyML am Netzwerkrand

Das maschinelle Lernen (ML) hat in vielen Bereichen der Cloud Einzug gehalten und sich auf relativ leistungsstarken Prozessoren unter Linux seinen Weg in die Randbereiche der Netzwerke (als Edge bezeichnet) gebahnt. Das Problem des herkömmlichen maschinellen Lernens, das auf diesen Systemen läuft, ist, dass sein Leistungsprofil zu groß ist, als dass es sich „abkoppeln“ und als batteriebetriebenes Edge-Gerät arbeiten könnte. Der Trend und die Zukunft des maschinellen Lernens am Netzwerkrand liegt in der Verwendung von tinyML. tinyML zielt darauf ab, ML-Algorithmen auf ressourcenbeschränkte Geräte wie Mikrocontroller auf Basis von Arm-Cortex-M-Prozessoren zu bringen.

In diesem Blog werden wir die gängigsten Anwendungsfälle für die Nutzung von tinyML auf Mikrocontroller-basierten Geräten für den Einsatz im Edge-Bereich untersuchen.

Anwendungsfall 1: Schlüsselworterkennung

Der erste Anwendungsfall, für den tinyML immer beliebter wird, ist die Schlüsselworterkennung. Schlüsselworterkennung ist die Fähigkeit eines Geräts, ein Schlüsselwort wie „Hey Siri“, „Alexa“, „Hallo“ und so weiter zu erkennen. Die Schlüsselworterkennung ist für Edge-Geräte sehr nützlich. So könnte man beispielsweise einen stromsparenden Prozessor verwenden, der über ein Schlüsselwort einen leistungsstärkeren Prozessor aufwecken kann. Ein anderer Anwendungsfall könnte die Steuerung eines eingebetteten Systems oder eines Roboters sein. Ich habe Beispiele gesehen, in denen ein Mikrocontroller verwendet wurde, um Schlüsselwörter wie „vorwärts“, „rückwärts“, „stopp“, „rechts“ und „links“ zu dekodieren, um die Bewegung eines Roboters zu steuern.

Bei der Schlüsselworterkennung mit tinyML wird normalerweise ein Mikrofon verwendet, um ein Eingangssignal zu erfassen. Das Sprachsignal wird als Spannung über der Zeit aufgezeichnet und dann mittels digitaler Signalverarbeitung in ein Spektrogramm umgewandelt. Ein Spektrogramm sind Zeitdaten, die gegen die Frequenz des Eingangssignals aufgetragen werden. Das Spektrogramm kann in ein neuronales Netzwerk (NN) eingespeist werden, um den tinyML-Algorithmus auf die Erkennung bestimmter Wörter zu trainieren. Das Verfahren ist in Abbildung 1 dargestellt.

Abbildung 1: Ein eingegebenes Sprachsignal wird digital verarbeitet, um ein Spektrogramm zu erstellen, mit dem ein neuronales Netzwerk zur Erkennung von Schlüsselwörtern trainiert wird. (Bildquelle: Arm)

Eine typische Implementierung würde feste Sprachfenster in das NN einspeisen. Das Netz würde dann die Wahrscheinlichkeit auswerten, dass eines der gewünschten Schlüsselwörter gesprochen worden ist. Wenn zum Beispiel jemand „Ja“ sagt, kann das NN melden, dass es zu 91 % sicher ist, dass es „Ja“ ist, mit einer Wahrscheinlichkeit von 2 %, dass es „Nein“ ist, und einer Wahrscheinlichkeit von 1 %, dass es „Ein“ ist.

Die Möglichkeit, Maschinen per Sprache zu steuern, ist ein Anwendungsfall, den viele Gerätehersteller sorgfältig prüfen und hoffen, ihre Geräte in den kommenden Jahren in dieser Hinsicht verbessern zu können.

Anwendungsfall 2: Bilderkennung

Der zweite Anwendungsfall, in dem tinyML seinen Weg findet, ist die Bilderkennung. Es gibt eine ganze Reihe von Anwendungsfällen für Edge-Geräte, die die Bilderkennung verwenden. Ein Anwendungsfall, mit dem Sie vielleicht schon vertraut sind, ist die Fähigkeit zu erkennen, ob eine Person, ein Paket oder gar nichts vor Ihrer Tür steht. Es gibt sicherlich noch viele andere Anwendungen, die von der Überwachung alter analoger Messgeräte über die Erkennung des Zustands von Rasenflächen bis hin zum Zählen von Vögeln reichen.

Bilderkennung kann ein komplexes Gebiet sein, in das man sich einarbeiten muss. Es gibt jedoch mehrere kostengünstige Plattformen, die Entwicklern dabei helfen können, sich diese Arbeit zu erleichtern. Einer meiner Favoriten, den ich benutze, um Dinge schnell zu erledigen, ist OpenMV.

OpenMV ist eine offene Plattform für die industrielle Bildverarbeitung, die eine integrierte Entwicklungsumgebung (IDE), ein in Python geschriebenes Bibliotheks-Framework und ein Kameramodul von Seeed Technology umfasst, das Entwicklern bei der Erstellung ihrer Bildverarbeitungsanwendungen hilft (Abbildung 2).

Abbildung 2: Das OpenMV-Kameramodul kann für die Bilderkennung verwendet werden, und die Entwicklung kann mit einer einfachen IDE unter Verwendung von Python erfolgen. (Bildquelle: Beningo Embedded Group)

Das Kameramodul basiert auf einem Cortex-M7-Prozessor STM32H7 von STMicroelectronics. Die Hardware kann über die vorhandenen Steckleisten erweitert werden. Das Board kann mit einer Batterie betrieben werden und das Kameramodul kann sogar ausgetauscht werden. Ein interessantes Beispiel für den Einstieg ist die Verwendung des CIFAR-10-Datensatzes mit der Arm-CMSIS-NN-Bibliothek für die Bilderkennung. Das Beispiel ist auf YouTube unter https://www.youtube.com/watch?v=PdWi_fvY9Og zu finden.

Anwendungsfall 3: Vorausschauende Wartung

Der letzte Anwendungsfall, den wir für tinyML erörtern werden, ist die vorausschauende Wartung. Bei der vorausschauenden Wartung werden Tools wie statistische Analysen und ML eingesetzt, um den Zustand der Geräte auf der Grundlage von Daten vorherzusagen. Diese Daten basieren auf:

  • Erkennung von Anomalien
  • Klassifizierungsalgorithmen
  • Prädiktive Modelle

In einer Fabrik kann es beispielsweise eine Reihe von Motoren, Ventilatoren und Roboteranlagen geben, die zur Herstellung eines Produkts verwendet werden. Das Unternehmen möchte die Ausfallzeiten minimieren, um die Anzahl der Produkte, die es herstellen kann, zu maximieren. Wenn die Geräte über Sensoren verfügen, die mit ML und den anderen oben genannten Techniken interpretiert werden können, können sie erkennen, wann die Geräte kurz vor einem Ausfall stehen. Ein solcher Aufbau könnte etwa so aussehen wie in Abbildung 3 dargestellt.

Abbildung 3: Der dritte beliebte Anwendungsfall für tinyML sind intelligente Sensoren, die für die vorausschauende Wartung eingesetzt werden. (Bildquelle: STMicroelectronics)

Die Verbindung eines intelligenten Sensors mit einem stromsparenden Mikrocontroller, der tinyML nutzt, kann zu einer Vielzahl nützlicher Anwendungen führen. So könnten zum Beispiel HLK-Anlagen überwacht, Luftfilter überprüft und unregelmäßige Motorvibrationen festgestellt werden, um nur einige Beispiele zu nennen. Die vorbeugende Wartung kann besser organisiert werden, was dem Unternehmen hoffentlich kostspielige reaktive Maßnahmen erspart und einen optimierten Wartungsplan gewährleistet.

Fazit

tinyML bietet viele potenzielle Anwendungen und Einsatzmöglichkeiten am Netzwerkrand. Wir haben diskutiert, was derzeit beliebt ist, aber die Anwendungsfälle sind nahezu unbegrenzt. tinyML kann zur Erkennung von Gesten, zur Steuerung und Kontrolle und vielem mehr verwendet werden. In dem Maße, in dem Edge-Geräte beginnen, die Fähigkeiten von tinyML zu nutzen, stellt sich die Frage: Wofür werden Sie tinyML am Netzwerkrand einsetzen?

Über den Autor

Image of Jacob Beningo

Jacob Beningo ist ein Berater für eingebettete Software, der derzeit mit Kunden in mehr als einem Dutzend Ländern zusammenarbeitet, um ihr Unternehmen durch die Verbesserung von Produktqualität, Kosten und Markteinführungszeit dramatisch zu transformieren. Er hat mehr als 200 Artikel über Entwicklungstechniken für eingebettete Software veröffentlicht, ist ein gefragter Redner und technischer Trainer und verfügt über drei Abschlüsse, darunter einen Masters of Engineering der University of Michigan. Bei Interesse können Sie ihn unter jacob@beningo.com kontaktieren oder besuchen Sie seine Website www.beningo.com und melden Sie sich für seinen monatlichen Embedded Bytes Newsletter an.

More posts by Jacob Beningo
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum