3 Punkte von GN⁺ 2024-06-26 | 1 Kommentare | Auf WhatsApp teilen

SIMD-beschleunigte Computer Vision auf einem 2-Dollar-Mikrocontroller

Leistung des ESP32-S3

  • Der ESP32-S3 ist ein günstiger Mikrocontroller mit einer 240-MHz-Dual-Core-CPU sowie verschiedenen Peripheriekomponenten einschließlich WiFi und Bluetooth Low Energy.
  • Der Chip unterstützt 128-Bit-SIMD-Instruktionen, mit denen sich die Leistung deutlich steigern lässt.

Implementierung eines SIMD-beschleunigten FAST-Eckendetektors

  • Der FAST-Eckendetektor wurde mit SIMD-Instruktionen beschleunigt und kann dadurch QVGA-Frames (320x240) in etwa 6 ms verarbeiten.
  • Damit wird im Vergleich zur Referenzimplementierung ungefähr die doppelte Leistung erreicht.

Assemblersprache und Registerallokator

  • Auf dem ESP32-S3 wurde Assemblersprache gelernt und ein einfacher Registerallokator (basm) geschrieben, um die Einschränkungen des Chips zu überwinden.
  • Mithilfe von SIMD-Instruktionen wurde eine Funktion implementiert, die 16 Pixel gleichzeitig verarbeitet.

Verarbeitung von Pixeldaten

  • Für die Verarbeitung der Pixeldaten werden die Unterschiede zwischen dem zentralen Pixel und den umliegenden Pixeln verglichen.
  • Um die Einschränkungen des ESP32-S3 zu überwinden, wurde eine geeignete Methode zur Umwandlung der Pixeldaten entwickelt.

Leistungssteigerung

  • Der SIMD-beschleunigte FAST-Eckendetektor erhöht die Verarbeitungsgeschwindigkeit um etwa 220 %.
  • Dadurch kann der ESP32-S3 einen VGA-Stream mit 30 fps in Echtzeit verarbeiten.

Meinung von GN⁺

  • Vielseitigkeit des ESP32-S3: Der ESP32-S3 bietet für seinen niedrigen Preis eine starke Leistung und ist für verschiedenste IoT- und Embedded-System-Projekte nützlich.
  • Bedeutung von SIMD-Instruktionen: Durch den Einsatz von SIMD-Instruktionen lässt sich auch auf leistungsschwacher Hardware eine hohe Performance erzielen.
  • Assemblersprache lernen: Wer Assemblersprache lernt, kann die detaillierte Funktionsweise von Hardware besser verstehen und gezielter optimieren.
  • Einschränkungen überwinden: Das Überwinden von Hardware-Beschränkungen fördert kreatives Problemlösen.
  • Computer Vision in Echtzeit: Der Beitrag zeigt, dass Echtzeit-Computer-Vision-Aufgaben auch auf kostengünstigen Mikrocontrollern möglich sind.

1 Kommentare

 
GN⁺ 2024-06-26
Hacker-News-Kommentare
  • Es ist großartig, dass Silizium billiger ist als ein durchschnittlicher Kaffee. Vielleicht sind Chips nicht zu billig, sondern Kaffee einfach zu teuer.
  • Das ESP32-CAM-Board unterstützt praktische Computer-Vision-Projekte.
  • Wer interessiert ist, sollte sich das Produkt von Edge Impulse ansehen.
  • Edge Impulse optimiert Deep Learning, Computer Vision und DSP-Aufgaben.
  • Wenn man TensorFlow-, PyTorch- oder JAX-Modelle hochlädt, erhält man eine optimierte C++-Bibliothek.
  • Edge Impulse bietet ein Studio zum Trainieren von Modellen für verschiedene Embedded-Hardware.
  • Ein kurzer Artikel über SIMD auf dem ESP32-S3 ist ebenfalls lesenswert.
  • Ich frage mich, ob es möglich wäre, mehrere ESP32 parallel zu verwenden, um höhere Auflösungen und Bildraten zu verarbeiten.
  • Durch die Beschleunigung des FAST-Feature-Detektors mit SIMD wurde die Leistung um 220 % gesteigert.
  • ARMv7 und ARMv8 verfügen über optionale Erweiterungen des SIMD-Befehlssatzes.
  • Der Orrin Nano bietet 40 TOPS, was für Copilot+ ausreicht.
  • Es wird erforscht, wie sich infrartes Licht in sichtbares Licht umwandeln lässt.
  • Es gibt die PicoVGA-Bibliothek, mit der sich VGA-/TV-Displays auf dem Raspberry Pi Pico umsetzen lassen.
  • Ich frage mich, ob es möglich ist, Rust mit ESP32-Controllern zu verwenden.
  • Ich frage mich, ob der ESP32 VLIW-Slots hat und ob eine engere Instruktionspaketierung möglich ist.
  • SIMD ist für diese Art der Verarbeitung besser als SMT.
  • Ich bevorzuge teurere und bessere Lösungen. Es gibt Intel UpSquared.