Elektroniknet Logo

Mikrocontroller-Systeme

KI-Daten verarbeiten, aber wo?

Farnell
© metamorworks | stock.adobe.com

Die Datenverarbeitung von KI-Algorithmen kann lokal, in der Cloud oder in integrierten KI-Systemen stattfinden. Jede Methode hat ihre Vor- und Nachteile.

Künstliche Intelligenz (KI) kann Embedded-Systeme für das industrielle Internet der Dinge (IIoT) wesentlich reaktionsschneller und zuverlässiger machen. Die Technologie wird bereits genutzt, um den Zustand von Maschinen zu überwachen und festzustellen, ob ein Ausfall droht. Außerdem lassen sich routinemäßige Wartungsarbeiten kostengünstiger planen.

Eine wichtige Entscheidung bei der Realisierung von KI-Technologie in Embedded-Systemen besteht darin zu bestimmen, wo der Großteil dieser Datenverarbeitung stattfindet. KI-Algorithmen unterscheiden sich sehr stark in Bezug auf die erforderliche Rechenleistung und damit auch in hohem Maße darin, welche Ressourcen zur Verarbeitung des Algorithmus notwendig sind und wo diese Verarbeitung erfolgt. Für Systementwickler, die KI-basierte Embedded-Systeme entwickeln, gibt es drei Ansätze: Nämlich die Verwendung eines KI-Dienstes in der Cloud, die Bereitstellung eines Systems mit integrierter KI und die Erstellung eigener Algorithmen, die im Allgemeinen auf Open-Source-Software beruhen.

Nutzung eines Cloud-Dienstes

Ein Deep-Neural-Network (DNN) ist ein Beispiel für einen Algorithmus, der insbesondere während der Einlernphase hochgradig rechenintensiv ist, in der jedes Mal, wenn das Modell aktualisiert werden muss, Milliarden von Gleitkommaberechnungen erforderlich sind. Aufgrund des hohen Rechenbedarfs von DNNs werden Daten typischerweise an die Cloud gesendet, um sie remote zu verarbeiten. Die Verarbeitung in der Cloud kommt in Konsumelektronikgeräten wie Smart-Speakern bereits häufig zum Einsatz. KI-fähige Geräte in der Industriesteuerung können diese Fernverarbeitung ebenso nutzen. Dazu gibt es Tools und Frameworks, die für die Arbeit mit Cloud-Diensten erstellt wurden. Viele von ihnen sind Open-Source.

Ein bekanntes Beispiel für Cloud-basierte KI ist TensorFlow von Google. Dieses bietet mehrere Abstraktionsebenen, die sowohl von Entwicklern, die Erfahrung mit der Erstellung von KI-Algorithmen haben, als auch von Einsteigern verwendet werden können. Das Keras-API, das Teil des TensorFlow-Frameworks ist, wurde entwickelt, um das Erforschen von Techniken für maschinelles Lernen und das Einrichten von Anwendungen einfacher zu gestalten.

Ein Nachteil der Cloud-Verarbeitung liegt jedoch in der dafür erforderlichen Kommunikationsbandbreite. Eine zuverlässige Internetverbindung ist für die Aufrechterhaltung des Dienstes unerlässlich, und es sei daran erinnert, dass viele Konsumelektronik-Anwendungen von Cloud-KI auf Breitbandverbindungen angewiesen sind. Werkzeugmaschinen in einer Fabrik weisen gegebenenfalls nicht die Datenübertragungsgeschwindigkeit auf, die zum Aktualisieren eines remoten KI-Modells in Echtzeit erforderlich ist.

Relevante Anbieter

Farnell
Bild 1. Das Ultra96-V2-Board von Avnet enthält Arm-Prozessorkerne und ein FPGA – ideal für die Unterstützung von Deep Neural Networks.
© Avnet

Lokale Vorverarbeitung der Daten

Durch eine verstärkte lokale Verarbeitung lassen sich die Bandbreitenanforderungen jedoch unter Umständen drastisch reduzieren. Bei vielen industriellen Anwendungen lässt sich die Datenmenge, die an einen externen Standort gesendet werden muss, maßgeblich reduzieren, wenn auf den Inhalt geachtet wird. In einer Anwendung, die Umgebungsvariablen überwacht, ändern sich viele dieser Variablen über einen längeren Zeitraum nicht. Was für das Modell wichtig ist, liegt in Änderungen oberhalb oder unterhalb bestimmter Schwellenwerte. Während ein Sensor Sensoreingänge möglicherweise Millisekunde für Millisekunde analysieren muss, kann die Aktualisierungsrate für den Cloud-Server bei einigen Aktualisierungen pro Sekunde oder sogar darunter liegen.

Für komplexere Datenformen wie Audio oder Video ist ein höheres Maß an Vorverarbeitung erforderlich. Durch die Bildverarbeitung vor der Übertragung der Ausgabe an ein KI-Modell wird allenfalls nicht nur Kommunikationsbandbreite eingespart, sondern auch die Gesamtleistung des Systems verbessert. Beispielsweise optimiert das Entrauschen vor der Komprimierung häufig die Effizienz der Komprimierungsalgorithmen. Das ist besonders bei verlustbehafteten Komprimierungstechniken relevant, die gegenüber Hochfrequenzsignalen empfindlich sind. Bei der Bildsegmentierung kann eine Kantenerkennung verwendet werden, um das Modell nur auf interessierende Objekte zu fokussieren. Dies reduziert die Menge nicht relevanter Daten, die sowohl während des Einlernens als auch während der Inferenz auf das Modell übertragen werden müssen.

Obwohl die Bildverarbeitung ein komplexes Gebiet ist, können Entwickler in vielen Fällen Algorithmen lokal verarbeiten und dabei leicht verfügbare Bibliotheken nutzen. Dadurch entfällt die Notwendigkeit von Internetverbindungen mit hoher Bandbreite, und die Latenz kann verringert werden. Ein bekanntes Beispiel ist die Open-Source-Bildverarbeitungsbibliothek OpenCV, wobei das CV für »Computer Vision« steht. Entwickler können die in C++ geschriebene, leistungsstarke Bibliothek mit C++-, Java-, Python- und MatlabB-Code verwenden, was eine einfache Prototypen-Erstellung unterstützt, bevor die Algorithmen auf ein Embedded-System übertragen werden.

Lokale Daten sind sicherer

Durch den Einsatz von OpenCV und die lokale Verarbeitung von Daten beseitigen Integratoren auch Sicherheitsrisiken, die mit der Übertragung und Speicherung von Daten in der Cloud verbunden sind. Für die Endanwender sind der Schutz und die Sicherheit von Daten, wenn diese an die Cloud übertragen werden, besonders wichtig. Zustandsüberwachung und industrielle Prüfung sind kritische Prozesse, bei denen die Datenanalyse möglichst gut sein muss. Gleichzeitig enthalten sie jedoch auch Informationen, die für skrupellose Konkurrenten von Nutzen sein können, wenn diese Zugriff darauf erhalten.

Andere Systeme, wie beispielsweise jene, die in der Medizin verwendet werden, stehen vor weiteren Herausforderungen im Zusammenhang mit dem Datenschutz. Auch wenn Cloud-Betreiber Maßnahmen ergriffen haben, um zu verhindern, dass Daten angegriffen werden, wird das Risiko des Datenzugriffs im Falle eines erfolgreichen Hacker-Angriffs begrenzt, wenn Daten in jedem einzelnen Gerät (soweit möglich) gespeichert sind.

Neben der Unterstützung der Bildverarbeitung bieten die neuesten Versionen von OpenCV direkte Unterstützung für maschinelle Lernmodelle, die mit einer Reihe gängiger Frameworks wie Caffe, PyTorch und TensorFlow erstellt werden. Eine Methode, die für viele Benutzer erfolgreich ist, besteht darin, die Cloud für die anfängliche Entwicklung und die Prototypen-Erstellung zu verwenden, bevor das Modell auf die Embedded-Plattform übertragen wird.

Die Leistung ist ein wesentlicher Aspekt jedes maschinellen Lernmodells, das auf ein Embedded-Gerät übertragen wird. Da Einlerndaten einen sehr hohen Leistungsbedarf haben, besteht die Möglichkeit, dies auf lokalen oder Cloud-Servern (abhängig von Datenschutzaspekten) durchführen zu lassen, wobei Inferenzen – das heißt, wenn ein trainiertes Modell mit Echtzeitdaten gespeist wird – am Gerät selbst ausgeführt werden.

Wenn lokale Leistung erforderlich ist, ist das Board Ultra96-V2 von Avnet (Bild 1) eine mögliche Lösung. Es enthält das MPSoC Zynq UltraScale+ ZU3EG von Xilinx. Die Kombination von Arm-Prozessorkernen mit integrierten Signalverarbeitungs-Engines und einem vollständig programmierbaren Logik-Array bietet eine effektive Unterstützung für DNN-Modelle sowie Bildverarbeitungsroutinen. Das Ultra96-V2 verträgt den industriellen Temperaturbereich und ermöglicht so seinen Einsatz in der Nähe von Maschinen, die unter anspruchsvollen Bedingungen betrieben werden. Per Neukonfiguration lassen sich das Einlernen und die Inferenz auch lokal ausführen, wenn die Anwendung hohe Durchsatzanforderungen hat.

Die Inferenz ist weniger aufwendig als das Einlernen, und anders als bei Bilddatenströmen kann ein Mikrocontroller, auf dem der DNN-Kernel in Software ausgeführt wird, für Sensordaten ausreichen. Datenströme mit niedrigerer Datenübertragungsgeschwindigkeit sind jedoch möglicherweise für ein Gerät mit geringem Stromverbrauch immer noch zu viel. Einige Teams setzen Optimierungstechniken ein, um die Anzahl der für die Inferenz erforderlichen Berechnungen zu verringern, obwohl dies die Komplexität der Entwicklung erhöht. KI-Modelle sind häufig hochgradig redundant. Durch die Reduktion der Verbindungen zwischen Neuronen und die Verringerung der Genauigkeit von Berechnungen auf ein 8-Bit-Intergerformat oder eine noch niedrigere Auflösung lassen sich erhebliche Einsparungen bei der nötigen Verarbeitungsleistung erzielen.


  1. KI-Daten verarbeiten, aber wo?
  2. Verwendung eines Edge-Geräts mit integrierter KI

Verwandte Artikel

Farnell GmbH