Table des matières:
- Étape 1: Sipeed MAix: l'IA à la périphérie
- Étape 2: Préparez votre environnement
- Étape 3: Compiler le code
- Étape 4: Téléchargement du fichier.bin
- Étape 5: connexion à Arduino
- Étape 6: connexion au Raspberry Pi
- Étape 7: Conclusion
Vidéo: Caméra AI pour Raspberry Pi/Arduino : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Si vous avez suivi l'actualité récemment, il y a eu une explosion de start-ups développant des puces pour accélérer l'inférence et la formation d'algorithmes ML (machine learning). Cependant, la plupart de ces puces sont encore en cours de développement et ce n'est pas vraiment quelque chose que votre fabricant moyen peut obtenir. La seule exception significative à ce jour était Intel Movidius Neural Compute Stick, qui est disponible à l'achat et est livré avec un bon SDK. Il présente quelques inconvénients importants, à savoir le prix (environ 100 USD) et le fait qu'il soit au format clé USB. C'est génial si vous voulez l'utiliser avec un ordinateur portable ou un Raspberry PI, mais que faire si vous voulez faire des projets de reconnaissance d'images avec Arduino ? Ou Raspberry Pi Zero ?
Étape 1: Sipeed MAix: l'IA à la périphérie
Il n'y a pas si longtemps, j'ai mis la main sur la carte de développement Sipeed M1w K210, dotée d'un processeur RISC-V 64 bits à double cœur et d'un KPU (processeur de réseau neuronal) intégré, spécialement conçu pour accélérer CNN pour le traitement d'images. Vous pouvez lire plus de détails ici.
Le prix de cette carte m'a franchement choqué, il n'est que de 19 USD pour une carte de développement AI-on-the-edge à part entière avec prise en charge Wi-Fi ! Il y a cependant une mise en garde (bien sûr qu'il y en a): le micrologiciel micropython de la carte est toujours en développement et, dans l'ensemble, il n'est pas trop convivial pour le moment. La seule façon d'accéder à toutes ses fonctions pour le moment est d'écrire votre propre code C intégré ou de modifier certaines démos existantes.
Ce tutoriel explique comment utiliser le modèle de détection de classe Mobilenet 20 pour détecter les objets et envoyer le code d'objet détecté via UART, d'où il peut être reçu par Arduino/Raspberry Pi.
Maintenant, ce didacticiel suppose que vous connaissez Linux et les bases de la compilation de code C. Si entendre cette phrase vous a un peu étourdi:) alors passez simplement à l'étape 4, où vous téléchargez mon binaire pré-construit sur Sipeed M1 et sautez la compilation.
Étape 2: Préparez votre environnement
J'ai utilisé Ubuntu 16.04 pour la compilation et le téléchargement de code C. Il est possible de le faire sous Windows, mais je ne l'ai pas essayé moi-même.
Téléchargez la chaîne d'outils du compilateur RISC-V GNU, installez toutes les dépendances nécessaires.
git clone --recursive
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
Copiez la chaîne d'outils téléchargée dans le répertoire /opt. Après cela, exécutez les commandes suivantes
./configure --prefix=/opt/kendryte-toolchain --with-cmodel=medany
Fabriquer
Ajoutez /opt/kendryte-toolchain/bin à votre PATH maintenant.
Vous êtes maintenant prêt à compiler le code !
Étape 3: Compiler le code
Téléchargez le code depuis mon dépôt github.
Télécharger le SDK autonome Kendryte K210
Copiez le dossier /kpu de mon référentiel github dans le dossier /src du SDK.
Exécutez les commandes suivantes dans le dossier SDK (pas dans le dossier /src !)
construction de mkdir && construction de cd
cmake.. -DPROJ=nom_projet -DTOOLCHAIN=/opt/kendryte-toolchain/bin && make
où project_name est le nom de votre projet (à vous de choisir) et -DTOOLCHAIN= doit pointer vers l'emplacement de votre chaîne d'outils risc-v (vous l'avez téléchargé à la première étape, vous vous souvenez ?)
Super! Maintenant, j'espère que vous verrez la compilation terminée sans erreur et que vous avez un fichier.bin que vous pouvez télécharger.
Étape 4: Téléchargement du fichier.bin
Connectez maintenant votre Sipeed M1 à l'ordinateur et à partir du dossier /build exécutez la commande suivante
sudo python3 isp_auto.py -d /dev/ttyUSB0 -b 200000 kpu.bin
Où kpu.bin est le nom de votre fichier.bin
Le téléchargement prend généralement 2-3 minutes, une fois terminé, vous verrez le tableau exécuter la détection de 20 classes. La dernière étape pour nous est de le connecter à Arduino mega ou Raspberry Pi.
!!! Si vous venez de l'étape 2 !
Exécutez la commande suivante à partir du dossier où vous avez cloné mon référentiel github
sudo python3 isp_auto.py -d /dev/ttyUSB0 -b 200000 kpu_bin.bin
Le téléchargement prend généralement 2-3 minutes, une fois terminé, vous verrez le tableau exécuter la détection de 20 classes. La dernière étape pour nous est de le connecter à Arduino mega ou Raspberry Pi.
Étape 5: connexion à Arduino
J'ai utilisé l'Arduino Mega avec Seeed Studio Mega Shield, c'est pourquoi j'ai soudé un connecteur Grove à la carte Sipeed M1. Cependant, vous pouvez simplement utiliser des cavaliers et connecter Sipeed M1 directement à Arduino Mega, en suivant ce schéma de câblage.
Après cela, téléchargez le croquis camera.ino et ouvrez le moniteur série. Lorsque vous pointez la caméra sur différents objets (la liste des 20 classes est dans le croquis), le nom de la classe doit être affiché sur le moniteur série !
Toutes nos félicitations! Vous avez maintenant un module de détection d'image fonctionnel pour votre Arduino !
Étape 6: connexion au Raspberry Pi
J'ai utilisé le chapeau Grove Pi+ pour Raspberry Pi 2B, mais encore une fois, comme avec Arduino, vous pouvez simplement connecter directement Sipeed M1 à l'interface UART de Raspberry Pi en suivant ce schéma de câblage.
Après cela, lancez camera_speak.py et pointez la caméra vers différents objets, le terminal affichera le texte suivant "Je pense que c'est" et aussi si vous avez des haut-parleurs connectés, il prononcera cette phrase à haute voix. Plutôt cool, n'est-ce pas ?
Étape 7: Conclusion
Nous vivons une époque très excitante, avec l'IA et l'apprentissage automatique pénétrant tous les domaines de notre vie. J'attends avec impatience le développement dans ce domaine. Je reste en contact avec l'équipe Sipeed, et je sais qu'ils développent activement un wrapper micropython pour toutes les fonctions nécessaires, y compris l'accélération CNN.
Quand il sera prêt, je publierai très probablement plus d'instructions sur la façon d'utiliser vos propres modèles CNN avec micropython. Pensez à toutes les applications passionnantes que vous pouvez avoir pour une carte qui peut exécuter vos propres réseaux de neurones de traitement d'image pour ce prix et avec cette empreinte !
Conseillé:
Caméra de documents pour ordinateur portable à 5 $ pour la visioconférence : 4 étapes (avec photos)
Caméra de documents pour ordinateur portable à 5 $ pour la visioconférence : publiée en 20200811 par John E. Nelson [email protected] www.instructables.com/id/A-Sub-10-MetaPrax-Documen
Caméra de vidéosurveillance avec NodeMCU + module de caméra pour ancien ordinateur portable (avec et sans utilisation de Blynk): 5 étapes
Caméra de vidéosurveillance avec NodeMCU + module de caméra de l'ancien ordinateur portable (avec et sans utiliser Blynk) : Salut les gars ! Dans ce instructable, je vais vous montrer comment j'ai utilisé le module de caméra d'un ancien ordinateur portable et nodeMCU pour faire quelque chose de similaire à CCTV
Réchauffeur de rosée Raspberry Pi pour caméra All-Sky : 7 étapes
Réchauffeur de rosée Raspberry Pi pour caméra All-sky : [Regardez l'étape 7 pour modifier le relais utilisé] Il s'agit d'une mise à niveau vers une caméra tout ciel que j'ai construite en suivant l'excellent guide de Thomas Jaquin (Wireless All Sky Camera) Un problème courant qui se produit pour les caméras du ciel (et les télescopes aussi) est que la rosée co
WTware pour Raspberry Pi 2 (Pi 3) - Système d'exploitation pour clients légers : 3 étapes
WTware pour Raspberry Pi 2 (Pi 3) - Système d'exploitation pour clients légers : Client léger de Raspberry Pi - c'est le rêve d'un administrateur système de réseau paresseux. Applications Windows sur Pi.WTware pour Raspberry Pi est le système d'exploitation des clients légers, qui crée des connexions à Windows Remote Desktop Services.WTware pour Raspbe
UNICORN CAMERA - Raspberry Pi Zero W NoIR 8MP Construction de la caméra : 7 étapes (avec photos)
UNICORN CAMERA - Raspberry Pi Zero W NoIR 8MP Camera Build: Pi Zero W NoIR 8MP Camera BuildThis Instructable a été créé pour aider tous ceux qui veulent une caméra infrarouge ou une caméra portable vraiment cool ou une caméra portable Raspberry Pi ou veut juste s'amuser, heheh . C'est le plus abordable et le plus configurable