Inhaltsverzeichnis:
- Schritt 1: Sipeed MAix: KI am Edge
- Schritt 2: Bereiten Sie Ihre Umgebung vor
- Schritt 3: Kompilieren Sie den Code
- Schritt 4: Hochladen der.bin-Datei
- Schritt 5: Anschließen an Arduino
- Schritt 6: Anschließen an Raspberry Pi
- Schritt 7: Fazit
Video: AI-Kamera für Raspberry Pi/Arduino - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Wenn Sie die Nachrichten in letzter Zeit verfolgt haben, gab es eine Explosion von Start-ups, die Chips zur Beschleunigung der Inferenz und des Trainings von ML-Algorithmen (Machine Learning) entwickelten. Die meisten dieser Chips befinden sich jedoch noch in der Entwicklung und sind nicht wirklich etwas, das Ihr durchschnittlicher Hersteller in die Hände bekommen kann. Die einzige nennenswerte Ausnahme war bisher der Intel Movidius Neural Compute Stick, der käuflich zu erwerben ist und mit einem guten SDK geliefert wird. Es hat einige wesentliche Nachteile - nämlich den Preis (ca. 100 USD) und die Tatsache, dass es im USB-Stick-Format geliefert wird. Es ist großartig, wenn Sie es mit einem Laptop oder Raspberry PI verwenden möchten, aber was, wenn Sie einige Bilderkennungsprojekte mit Arduino durchführen möchten? Oder Raspberry Pi Zero?
Schritt 1: Sipeed MAix: KI am Edge
Vor nicht allzu langer Zeit habe ich das Entwicklungsboard Sipeed M1w K210 in die Hände bekommen, das über eine Dual-Core-RISC-V-64-Bit-CPU und eine integrierte KPU (Neural Network Processor) verfügt, die speziell für die Beschleunigung von CNN für die Bildverarbeitung entwickelt wurde. Weitere Details können Sie hier lesen.
Der Preis dieses Boards hat mich ehrlich gesagt schockiert, es beträgt nur 19 USD für ein vollwertiges AI-on-the-Edge-Entwicklungsboard mit Wi-Fi-Unterstützung! Es gibt jedoch einen Vorbehalt (natürlich gibt es): Die Micropython-Firmware für das Board befindet sich noch in der Entwicklung und ist insgesamt derzeit nicht allzu benutzerfreundlich. Die einzige Möglichkeit, auf alle Funktionen zuzugreifen, besteht derzeit darin, Ihren eigenen eingebetteten C-Code zu schreiben oder einige vorhandene Demos zu modifizieren.
In diesem Tutorial wird erklärt, wie Sie das Mobilenet 20-Klassenerkennungsmodell verwenden, um die Objekte zu erkennen und den erkannten Objektcode über UART zu senden, von wo aus er von Arduino/Raspberry Pi empfangen werden kann.
In diesem Tutorial wird davon ausgegangen, dass Sie mit Linux und den Grundlagen der Kompilierung von C-Code vertraut sind. Wenn Ihnen das Hören dieses Satzes ein wenig schwindelig wurde:), dann fahren Sie einfach mit Schritt 4 fort, wo Sie meine vorgefertigte Binärdatei auf Sipeed M1 hochladen und das Kompilieren überspringen.
Schritt 2: Bereiten Sie Ihre Umgebung vor
Ich habe Ubuntu 16.04 zum Kompilieren und Hochladen von C-Code verwendet. Unter Windows ist das möglich, aber ich selbst habe es nicht ausprobiert.
Laden Sie die RISC-V GNU Compiler Toolchain herunter und installieren Sie alle erforderlichen Abhängigkeiten.
git clone --rekursive
sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
Kopieren Sie die heruntergeladene Toolchain in das Verzeichnis /opt. Führen Sie danach die folgenden Befehle aus
./configure --prefix=/opt/kendryte-toolchain --with-cmodel=medany
machen
Fügen Sie jetzt /opt/kendryte-toolchain/bin zu Ihrem PATH hinzu.
Sie können jetzt den Code kompilieren!
Schritt 3: Kompilieren Sie den Code
Laden Sie den Code aus meinem Github-Repository herunter.
Kendryte K210 Standalone-SDK herunterladen
Kopieren Sie den Ordner /kpu aus meinem Github-Repository in den Ordner /src im SDK.
Führen Sie die folgenden Befehle im SDK-Ordner aus (nicht im /src-Ordner!)
mkdir build && cd build
cmake.. -DPROJ=project_name -DTOOLCHAIN=/opt/kendryte-toolchain/bin && make
wobei project_name der Name Ihres Projekts ist (bis zu Ihnen) und -DTOOLCHAIN= auf den Speicherort Ihrer risc-v-Toolchain zeigen sollte (Sie haben sie im ersten Schritt heruntergeladen, erinnern Sie sich?)
Groß! Jetzt sehen Sie hoffentlich, dass die Kompilierung ohne Fehler abgeschlossen wurde und Sie eine.bin-Datei haben, die Sie hochladen können.
Schritt 4: Hochladen der.bin-Datei
Verbinden Sie nun Ihren Sipeed M1 mit dem Computer und führen Sie aus dem /build-Ordner den folgenden Befehl aus
sudo python3 isp_auto.py -d /dev/ttyUSB0 -b 200000 kpu.bin
Dabei ist kpu.bin der Name Ihrer.bin-Datei
Der Upload dauert normalerweise 2-3 Minuten, danach wird das Board 20 Klassen erkennen. Der letzte Schritt für uns ist die Verbindung mit Arduino mega oder Raspberry Pi.
!!! Wenn Sie gerade von Schritt 2 gekommen sind !
Führen Sie den folgenden Befehl aus dem Ordner aus, in dem Sie mein Github-Repository geklont haben
sudo python3 isp_auto.py -d /dev/ttyUSB0 -b 200000 kpu_bin.bin
Der Upload dauert normalerweise 2-3 Minuten, danach wird das Board 20 Klassen erkennen. Der letzte Schritt für uns ist die Verbindung mit Arduino mega oder Raspberry Pi.
Schritt 5: Anschließen an Arduino
Ich habe den Arduino Mega mit Seeed Studio Mega Shield verwendet, deshalb habe ich einen Grove-Stecker an die Sipeed M1-Platine gelötet. Sie können jedoch einfach Überbrückungsdrähte verwenden und Sipeed M1 direkt an Arduino Mega anschließen, indem Sie diesem Schaltplan folgen.
Laden Sie danach die Camera.ino-Skizze hoch und öffnen Sie den Serial Monitor. Wenn Sie die Kamera auf verschiedene Objekte richten (die Liste der 20 Klassen ist in der Skizze) sollte der Name der Klasse im seriellen Monitor ausgegeben werden!
Herzliche Glückwünsche! Sie haben jetzt ein funktionierendes Bilderkennungsmodul für Ihr Arduino!
Schritt 6: Anschließen an Raspberry Pi
Ich habe Grove Pi + Hut für Raspberry Pi 2B verwendet, aber wie bei Arduino können Sie Sipeed M1 einfach direkt an die UART-Schnittstelle von Raspberry Pi anschließen, indem Sie diesem Schaltplan folgen.
Danach starten Sie camera_speak.py und richten Sie die Kamera auf verschiedene Objekte. Das Terminal gibt den folgenden Text aus: "Ich denke, es ist" und auch wenn Sie Lautsprecher angeschlossen haben, wird es diesen Satz laut aussprechen. Ziemlich cool, nicht wahr?
Schritt 7: Fazit
Wir leben in sehr aufregenden Zeiten, in denen KI und maschinelles Lernen alle Bereiche unseres Lebens durchdringen. Ich freue mich auf die Entwicklung in diesem Bereich. Ich bleibe in Kontakt mit dem Sipeed-Team und weiß, dass sie aktiv Micropython-Wrapper für alle notwendigen Funktionen entwickeln, einschließlich der CNN-Beschleunigung.
Wenn es fertig ist, werde ich sehr wahrscheinlich weitere Anleitungen zur Verwendung Ihrer eigenen CNN-Modelle mit Micropython veröffentlichen. Denken Sie an all die aufregenden Anwendungen, die Sie für ein Board haben können, das zu diesem Preis und mit diesem Footprint Ihre eigenen neuronalen Bildverarbeitungsnetze betreiben kann!
Empfohlen:
Anleitung für Raspberry Pi Gaming Emulator: 7 Schritte
Raspberry Pi Gaming Emulator Anleitung: Jeder liebt es zu spielen. Auch wenn wir ernsthafte Arbeit leisten. Und das ist natürlich, denn jeder verdient Ruhe, Freizeit oder Freizeit. Und natürlich können wir uns kaum weigern, unser Lieblingsspiel gespielt zu haben. Ich erinnere mich an die Zeit, als ein Typ
Anfängerleitfaden für Raspberry Pi: 6 Schritte (mit Bildern)
Anfängerleitfaden für Raspberry Pi: Ich arbeite seit geraumer Zeit mit Arduino. Es ist einfach, billig und erledigt die Arbeit. Aber in letzter Zeit tendiere ich mehr zu IoT-Projekten. Also begann ich mit dem ESP-Entwicklungsboard und es funktionierte perfekt. Aber jetzt möchte ich in Richtung
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i
Hutschienenhalterung für Raspberry Pi 4: 7 Schritte
Hutschienenhalterung für Raspberry Pi 4: Manchmal ist es sinnvoll, Ihr Raspberry Pi 4 basiertes Projekt dauerhaft in einem Schaltschrank zu montieren - zum Beispiel in der Hausautomation oder industriellen Anwendungen. In solchen Fällen hilft Ihnen unser RasPiBox Gehäuse-Set für Raspberry Pi A+, 3B+ und 4B
Tox & Toxygen für den Raspberry Pi 3: 5 Schritte
Tox & Toxygen für den Raspberry Pi 3: In dieser Anleitung erfahren Sie, wie Sie Toxygen auf Raspberry Pi 3 installieren und verwenden. Aber zuerst sprechen wir über Tox.Tox ist eine verschlüsselte Art zu sprechen und laut seiner Website "A New Kind" von Instant Messaging. Ob Konzerne oder Regierungen