Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

reTerminal Machine Learning Demos (Edge Impulse und Arm NN)

8 GB RAM 32 GB eMMC Raspberry Pi CM Entwicklungsboard mit Touchscreen und vielen Schnittstellen.

Geschichte

Die letzten Artikel, die ich veröffentlicht habe, betrafen TinyML mit Wio Terminal – ein auf Cortex M4F basierendes Entwicklungsboard mit einem LCD-Bildschirm in einem robusten Kunststoffgehäuse. Seeed Studio hat das Unternehmen Wio Terminal beschlossen, diese Idee noch einen Schritt weiter zu gehen und hat kürzlich reTerminal angekündigt – ein auf Raspberry Pi 4 Compute Module basierendes Entwicklungsboard mit einem LCD-Bildschirm in einem robusten Kunststoffgehäuse.

Ich habe eines der reTerminals in die Finger bekommen und ein kurzes Unboxing-Video gemacht, das auch ein paar Demos und eine Erklärung möglicher Anwendungsfälle für das Gerät enthält. Der Artikel ist als Ergänzung zum Video gedacht, um das Einrichten der Umgebung und das Ausführen der Machine-Learning-Demos zu erläutern.

Spezifikationen

reTerminal wird von einem Raspberry Pi Compute Module 4 (CM4) mit Quad-Core Cortex-A72 CPU mit 1,5 GHz betrieben. Die für reTerminal verwendete CM4-Modulversion verfügt über 4 GB RAM und 32 GB eMMC-Speicher, was die Startzeiten verkürzt und eine insgesamt reibungslosere Benutzererfahrung bietet. Bei der Peripherie gibt es einen 5-Zoll-IPS-kapazitiven Multi-Touchscreen mit einer Auflösung von 1280 x 720, Beschleunigungsmesser, RTC-Modul, Summer, 4 Tasten, 4 LEDs und einen Lichtsensor. Und für die Konnektivität bietet das neue Board Dual-Band 2,4 GHz/5 GHz Wi-Fi und Bluetooth 5.0 BLE sowie einen Gigabit-Ethernet-Port an der Seite.

reTerminal kann mit dem gleichen Netzteil wie für Raspberry Pi 4, 5V2A betrieben werden, in der offiziellen Beschreibung wird jedoch 4A Netzteil empfohlen, insbesondere wenn Sie mehr Peripheriegeräte anschließen. Für die Demos habe ich ein gewöhnliches 5V2A Steckernetzteil einer unbekannten Firma verwendet und keine Unterspannungswarnung erhalten. Verwenden Sie jedoch im Zweifelsfall 5V4A.

Standardmäßig werden reTerminals mit vorinstalliertem 32-Bit-Raspbian-Betriebssystem mit installierten Gerätetreibern geliefert. Da jedoch für maschinelle Lernanwendungen ein 64-Bit-Betriebssystem einen erheblichen Schub geben kann, wird Seeed Studio auch eine 64-Bit-Version des Raspbian-OS-Images mit vorinstallierten reTerminal-spezifischen Treibern bereitstellen.

Eine integrierte Bildschirmtastatur und eine einfache QT5-Demo sind ebenfalls enthalten. Der Touchscreen reagiert zwar, aber da Raspbian OS kein mobiles Betriebssystem ist und nicht für Touchscreens optimiert ist, kann es manchmal etwas mühsam sein, auf kleinere UI-Elemente zu drücken. Einen Stift zu haben hilft sehr.

Die integrierte Bildschirmtastatur wird angezeigt, wenn Sie den Text eingeben müssen, und verschwindet danach. Sie können dieses Verhalten in den Einstellungen ändern. Es ist also möglich, reTerminal als tragbaren Raspberry Pi zu verwenden, obwohl Sie sich dafür vielleicht ein anderes Betriebssystem ansehen möchten, beispielsweise Ubuntu touch, das mit Raspberry Pi 4 funktioniert, sich jedoch derzeit in der Beta-Entwicklungsphase befindet und sehr experimentell ist. Der Hauptanwendungsfall für reTerminal ist die Anzeige von Benutzeroberflächen, die mit QT, LVGL oder Flutter erstellt wurden. Lassen Sie uns eine QT-Beispielanwendung starten, die Gerätespezifikationen und -parameter, Daten von Sensoren und eine beispielhafte Steuerplatine für eine imaginäre Fabrik zeigt. Wenn die Elemente der Benutzeroberfläche groß sind, ist der Touchscreen sehr angenehm zu bedienen.

Kantenimpuls-Objekterkennung

Wir werden die neueste Funktion der Edge Impulse-Entwicklungsplattform nutzen, die Linux-Bereitstellungsunterstützung. Wir können ein Objekterkennungsmodell leicht trainieren, indem wir Proben mit einer an reTerminal angeschlossenen Kamera sammeln, dann in der Cloud trainieren und das trainierte Modell automatisch herunterladen und mit edge-impulse-linux-runner ausführen.

Der Installationsvorgang von Edge Impulse CLI ist in der Dokumentation beschrieben. Alles läuft auf ein paar einfache Schritte hinaus:

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt install -y gcc g++ make build-essential nodejs sox gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps
npm config set user root &&sudo npm install edge-impulse-linux -g --unsafe-perm

Nach Edge Impulse CLI ist installiert, stellen Sie sicher, dass die Kamera angeschlossen ist – ich habe eine einfache USB-Webkamera verwendet. Wenn Sie eine Raspberry Pi-Kamera verwenden, denken Sie daran, sie in raspi-config zu aktivieren.

Bevor Sie mit der Erfassung der Daten für die Objekterkennung beginnen, vergewissern Sie sich, dass im Dashboard unter „Projektinfo> Beschriftungsmethode“ ist „Begrenzungsrahmen (Objekterkennung)“ ausgewählt.

Machen Sie mindestens 100 Bilder für jede Klasse, die Sie erkennen möchten. Derzeit können Sie Ihre eigenen Bilder hochladen, indem Sie auf Optionen anzeigen – Daten hochladen auf der Registerkarte Datenerfassung klicken. Es ist jedoch noch nicht möglich, die Anmerkungen der Begrenzungsrahmen hochzuladen, sodass die hochgeladenen Bilder weiterhin manuell beschriftet werden müssen. Nachdem Sie genügend Bilder mit Anmerkungen versehen haben, gehen Sie zu Impuls erstellen, wählen Sie Bild für den Verarbeitungsblock und Objekterkennung (Bilder) für den Lernblock.

Die Menge an Bildern, die ein Benutzer sammeln und kommentieren kann, reicht bei weitem nicht aus, um ein großes Netzwerk von Grund auf neu zu trainieren. Aus diesem Grund verfeinern wir ein vortrainiertes Modell, um neue Objektklassen zu erkennen. In den meisten Fällen können Sie die Standardwerte für Epochenanzahl, Lernrate und Vertrauen belassen. Für die Objekterkennung wird ein benutzerdefinierter Code verwendet, daher können wir ihn im Expertenmodus nicht optimieren, wie dies bei einfacheren Modellen möglich ist.

Das Training erfolgt auf der CPU, daher dauert es je nach Anzahl der Bilder in Ihrem Dataset etwas Zeit. Trinken Sie eine Tasse Ihres Lieblingsgetränks, während Sie dabei sind.

Eines der besten Dinge an der neu hinzugefügten Linux-Unterstützung für Edge Impulse ist der Edge-Impulse-Linux-Runner. Wenn das Modelltraining abgeschlossen ist und Sie mit der Genauigkeit des Validierungsdatensatzes (der automatisch von den Trainingsdaten getrennt wird) zufrieden sind, können Sie das Modell in der Live-Klassifizierung testen und dann mit der Bereitstellung auf dem Gerät fortfahren. In diesem Fall ist es so einfach wie Laufen

edge-impulse-linux-runner

im Terminal. Das Modell wird automatisch heruntergeladen und vorbereitet, dann wird das Ergebnis der Inferenz im Browser angezeigt, Sie sehen eine Zeile auf Ihrem Terminal, ähnlich wie:

Möchten Sie einen Feed der Kamera und eine Live-Klassifizierung in Ihrem Browser sehen? Gehe zu  http://192.168.1.19:4912

Klicken Sie auf den Link in Ihrem Terminal, um die Live-Ansicht der Kamera anzuzeigen.

Das für das Transferlernen verwendete Backbone-Modell ist MobileNetv2 SSD und ist ziemlich groß, sodass wir selbst mit allen Optimierungen etwa 2 FPS oder ~400 ms erreichen. für einen Frame – der Videostream sieht ziemlich reaktionsschnell aus, aber das liegt daran, dass nicht bei jedem Frame eine Inferenz durchgeführt wird . Da die Linux-Unterstützung eine sehr neue Funktion in Edge Impulse ist, bin ich mir sicher, dass sie in naher Zukunft viele Verbesserungen erfahren wird, die ein schnelleres Ableiten und Hochladen von benutzerkommentierten Daten ermöglichen.

ARM NN beschleunigte Inferenz

Obwohl wir wissen, dass Raspberry Pi 4 nicht das beste Board für Machine-Learning-Inferenz ist, da es dafür keinen Hardwarebeschleuniger hat, können wir immer noch eine höhere Inferenzgeschwindigkeit als in Echtzeit erreichen

a) Verwenden des kleineren Modus

b) Sicherstellen, dass wir alle 4 Kerne und Single Instruction Multiple Data (SIMD)-Befehle verwenden, bei denen mehrere Verarbeitungselemente in der Pipeline Operationen an mehreren Datenpunkten gleichzeitig ausführen, verfügbar mit der Neon-Optimierungsarchitekturerweiterung für ARM-Prozessoren.

Quelle: reTerminal Machine Learning Demos (Edge Impulse und Arm NN)


Herstellungsprozess

  1. Die Lieferkette und maschinelles Lernen
  2. ADLINK:säulenmontierte Edge-KI- und Machine-Learning-Lösung mit Mehrfachzugriff
  3. MQTT-Kommunikation zwischen NodeMCU und Raspberry Pi 3 B+
  4. Python- und Raspberry Pi-Temperatursensor
  5. Raspberry Pi Temperatur- und Lichtsensor
  6. Raspberry Pi Sensor- und Aktuatorsteuerung
  7. Zuverlässigkeit steigern und Wartungsergebnisse verbessern mit maschinellem Lernen
  8. NXP verdoppelt maschinelles Lernen am Edge
  9. Sollte die Beschaffung KI und maschinelles Lernen fürchten oder begrüßen?
  10. AWS stärkt seine Angebote für KI und maschinelles Lernen