Table des matières:
- Étape 1: Micrologiciel Flash Micropython
- Étape 2: Connectez-vous à MaiX Bit
- Étape 3: lancez les démos
Vidéo: Démos Sipeed MaiX Bit OpenMV - Vision par ordinateur : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Ceci est le deuxième article de la série sur Sipeed AI sur la plate-forme de microcontrôleur Edge. Cette fois, j'écrirai sur MaiX Bit (lien vers Seeed Studio Shop), une carte de développement plus petite et prête pour la maquette. Ses spécifications sont très similaires à MaiX Dock, la carte que j'ai utilisée pour le dernier tutoriel, car ils utilisent la même puce, Kendryte K210.
Nous allons utiliser le micrologiciel micropython pour essayer des démos OpenMV. Voici la description de la page d'accueil d'OpenMV:
Le projet OpenMV consiste à créer des modules de vision industrielle peu coûteux, extensibles et alimentés par Python et vise à devenir «l'Arduino de la vision industrielle».…Python facilite grandement le travail avec les algorithmes de vision industrielle. Par exemple, la méthode find_blobs() dans le code trouve les blobs de couleur et renvoie une liste d'objets à 8 valeurs représentant chaque blobs de couleur trouvé. En Python, parcourir la liste des objets renvoyés par find_blobs() et dessiner un rectangle autour de chaque blob de couleur se fait facilement en seulement deux lignes de code.
Ainsi, bien que MaiX Bit dispose d'un accélérateur de réseau neuronal dédié, il peut parfois être plus facile d'utiliser simplement des algorithmes codés en dur OpenMV pour faire le travail ou de les utiliser les uns à côté des autres.
Certains cas d'utilisation qui me viennent à l'esprit sont:
1) Détection de ligne pour le bot suiveur de ligne
2) Détection des feux de circulation avec détection de cercle et de couleur
3) Utilisation de la détection de visage pour trouver les visages pour la reconnaissance faciale (avec DNN)
Dépôt Github pour cet article
Étape 1: Micrologiciel Flash Micropython
Tout d'abord, nous devrons flasher le micrologiciel micropython sur notre carte. Un binaire précompilé est inclus dans le référentiel github pour cet article, avec kflash.py (un utilitaire flash). Si vous souhaitez compiler le firmware à partir du code source, téléchargez simplement le code source sur https://github.com/sipeed/MaixPy, installez la chaîne d'outils et compilez le code source dans le fichier maixpy.bin. Des instructions de construction détaillées peuvent être trouvées ici.
Flashez le fichier binaire avec
sudo python3 kflash.py kpu.bin
Après un clignotement réussi, passez à l'étape suivante.
Étape 2: Connectez-vous à MaiX Bit
Maintenant, notre MaiX Bit devrait être accessible via une connexion série USB avec un débit en bauds de 115200. Vous pouvez utiliser votre logiciel préféré pour la communication série ou simplement les commandes cat et echo, selon vos besoins. J'utilisais un écran pour la communication série et je le trouve très pratique.
La commande d'établissement d'une session de communication série avec écran est
écran sudo /dev/ttyUSB0 115200
où /dev/ttyUSB0 est l'adresse de votre appareil.
Vous devrez peut-être appuyer sur le bouton de réinitialisation de votre microcontrôleur pour voir le message d'accueil et l'invite de l'interpréteur python.
Étape 3: lancez les démos
Vous pouvez maintenant accéder au mode copie en appuyant sur Ctrl+E et copier-coller les codes de démonstration. Pour les exécuter, appuyez sur Ctrl+D en mode copie.
Si vous ne souhaitez pas enregistrer les vidéos, vous devez commenter les lignes d'enregistrement vidéo. Sinon, le code lèvera une exception s'il n'y a pas de carte SD insérée
Voici une brève description de chaque démo:
Find circles - utilise la fonction find_circles d'OpenMV. Nécessite plus de réglages pour votre application spécifique, en particulier le seuil (contrôle les cercles détectés à partir de la transformation de Hough. Seuls les cercles d'une amplitude supérieure ou égale au seuil sont renvoyés) et les valeurs r_min, r_max.
Rechercher des rectangles - utilise la fonction find_rects d'OpenMV. Vous pouvez jouer avec la valeur seuil, mais la valeur que j'ai dans la démo fonctionne assez bien pour trouver des rectangles.
Trouver des visages, trouver des yeux - utilise la fonction find_features avec Haar Cascades pour détecter les yeux et le visage frontal dans l'image. Vous pouvez jouer avec les valeurs de seuil et d'échelle pour le bon compromis vitesse-précision.
Rechercher des lignes infinies - utilise la fonction find_lines pour trouver toutes les lignes infinies de l'image à l'aide de la transformation de Hough.
Détecter la couleur - utilise la fonction get_statistics pour obtenir un objet centile, puis convertit les valeurs moyennes du tuple LAB en tuple des valeurs RVB. J'ai écrit cet exemple moi-même et cela fonctionne assez bien, mais gardez à l'esprit que les résultats de la détection des couleurs seront affectés par les conditions de lumière ambiante.
Vous pouvez trouver de nombreuses autres démos intéressantes dans le référentiel github d'OpenMV ! Ils sont pour la plupart compatibles avec le micropython MaiX Bit, la seule chose dont vous devez vous souvenir est d'ajouter sensor.run(1) après avoir défini le format pix et la taille du cadre.
Bonne expérimentation avec le code OpenMV. Si vous avez des questions ou souhaitez partager certains de vos résultats intéressants, n'hésitez pas à me joindre sur Youtube ou LinkedIn. Maintenant, excusez-moi, je vais faire des robots !
Conseillé:
Détection d'objets avec les cartes Sipeed MaiX (Kendryte K210): 6 étapes
Détection d'objets avec les cartes Sipeed MaiX (Kendryte K210): Dans la continuité de mon article précédent sur la reconnaissance d'images avec les cartes Sipeed MaiX, j'ai décidé d'écrire un autre tutoriel, axé sur la détection d'objets. Il y a eu récemment du matériel intéressant avec la puce Kendryte K210, y compris S
Comment envoyer des fichiers volumineux d'ordinateur à ordinateur : 6 étapes
Comment envoyer des fichiers volumineux d'un ordinateur à un autre : La taille des fichiers continue d'augmenter à mesure que la technologie progresse. Si vous êtes dans un métier créatif, comme la conception ou la modélisation, ou simplement un amateur, le transfert de fichiers volumineux peut être un problème. La plupart des services de messagerie limitent la taille maximale des pièces jointes à environ 25
Réutilisez le pavé tactile d'un vieil ordinateur portable pour contrôler un ordinateur ! : 11 étapes (avec photos)
Réutilisez le pavé tactile d'un ancien ordinateur portable pour contrôler un ordinateur ! : Les pavés tactiles pour ordinateur portable PS/2 sont parmi les dispositifs d'interface utilisateur les plus cool à utiliser avec un microcontrôleur. Les gestes de glissement et de tapotement des doigts peuvent s'avérer permettre de contrôler des choses de manière assez simple et amusante. Dans ce Instructable, combinons un avec
Comment mettre à niveau un processeur d'ordinateur portable (et d'autres trucs sympas !) pour transformer un ordinateur portable SLOW/DEAD en un ordinateur portable RAPIDE ! : 4 étapes
Comment mettre à niveau un processeur PORTABLE (et d'autres trucs sympas !) pour transformer un ordinateur portable SLOW/DEAD en un ordinateur portable RAPIDE ! très obsolète. . . L'écran LCD a été brisé et le disque dur principal s'est grippé, de sorte que l'ordinateur portable était essentiellement mort
Support d'ordinateur portable bon marché / Convertisseur d'ordinateur portable en ordinateur de bureau : 3 étapes
Support d'ordinateur portable bon marché / Convertisseur d'ordinateur portable en ordinateur de bureau : je me retrouve à utiliser mon ordinateur portable pendant de longues périodes. Cela devient inconfortable au bout d'un moment. Le clavier et l'écran doivent idéalement être séparés pour réduire la fatigue du cou lors d'une utilisation prolongée. Si vous êtes un utilisateur d'ordinateur portable à temps plein, je vous suggère de construire s