Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Internet der Dinge-Technologie

So implementieren Sie AI of Things (AIoT) auf MCUs

In meinem vorherigen Artikel habe ich den wachsenden Trend hervorgehoben, der es immer mehr künstlicher Intelligenz (KI) in Internet of (IoT) Things-Geräten ermöglicht, intelligente ‚AIoT‘-Geräte zu erstellen, und die verschiedenen Anwendungen profitieren von diesen intelligenten Geräten. Diese lernen aus Daten und treffen autonome Entscheidungen ohne menschliches Eingreifen, was dazu führt, dass Produkte logischere, menschenähnlichere Interaktionen mit ihrer Umgebung haben.

Die Kombination von KI und IoT hat neue Märkte für MCUs (Mikrocontroller) erschlossen. Es hat eine zunehmende Anzahl neuer Anwendungen und Anwendungsfälle ermöglicht, die einfache MCUs in Kombination mit KI-Beschleunigung verwenden können, um eine intelligente Steuerung zu ermöglichen. Diese KI-fähigen MCUs bieten eine einzigartige Mischung aus DSP-Fähigkeiten für Computing und Machine Learning (ML) für Inferenz und werden jetzt in so unterschiedlichen Anwendungen wie Keyword-Spotting, Sensorfusion, Vibrationsanalyse und Spracherkennung eingesetzt. MCUs mit höherer Leistung ermöglichen komplexere Anwendungen im Bereich Vision und Imaging wie Gesichtserkennung, Fingerabdruckanalyse und autonome Roboter.

KI-Technologien

Hier sind einige Technologien, die KI in IoT-Geräten ermöglichen:

Maschinelles Lernen (ML) :Algorithmen des maschinellen Lernens erstellen Modelle auf der Grundlage repräsentativer Daten, die es Geräten ermöglichen, Muster automatisch ohne menschliches Eingreifen zu erkennen. ML-Anbieter stellen Algorithmen, APIs und Tools bereit, die zum Trainieren von Modellen erforderlich sind, die dann in eingebettete Systeme integriert werden können. Diese eingebetteten Systeme verwenden dann die vortrainierten Modelle, um auf der Grundlage neuer Eingabedaten Schlussfolgerungen oder Vorhersagen zu treffen. Beispiele für Anwendungen sind Sensor-Hubs, Keyword-Spotting, vorausschauende Wartung und Klassifizierung.

Tiefes Lernen :Deep Learning ist eine Klasse des maschinellen Lernens, die ein System trainiert, indem viele Schichten eines neuronalen Netzes verwendet werden, um nach und nach übergeordnete Funktionen und Erkenntnisse aus komplexen Eingabedaten zu extrahieren. Deep Learning arbeitet mit sehr großen, vielfältigen und komplexen Eingabedaten und ermöglicht es Systemen, iterativ zu lernen, wodurch das Ergebnis mit jedem Schritt verbessert wird. Beispiele für Anwendungen, die Deep Learning verwenden, sind Bildverarbeitung, Chatbots für den Kundenservice und Gesichtserkennung.

Natural Language Processing (NLP) :NLP ist ein Zweig der Künstlichen Intelligenz, der sich mit der Interaktion zwischen Systemen und Menschen unter Verwendung natürlicher Sprache beschäftigt. NLP hilft Systemen, menschliche Sprache (Text oder Sprache) zu verstehen und zu interpretieren und darauf basierend Entscheidungen zu treffen. Anwendungsbeispiele sind Spracherkennungssysteme, maschinelle Übersetzung und prädiktive Typisierung.

Computer Vision :Machine/Computer Vision ist ein Bereich der künstlichen Intelligenz, der Maschinen trainiert, Bilddaten zu sammeln, zu interpretieren und zu verstehen und basierend auf diesen Daten Maßnahmen zu ergreifen. Maschinen sammeln digitale Bilder/Videos von Kameras, verwenden Deep-Learning-Modelle und Bildanalysetools, um Objekte genau zu identifizieren und zu klassifizieren, und ergreifen Maßnahmen basierend auf dem, was sie „sehen“. Beispiele sind Fehlererkennung am Fertigungsband, medizinische Diagnostik, Gesichtserkennung in Einzelhandelsgeschäften und fahrerlose Autotests.

AIoT auf MCUs

In der Vergangenheit war KI die Zuständigkeit von MPUs und GPUs mit leistungsstarken CPU-Kernen, großen Speicherressourcen und Cloud-Konnektivität für Analysen. In den letzten Jahren jedoch, mit einem Trend zu mehr Intelligenz am Edge, sehen wir, dass MCUs in eingebetteten AIoT-Anwendungen verwendet werden. Der Wechsel zum Edge wird durch Latenz- und Kostenüberlegungen getrieben und beinhaltet eine Verlagerung der Berechnungen näher an die Daten. KI auf MCU-basierten IoT-Geräten ermöglicht eine Entscheidungsfindung in Echtzeit und eine schnellere Reaktion auf Ereignisse und bietet Vorteile in Form geringerer Bandbreitenanforderungen, geringerer Leistung, geringerer Latenz, geringerer Kosten und höherer Sicherheit. AIoT wird durch die höhere Rechenleistung neuerer MCUs sowie durch die Verfügbarkeit von Thin Neural Network (NN)-Frameworks ermöglicht, die sich besser für ressourcenbeschränkte MCUs eignen, die in diesen Endgeräten verwendet werden.

Ein neuronales Netzwerk ist eine Sammlung von Knoten, die in Schichten angeordnet sind, die Eingaben von einer vorherigen Schicht empfangen und eine Ausgabe erzeugen, die aus einer gewichteten und voreingenommenen Summe der Eingaben berechnet wird. Diese Ausgabe wird entlang all ihrer ausgehenden Verbindungen an die nächste Schicht weitergegeben. Während des Trainings werden die Trainingsdaten in die erste oder die Eingabeschicht des Netzwerks eingespeist und die Ausgabe jeder Schicht wird an die nächste weitergegeben. Die letzte Schicht oder die Ausgabeschicht liefert die Vorhersagen des Modells, die mit den bekannten Erwartungswerten verglichen werden, um den Modellfehler zu bewerten. Der Trainingsprozess beinhaltet das Verfeinern oder Anpassen der Gewichte und Bias jeder Schicht des Netzwerks bei jeder Iteration unter Verwendung eines Prozesses, der als Backpropagation bezeichnet wird, bis die Ausgabe des Netzwerks eng mit den erwarteten Werten korreliert. Mit anderen Worten, das Netzwerk „lernt“ iterativ aus dem Eingabedatensatz und verbessert nach und nach die Genauigkeit der Ausgabevorhersage.

Das Training des neuronalen Netzes erfordert eine sehr hohe Rechenleistung und Speicher und wird meist in der Cloud durchgeführt. Nach dem Training wird dieses vortrainierte NN-Modell in die MCU eingebettet und als Inferenz-Engine für neue eingehende Daten basierend auf seinem Training verwendet.

Diese Inferenzgenerierung erfordert eine viel geringere Rechenleistung als das Training des Modells und ist daher für eine MCU geeignet. Die Gewichtungen dieses vortrainierten NN-Modells sind fest und können im Flash platziert werden, wodurch die erforderliche SRAM-Menge reduziert wird und dies für MCUs mit stärkeren Ressourcenbeschränkungen geeignet ist.

Implementierung auf MCUs

Die AIoT-Implementierung auf MCUs umfasst einige Schritte. Der gängigste Ansatz besteht darin, eines der verfügbaren neuronalen Netzwerk (NN)-Framework-Modelle wie Caffe oder Tensorflow Lite zu verwenden, die für MCU-basierte Endgerätelösungen geeignet sind. Das Training des NN-Modells für maschinelles Lernen wird in der Cloud von KI-Spezialisten mit Tools von KI-Anbietern durchgeführt. Die Optimierung des NN-Modells und die Integration auf der MCU erfolgt mit Tools des KI-Anbieters und des MCU-Herstellers. Die Inferenz wird auf der MCU mit dem vortrainierten NN-Modell durchgeführt.

Der erste Schritt des Prozesses erfolgt komplett offline und beinhaltet die Erfassung einer großen Datenmenge vom Endgerät oder der Anwendung, die dann zum Trainieren des NN-Modells verwendet wird. Die Topologie des Modells wird vom KI-Entwickler definiert, um die verfügbaren Daten optimal zu nutzen und die für diese Anwendung erforderliche Ausgabe bereitzustellen. Das Training des NN-Modells erfolgt, indem die Datensätze iterativ durch das Modell geleitet werden, mit dem Ziel, den Fehler am Ausgang des Modells kontinuierlich zu minimieren. Mit dem NN-Framework sind Tools verfügbar, die bei diesem Prozess helfen können.

Im zweiten Schritt werden diese vortrainierten Modelle, optimiert für bestimmte Funktionen wie Keyword-Spotting oder Spracherkennung, in ein für MCUs geeignetes Format umgewandelt. Der erste Schritt in diesem Prozess besteht darin, sie mit dem AI-Konverter-Tool in eine flache Pufferdatei zu konvertieren. Dieser kann optional durch den Quantisierer laufen, um die Größe zu reduzieren und für die MCU zu optimieren. Diese flache Pufferdatei wird dann in C-Code konvertiert und als ausführbare Laufzeitdatei an die Ziel-MCU übertragen.

Diese mit dem vortrainierten Embedded-KI-Modell ausgestattete MCU kann nun im Endgerät eingesetzt werden. Wenn neue Daten eintreffen, werden diese durch das Modell geleitet und basierend auf dem Training eine Inferenz generiert. Wenn neue Datenklassen eingehen, kann das NN-Modell zum erneuten Training an die Cloud zurückgesendet und das neue neu trainierte Modell kann auf der MCU programmiert werden, möglicherweise über OTA-Firmware-Upgrades (over the air).

Es gibt zwei verschiedene Möglichkeiten, eine MCU-basierte KI-Lösung aufzubauen. Für diese Diskussion gehen wir von der Verwendung von Arm Cortex-M-Kernen in den Ziel-MCUs aus.

Bei der ersten Methode wird das konvertierte NN-Modell auf dem Cortex-M-CPU-Kern ausgeführt und mit den CMSIS-NN-Bibliotheken beschleunigt. Dies ist eine einfache Konfiguration, die ohne zusätzliche Hardwarebeschleunigung gehandhabt werden kann und für einfachere KI-Anwendungen wie Keyword-Spotting, Vibrationsanalyse und Sensor-Hubs geeignet ist.

Eine ausgeklügeltere und leistungsfähigere Option beinhaltet das Einschließen eines NN-Beschleunigers oder einer mikroneuralen Verarbeitungseinheit (u-NPU)-Hardware auf der MCU. Diese u-NPUs beschleunigen maschinelles Lernen in ressourcenbeschränkten IoT-Endgeräten und unterstützen möglicherweise eine Komprimierung, die die Leistung und Größe des Modells reduzieren kann. Sie unterstützen Betreiber, die die meisten gängigen NN-Netzwerke für Audioverarbeitung, Spracherkennung, Bildklassifizierung und Objekterkennung vollständig ausführen können. Die von der u-NPU nicht unterstützten Netzwerke können auf den Haupt-CPU-Kern zurückgreifen und werden durch die CMSIS-NN-Bibliotheken beschleunigt. Bei dieser Methode wird das NN-Modell auf der uNPU ausgeführt.

Diese Methoden zeigen nur einige Möglichkeiten, KI in MCU-basierte Geräte zu integrieren. Da MCUs die Leistungsgrenzen auf ein höheres Niveau heben, näher an dem, was von MPUs erwartet wird, erwarten wir, dass die vollen KI-Funktionen, einschließlich leichtgewichtiger Lernalgorithmen und Inferenz, direkt auf MCUs aufgebaut werden.

KI am Rand ist die Zukunft

Die Implementierung von KI auf ressourcenbeschränkten MCUs wird in Zukunft exponentiell zunehmen und wir werden weiterhin neue Anwendungen und Anwendungsfälle sehen, da MCUs die Leistungsgrenze überschreiten und die Grenze zwischen MCUs und MPUs und immer mehr „dünnen“ NN verwischen Modelle, die für ressourcenbeschränkte Geräte geeignet sind, werden verfügbar.

In Zukunft werden wir mit einer Steigerung der MCU-Leistung wahrscheinlich neben der Inferenz auch die Implementierung von leichtgewichtigen Lernalgorithmen sehen, die direkt auf der MCU ausgeführt werden. Dies wird MCU-Herstellern neue Märkte und Anwendungen eröffnen und für sie zu einem bedeutenden Investitionsbereich werden.


Internet der Dinge-Technologie

  1. Wie sichert man die Cloud-Technologie?
  2. So nutzen Sie Ihre Daten optimal
  3. Wie AIoT intelligente Verkehrslösungen ermöglicht
  4. Wie das Internet der Dinge die Lieferkette verändert:Teil 2, Zukünftige Lösungen
  5. Wie mobile Technologie Reisebarrieren beseitigt
  6. Wie Data Science und maschinelles Lernen bei der Verbesserung des Website-Designs helfen können
  7. Das Internet der Dinge:Den Datenfluss managen
  8. So verwenden Sie maschinelles Lernen in der heutigen Unternehmensumgebung
  9. Wie das IoT das Fahrzeugortungssystem unterstützt?
  10. Wie Medizingeräte-OEMs Industrie-4.0-Geschäftsmodelle implementieren können