Deutschland - Kennzeichen Deutschland

Incoterms:DDP
Alle Preise sind inklusive Zoll und Gebühren bei der Auswahl der Versandart.

Bitte bestätigen Sie Ihre Währungsauswahl:

Euro
Versand ist kostenfrei bei den meisten Bestellungen über 50 € (EUR)

US Dollar
Versand ist kostenfrei bei den meisten Bestellungen über $60 (USD)

Bench Talk for Design Engineers

Mouser German Blog

rss

Mouser Electronics, Inc german language blogs


Die Grundlagen von Edge Impulse: Teil 2 Mike Parks

Edge Impulse-Grundlagen #2: Der Arbeitsablauf im Überblick

(Quelle: putilov_denis – stock.adobe.com)

 

Willkommen zum zweiten Teil unserer Blog-Reihe „Edge Impulse-Grundlagen“. In Teil 1 haben wir die verschiedenen Mechanismen vorgestellt, die Edge Impulse bietet. Heute werfen wir einen praktischen Blick auf den gesamten Arbeitsablauf von Edge Impulse: von der Datenerfassung über das Training bis hin zur Bereitstellung der Firmware auf bestimmten Edge-Geräten. Dafür stellen wir uns ein Praxisbeispiel vor: Wir nehmen uns vor, ein Bauelement zu entwickeln, das bei Eingabe der richtigen Abfolge von „geheimen“ Klopfzeichen Türen öffnet. Zu diesem Zweck nutzen wir das Mikrofon des Development Boards Arduino Nano 33 BLE Sense.

Laden wir hierzu zunächst die erforderlichen Applikationen herunter. Dazu gehören:

  • Firmware
  • Node.js v12 oder höher
  • Arduino CLI
  • Edge Impulse CLI
  • Serielle Monitor-Applikation wie PuTTY

Nun müssen wir nur noch die Firmware flashen und den Serial Daemon starten. Praktischerweise sind im Firmware-Repository Windows-, Mac OS- und Linux-Skripte enthalten, mit denen Sie diesen Prozess für ausgewählte Development Boards, einschließlich des Nano 33 BLE Sense, automatisieren können. Falls noch nicht geschehen, erstellen Sie ein Konto und melden Sie sich bei Edge Impulse Studio an (https://studio.edgeimpulse.com). Klicken Sie nun auf die Registerkarte „Devices“ (Bauelemente), um sicherzustellen, dass Ihr Development Board erfolgreich Kontakt mit dem Edge-Impulse-Dienst aufgenommen hat (Abbildung 1). Nun können wir uns mit dem eigentlichen Thema dieses Artikels befassen – nämlich wie man ein neues Modell von Grund auf trainiert.

Abbildung 1: Edge Impulse bietet native Unterstützung für eine große Auswahl an Development Boards, um sie direkt mit ihrer Trainings- und Testumgebung verbinden zu können. (Quelle: Green Shoe Garage)

1. Schritt: Aufzeichnung von Rohdaten

Bei diesem Projekt verwenden wir das integrierte Mikrofon des Nano 33 BLE Sense, um ein bestimmtes Muster von Klopfgeräuschen zu erkennen. Um das Modell zu trainieren, müssen wir zwei Datensätze erfassen: einen, der die Umgebungsgeräusche ohne Klopfgeräusche aufnimmt, und einen zweiten, der die geheimen Klopfgeräusche aufzeichnet. Dieser Vorgang wird als „Ingestion“ bezeichnet. Klicken Sie auf die Registerkarte „Data Acquisition“ (Datenerfassung) und gehen Sie zum Abschnitt „Record New Data“ (Neue Daten aufnehmen).

Wichtige Eigenschaften sind die Länge und die Frequenz der Proben. Die Probenlänge legt fest, wie lange eine Aufzeichnung ist; die Frequenz bestimmt die Anzahl der pro Sekunde aufgenommenen Proben. Edge Impulse empfiehlt die Aufnahme von zehn Minuten Audio (in einminütigen Abschnitten): fünf Minuten reine Umgebungsgeräusche und fünf Minuten Klopfgeräusche. Bitte beachten Sie, dass die Aufnahme von einminütigen Audiodaten mehrere Minuten dauern kann, da der Speicherplatz auf Ihrem Development Board begrenzt ist.

2. Schritt: Werden Sie „impulsiv“ – verarbeiten Sie die Rohdaten

Nachdem wir die erforderlichen Rohdaten erhalten haben, müssen diese verarbeitet und in ein neuronales Netzwerk umgewandelt werden (Abbildung 2). Edge Impulse bezeichnet dies als „Impuls entwerfen“. Es ist ein mehrteiliger Prozess, bei dem wir zunächst festlegen, wie die Rohdaten in Fenster zerlegt werden. Dazu geben wir zwei Werte an: die Fenstergröße, die steuert, wie lange (in Millisekunden) jedes Fenster sein soll; und die Fenstervergrößerung, die die Startzeit jedes nachfolgenden Fensters steuert.

Abbildung 2: Mit den Edge Impulse-Tools können Sie Trainings- und Testdaten auf einfache Weise direkt im Browser überprüfen und kennzeichnen. (Quelle: Green Shoe Garage)

Nachdem die Rohdaten in Fenster von geeigneter Größe aufgeteilt wurden, ist es Zeit, sie in etwas Nützliches für die Trainingsalgorithmen des neuronalen Netzwerks umzuwandeln. Dieser Prozess beginnt damit, dass die Rohdaten durch den treffend benannten Verarbeitungsblock geleitet werden. Edge Impulse wendet für Audiodaten eine Signalverarbeitungstechnik namens Mel Frequency Cepstral Coefficients (MFCC) an. Es stehen weitere Verarbeitungsblöcke zur Verfügung, darunter Blöcke für Bilder, Abflachung (Daten mit geringer Geschwindigkeit, z. B. Luftfeuchtigkeitsmessungen), Spektralanalyse (sich schnell ändernde Daten, z. B. ein Beschleunigungsmesser) und die Möglichkeit, einen benutzerdefinierten Verarbeitungsblock zu erstellen. Mit dem MFCC-Verarbeitungsblock können mehrere Variablen angepasst werden, darunter:

  • Anzahl der Koeffizienten
  • Frame-Länge
  • Frame-Abstand
  • Anzahl der Filter
  • FFT-Länge
  • Fenstergröße
  • Koeffizient
  • Verschiebung

Indem Sie diese Parameter verändern, können Sie die MFCC-Ausgabe beeinflussen. Das Ergebnis dieser Änderungen an den Audio-Rohdaten wird als Spektrogramm angezeigt. Durch die Anpassung dieser Parameter soll sichergestellt werden, dass die Merkmale, aus denen die Datensätze mit Klopfgeräuschen und jene ohne Klopfgeräusche bestehen, genau und effizient aus den Rohdaten extrahiert werden. Die so erzielten besseren Ergebnisse werden dazu beitragen, dass das neuronale Netzwerk letztendlich leichter Rückschlüsse auf den Einsatz des Bauelements unter realen Bedingungen ziehen kann.

Bitte bedenken Sie, dass verschiedene Datentypen andere Methoden nutzen, um die Daten für die Verwendung in Algorithmen für maschinelles Lernen (ML) vorzubereiten. Zu wissen, welche Methode für Ihre Daten richtig ist, ist ein wichtiger Teil der Ausbildung und Erfahrung, die Sie bei der Arbeit an ML-Projekten sammeln werden.

Auf die Aufbereitung der Rohdaten folgt ein sogenannter Lernblock, der mit der Ausgabe des Verarbeitungsblocks ein neuronales Netzwerkmodell trainiert. Wählen Sie im linken Navigationsfenster von Edge Impulse Studio den NN (Keras) Classifier, der sich für die Kategorisierung von Bewegungen oder die Erkennung von Audio eignet. Es gibt zudem Transfer Learning für die Klassifizierung von Bildern und eine k-Means-Anomalie-Erkennung, um Ausreißer in neuen Daten zu finden. Bevor wir das Training des neuronalen Netzwerkmodells ausführen können, müssen noch einige Parameter angepasst werden. Dazu gehören:

  • Anzahl der Trainingszyklen
  • Lernrate
  • Minimale Konfidenzrate

Wenn Sie die Parameter eingestellt haben, klicken Sie auf „Start Training“ (Training starten). Am Ende haben Sie ein trainiertes neuronales Netzwerk.

3. Schritt: Optimieren Sie das neuronale Netzwerk mit Erfahrungen aus der realen Welt

So wie eine Ausbildung nicht das Ende des beruflichen Lernens ist, kann auch die Effektivität des neuronalen Netzwerks stets verbessert werden. Hierzu wird es mit Daten aus der realen Welt gefüttert (d. h. mit neuen Daten, die nicht für das ursprüngliche Training des neuronalen Netzwerks verwendet wurden). Bei Edge Impulse ist dies ein zweistufiger Prozess. Zunächst gibt es einen Schnelltest namens Live-Klassifizierung, bei dem das neuronale Netzwerk mit neuen Daten gefüttert wird, um zu sehen, wie gut es abschneidet (Abbildung 3). Eine Sorge hierbei ist das Problem des sogenannten Overfitting (Überanpassung): Das neuronale Netz reagiert zwar hervorragend auf die Testdaten, nicht aber auf neue, reale Daten, da sich das Modell die Testdaten sozusagen „eingeprägt“ hat. Der zweite, strengere Test ist als Modelltest bekannt. Jedes Mal, wenn eine Live-Klassifizierung durchgeführt wird, werden die Daten zu einem immer größer werdenden Testdatensatz hinzugefügt.

Abbildung 3: Die Möglichkeit, Rohdaten zu visualisieren und zu optimieren, um den Wirkungsgrad und die Genauigkeit des Modells zu verbessern, ist ein wesentlicher Vorteil von Edge Impulse gegenüber früheren manuellen Prozessen bei der ML-Entwicklung. (Quelle: Green Shoe Garage)

4. Schritt: Exportieren des Impulses

Nachdem der Impuls trainiert und verifiziert wurde, ist es Zeit, das Modell auf Ihr Bauelement zu übertragen. Aus Sicht des Endbenutzers entfaltet die KI während der sogenannten Inferenz ihre Magie. Dabei wird ein vollständig trainiertes Modell in einer Cloud-Umgebung oder auf einem Edge-Bauelement eingesetzt und kann nun Vorhersagen basierend auf realen Interaktionen treffen. Um das zu erreichen, wird jedoch eine einfach zu bedienende Software-Bibliothek benötigt, die in das betreffende Projekt integriert werden kann. Edge Impulse fasst den kompletten Impuls, darunter der MFCC-Algorithmus, die Gewichtung des neuronalen Netzes und den Klassifizierungscode, in einer einzigen C++-Bibliothek zusammen. Dadurch kann das Modell auch auf stromsparenden Embedded-Systemen ausgeführt werden, die möglicherweise nicht einmal über eine Internetverbindung verfügen.

Blick in die Zukunft

Der dritte Teil unserer Beitragsreihe „Edge Impulse-Grundlagen“ folgt in Kürze. In Teil 3 befassen wir uns detailliert mit einem der wichtigsten Schritte des Edge-Impulse-Arbeitsablaufs: dem Entwurf des Impulses.



« Zurück


Michael Parks, P.E. ist der Eigentümer von Green Shoe Garage, einem Entwicklungsstudio für kundenspezifische Elektronik und Technologieberatung im Süden von Maryland. Er produziert den S.T.E.A.M. Power-Podcast (ein Podcast über MINT-Themen), mit dem er die Öffentlichkeit für technische und wissenschaftliche Fragen sensibilisieren möchte. Michael ist außerdem zugelassener Ingenieur im Bundesstaat Maryland und hat einen Master-Abschluss in Systemtechnik von der Johns Hopkins University.


Alle Autoren

Alle anzeigen Alle anzeigen
Blog nach Datum anzeigen