Programmation avec le capteur de vision IA dans les blocs VEXcode V5

Assurez-vous d'avoir configuré les codes de couleur Color Signatures et Color Codes avec votre capteur de vision AI afin qu'ils puissent être utilisés avec vos blocs. Pour en savoir plus sur leur configuration, vous pouvez consulter les articles ci-dessous :

Le capteur de vision IA peut également détecter les classifications IA et les AprilTags. Pour savoir comment activer ces modes de détection, cliquez ici :

Pour en savoir plus sur ces blocs individuels et sur la manière de les utiliser dans VEXcode, consultez le site de l'API.


Prendre un instantané

Un bloc contenant la commande prendre un instantané de avec deux sélections déroulantes : l’une intitulée AIVision1 et l’autre COL1. Ce bloc est conçu pour prendre une capture d'écran à partir d'un capteur de vision IA et référencer un objet ou une couleur spécifique à partir des variables désignées dans un environnement de codage visuel. La forme du bloc présente de légères courbes aux extrémités, typiques des interfaces de programmation par blocs.

Le blocTake Snapshot prend une photo de ce que le capteur de vision IA voit actuellement et extrait des données de cet instantané qui peuvent ensuite être utilisées dans un projet. Lors de la prise d'une capture d'écran, vous devez spécifier le type d'objet dont le capteur de vision IA doit collecter les données :

  • Signature couleur
  • Code couleur
  • Classifications IA
  • Étiquettes d'avril

La prise d'un instantané créera un tableau de tous les objets détectés que vous avez spécifiés. Par exemple, si vous vouliez détecter une signature de couleur « Rouge »etle capteur de vision IA détectait 3 objets rouges différents, les données des trois seraient placées dans le
.
Pour plus d'informations sur la manière de spécifier entre différents objets, consultez la section « Définir l'élément d'objet » de cet article.

Un bloc de code bleu clair contenant la commande permettant de prendre un instantané d'un objet ou d'une couleur. Il existe deux options déroulantes : l’une intitulée AIVision2 et l’autre Blue. Ce bloc est conçu pour être utilisé dans un environnement de programmation par blocs, où il capture un instantané à partir d'un capteur de vision IA et suit un objet ou une couleur définie comme bleue. Le bloc présente de légères courbes, typiques des interfaces de programmation qui utilisent des blocs modulaires.

Dans cet exemple, il ne détectera que les objets qui correspondent à sa signature de couleur « Bleu » configurée et rien d'.

Données extraites d'un instantané

N'oubliez pas que le capteur de vision IA utilisera sa dernière capture d'écran pour tous les blocs suivants. Pour vous assurer d'obtenir toujours les informations les plus récentes de votre capteur de vision IA, reprenez votre cliché chaque fois que vous souhaitez en extraire des données. 

Résolution

Il est crucial de comprendre la résolution du capteur de vision IA pour une interprétation précise des données. Le capteur a une résolution de 320x240 pixels, avec le centre exact aux coordonnées (160, 120).

Les coordonnées X inférieures à 160 correspondent à la moitié gauche du champ de vision du capteur, tandis que celles supérieures à 160 représentent la moitié droite. De même, les coordonnées Y inférieures à 120 indiquent la moitié supérieure de la vue, et celles supérieures à 120 représentent la moitié inférieure.

Allez à Comprendre les données dans l'utilitaire AI Vision dans VEXcode V5 pour plus d'informations sur la façon dont les objets sont mesurés avec le capteur AI Vision.

Largeur et hauteur

Il s'agit de la largeur ou de la hauteur de l'objet détecté, en pixels.

L'image montre une buckminsterfullerène bleue avec un contour carré blanc qui la suit. Le coin supérieur gauche comporte une étiquette indiquant qu'il s'agit d'un objet bleu, avec les coordonnées X:176, Y:117 et les dimensions L:80, H:78. Les flèches rouges mettent en évidence la largeur et la hauteur de l'objet.

Les mesures de largeur et de hauteur permettent d'identifier différents objets. Par exemple, une fullerène C18 aura une hauteur supérieure à celle d'un anneau C18.

Deux objets cubiques bleus sont suivis par un système de reconnaissance visuelle. Le cube supérieur a un contour blanc avec une étiquette indiquant sa position comme X:215, Y:70 et ses dimensions L:73, H:84. Le cube inférieur a un contour blanc similaire avec l'étiquette affichant X:188, Y:184 et les dimensions L:144, H:113. Chaque cube possède une croix blanche en son centre, indiquant probablement le point focal pour le suivi. Les étiquettes mettent en évidence les mesures et les données de suivi de chaque objet.

La largeur et la hauteur indiquent également la distance d'un objet par rapport au capteur de vision IA. Des mesures plus petites signifient généralement que l'objet est plus éloigné, tandis que des mesures plus grandes suggèrent qu'il est plus proche.

Le programme démarre par le bloc suivant, suivi d'une boucle infinie. À l'intérieur de la boucle, le programme prend un instantané à l'aide du capteur AI Vision (AIVision1) pour détecter un objet bleu. Si l'objet existe, le programme vérifie si sa largeur est inférieure à 250 pixels. Si la condition est vraie, le robot avance ; sinon, il s'arrête. Les blocs sont empilés les uns sur les autres, indiquant le flux du programme dans un environnement de programmation modulaire.

Dans cet exemple, la largeur de l'objet est utilisée pour la navigation. Le robot s'approchera de l'objet jusqu'à ce que sa largeur atteigne une taille spécifique avant de s'arrêter.

CentreX et Centre Y

Il s'agit des coordonnées du centre de l'objet détecté, exprimées en pixels.

Une buckminsterfullerène bleue suivie par un système de vision par ordinateur. L'objet est entouré d'un carré blanc, et à l'intérieur de ce contour se trouve un carré rouge plus petit entourant une croix blanche centrée. Dans le coin supérieur gauche de l'image, une étiquette indique que l'objet est bleu, avec les coordonnées X:176, Y:117 et les dimensions L:80, H:78.

Les coordonnées CenterX et CenterY facilitent la navigation et le positionnement. Le capteur de vision IA possède une résolution de 320 x 240 pixels.

Deux objets cubiques bleus suivis par un système de vision. L'objet supérieur est étiqueté avec les coordonnées X:215, Y:70 et les dimensions L:73, H:84, avec un contour blanc et une croix blanche centrée. L'objet inférieur est étiqueté avec les coordonnées X:188, Y:184 et les dimensions W:144, H:113, également entouré de blanc avec une croix blanche centrée.

Vous pouvez constater qu'un objet plus proche du capteur de vision IA aura une coordonnée CenterY inférieure à celle d'un objet plus éloigné.

Une séquence de codage par blocs commençant par « when started », suivie d'une boucle infinie. À l'intérieur de la boucle, le programme prend une capture d'écran à l'aide d'AIVision1 pour détecter un objet bleu. Si un objet existe, le programme tourne jusqu'à ce que l'objet soit centré dans le champ de vision du capteur AI Vision. L'objet est considéré comme centré si sa valeur centerX est comprise entre 150 et 170. Si l'objet n'est pas centré, le robot tourne à droite ; sinon, il s'arrête. Les blocs indiquent le flux et la logique du programme visuel.

Dans cet exemple, étant donné que le centre de la vue du capteur de vision AI est (160, 120), le robot tournera à droite jusqu'à ce que la coordonnée centreX d'un objet détecté soit supérieure à 150 pixels, mais inférieure à 170 pixels.

Angle

Angle est une propriété disponible uniquement pour les codes de couleur etAprilTags. Cela représente si le code couleurdétectéou AprilTag est orienté différemment.

Une pile de deux cubes, un vert au-dessus et un bleu en dessous, est suivie par un système de vision. Un contour blanc entoure les deux cubes, avec une croix blanche centrée sur le cube vert. L'étiquette en bas de l'image affiche Vert_Bleu A:87°, indiquant les couleurs détectées et une mesure d'angle. En dessous, les coordonnées sont indiquées comme X:117, Y:186, avec les dimensions W:137, H:172, représentant la position et la taille des cubes empilés dans le cadre.

Vous pouvez voir si le robot est orienté différemment par rapport au code couleur ouAprilTag et prendre des décisions de navigation en fonction de cela.

Deux cubes, un vert et un bleu, placés côte à côte et suivis par un système de vision. Un contour blanc entoure les deux cubes, avec une croix blanche au centre. L'étiquette en haut à gauche indique Vert_Bleu A:0°, faisant référence aux couleurs détectées et à une mesure d'angle. En dessous, les coordonnées sont indiquées comme X:150, Y:102, avec les dimensions W:179, H:109, représentant la position et la taille des cubes dans le cadre.

Par exemple, si un code couleur n'est pas détecté sous un angle approprié, l'objet qu'il représente risque de ne pas pouvoir être correctement saisi par le robot.

OriginX et OriginY

OriginX et OriginY correspondent aux coordonnées en pixels du coin supérieur gauche de l'objet détecté.

Une buckminsterfullerène bleue suivie par un système de vision. Un contour blanc entoure l'objet, avec une croix blanche centrée à l'intérieur de ce contour. L'étiquette en haut à gauche indique que la couleur de l'objet est bleue, ainsi que les coordonnées X:176, Y:117 et les dimensions L:80, H:78. Un petit carré rouge met en évidence le coin supérieur gauche de l'objet.

Les coordonnées OriginX et OriginY facilitent la navigation et le positionnement. En combinant cette coordonnée avec la largeur et la hauteur de l'objet, vous pouvez déterminer la taille de la boîte englobante de l'objet. Cela peut faciliter le suivi d'objets en mouvement ou la navigation entre des objets.

Une séquence de codage par blocs commençant par « when started », suivie d'une boucle infinie. À l'intérieur de la boucle, le programme prend une capture d'écran à l'aide d'AIVision1 pour détecter un objet bleu. Si l'objet existe, le programme dessinera un rectangle sur l'écran du cerveau en fonction de la position et de la taille de l'objet. Le rectangle est dessiné à partir des valeurs originX, originY, largeur et hauteur de l'objet, fournies par le capteur AIVision1. Ce programme suit et met en évidence visuellement l'objet détecté sur l'écran du cerveau.

Dans cet exemple, un rectangle sera dessiné sur le cerveau en utilisant les coordonnées exactes de son origine, de sa largeur et de sa hauteur.

tagID

L'identifiant de balise n'est disponible que pourAprilTags. Il s'agit du numéro d'identification pour l'étiquetteavrilspécifiée.

Trois cartes carrées portant des étiquettes AprilTags sont suivies par un système de vision. Chaque carte est étiquetée avec un numéro d'identification et des données de suivi associées. La carte de gauche est étiquetée ID:0, montrant les coordonnées A:350°, X:110, Y:96, W:41, H:41. La carte du milieu, étiquetée ID:3, a les coordonnées A:1°, X:187, Y:180, W:57, H:57. La carte de droite est étiquetée ID:9, avec les coordonnées A:3°, X:237, Y:89, W:38, H:38. Chaque carte possède un contour blanc, et le système suit leur position et leur orientation.

L'identification de balises spécifiques AprilTags permet une navigation sélective. Vous pouvez programmer votre robot pour qu'il se dirige vers certaines étiquettes tout en ignorant les autres, les utilisant ainsi comme points de repère pour la navigation automatisée.

Score

La propriété de score est utilisée lors de la détection declassifications IA avec le capteur de vision IA.

L'image montre quatre objets suivis par un système de vision : deux balles et deux anneaux. La boule rouge est étiquetée avec les coordonnées X:122, Y:84, W:67, H:66 et un score de 99%. La boule bleue a X:228, Y:86, W:70, H:68, avec un score de 99%. L'anneau vert a les coordonnées X:109, Y:186, W:98, H:92 et un score de 99%. L'anneau rouge est étiqueté X:259, Y:187, W:89, H:91, avec un score de 99%. Chaque objet est souligné en blanc, ce qui indique la précision du suivi.

Le score de confiance indique le degré de certitude du capteur de vision IA quant à sa détection. Sur cette image, le système est sûr à 99 % d'identifier la classification IA de ces quatre objets. Vous pouvez utiliser ce score pour vous assurer que votre robot se concentre uniquement sur les détections très fiables.


Élément d'objet défini

Lorsqu'un objet est détecté par le capteur de vision IA, il est placé dans un tableau. Par défaut, le capteur de vision IA extraira les données du premier objet du tableau, c'est-à-dire l'objet ayant l'index 1. Si votre capteur de vision IA n'a détecté qu'un seul objet, celui-ci sera sélectionné par défaut.

Cependant, lorsque votre capteur de vision IA a détecté plusieurs objets à la fois, vous devrez utiliser le blocDéfinir l'élément d'objet pour spécifier l'objet à partir duquel vous souhaitez extraire des données.

Un bloc de codage bleu clair. Elle contient une commande permettant de définir la valeur de l'élément objet pour AIVision1 à 1. Ce bloc fait partie d'un environnement de codage par blocs, généralement utilisé pour définir l'objet ou l'élément sur lequel le capteur AI Vision doit se concentrer ou qu'il doit suivre. La forme du bloc présente de légères courbes, s'intégrant parfaitement à la nature modulaire de la plateforme de codage visuel.

Lorsque plusieurs objets sont détectés par le capteur de vision IA, ils sont disposés dans le tableau du plus grand au plus petit. Cela signifie que le plus grand objet détecté aura toujours l'indice d'objet 1, et le plus petit objet aura toujours l'indice le plus élevé.

L'interface de l'utilitaire de vision IA avec deux cubes bleus détectés sur le côté gauche, chacun marqué de ses coordonnées X et Y et de ses dimensions. Le système est connecté, les AprilTags sont activés, tandis que la classification par IA est désactivée. À droite, les paramètres de couleur bleue sont affichés avec des plages de teinte et de saturation réglables, fixées respectivement à 22 et 0,34. Il existe une option permettant d'ajouter ou de définir la couleur et de figer la vidéo. Le firmware est à jour, il exécute la version 1.0.0.b16, et un bouton de fermeture est disponible en bas.

Dans cet exemple, deux objets ont été détectés avec la signature de couleur « Bleu ». Ils seront tous deux placés dans le tableau lorsque le blocPrendre un instantané sera utilisé.

L'interface de l'utilitaire de vision IA, qui suit deux cubes bleus étiquetés avec leurs données X, Y et de dimension. Le cube de gauche a les coordonnées X:127, Y:179 et les dimensions L:136, H:123, tandis que le cube de droite a les coordonnées X:233, Y:74 et les dimensions L:78, H:87. Le système est connecté, AprilTags est activé et la classification par IA est désactivée. Les paramètres de couleur bleue ont une gamme de teintes de 22 et une saturation de 0,34. Un bouton Freeze Video et les informations du firmware (version 1.0.0.b16) sont affichés en bas.

Ici, l'objet au premier plan deviendrait l'objet d'indice 1, puisqu'il s'agit du plus grand objet, et le plus petit objet deviendrait l'objet d'indice 2.


L'objet existe

Avant d'extraire des données d'un instantané, il est important vérifier que le capteur de vision IA a bien détecté des objets dans cet instantané. C’est là qu’intervient le blocobjet existe.

Existe-t-il un bloc de codage hexagonal bleu clair portant le texte « AIVision1 object » ? Ce bloc fait partie d'un environnement de codage par blocs, généralement utilisé pour vérifier si un objet est détecté par le capteur AI Vision étiqueté AIVision1. Le bloc est conçu pour s'intégrer dans une structure de codage modulaire, avec les légères courbes et la forme caractéristiques de tels environnements.

Ce bloc renverra la valeurVrai
, 1 (Faux),
True) ou(Faux selon que la dernière capture d'écran contienne ou non des objets.
Ce bloc doittoujours être utilisé pour s'assurer que vous n'essayez pas de récupérer des données à partir d'un instantané potentiellement vide.

Une séquence de codage par blocs qui commence par un point d'arrêt suivi d'une boucle infinie. À l'intérieur de la boucle, le capteur AI Vision (AIVision2) prend un instantané pour détecter la couleur bleue. Si un objet présentant la signature visuelle bleue est détecté, le robot avancera. Si aucun objet n'est détecté, le robot s'arrêtera. Les blocs sont empilés pour représenter la logique conditionnelle du programme, où la présence d'un objet détecté contrôle le mouvement du robot.

Par exemple, ici, le robot prendra constamment des clichés grâce au capteur de vision IA. S’il identifie objet avec la signature de couleur « Bleu » , il avancera.


Si une capture d'écran ne présente pas la signature de couleur « Bleu » , le robot cessera de bouger.


Nombre d'objets

Un bloc de codage bleu clair arrondi, étiqueté « Nombre d'objets AIVision1 ». Ce bloc est utilisé dans un environnement de programmation par blocs pour récupérer le nombre d'objets détectés par le capteur AI Vision étiqueté AIVision1. Ce bloc s'intègre dans une structure modulaire, couramment utilisée dans les interfaces de programmation visuelle pour la robotique ou les systèmes de vision.

L'utilisation du bloc Nombre d'objets vous permettra de voir combien d'objets d'une signature de couleur spécifique le capteur de vision AI peut voir dans son dernier instantané. 

L'interface de l'utilitaire de vision IA avec deux cubes bleus détectés sur la gauche. Le système est connecté, AprilTags est activé et la classification par IA est désactivée. L'interface affiche les paramètres de détection de la couleur bleue, avec une teinte réglée sur 22 et une saturation sur 0,34. Des boutons permettant de figer la vidéo et d'ajouter ou de régler la couleur sont présents. Le firmware est indiqué comme étant à jour, exécutant la version 1.0.0.b16. Il existe également un bouton pour déconnecter la connexion ou fermer l'utilitaire.

Ici, nous constatons que le capteur de vision IA a la configuration Signature de couleur « Bleu » et détecte deux objets.

Une séquence de codage par blocs commençant par « when started », suivie d'une boucle infinie. À l'intérieur de la boucle, le programme prend un instantané à l'aide d'AIVision2 pour détecter la signature visuelle bleue. Il efface et réinitialise la console avant de vérifier si des objets bleus sont détectés. Si un objet bleu existe, son nombre est affiché dans la console. Le programme attend ensuite deux secondes avant de répéter le processus. Les blocs représentent visuellement une vérification continue des objets bleus, affichant les résultats dans la console.Sortie console affichant le chiffre 2. La console fait partie d'une interface plus large qui affiche probablement les résultats d'un programme exécuté dans un environnement de programmation par blocs. La partie supérieure de la console comporte des boutons pour des actions ou des commandes supplémentaires, et le programme exécuté ici envoie des données à la console d'impression, qui affiche un résultat de 2 à l'écran.

Dans ce code, le capteur de vision AI prendrait un instantané et imprimerait « 2 » sur la console VEXcode, puisqu’il ne détecte que deux signatures de couleur « Bleu » .


Objet

Un menu déroulant permettant de sélectionner les propriétés d'objet liées à AIVision1. L'option sélectionnée est la largeur, et le menu liste d'autres options, notamment la hauteur, le centre X, le centre Y, l'angle, l'origine X, l'origine Y, l'identifiant de l'étiquette et le score. Ces options permettent à l'utilisateur de récupérer des points de données spécifiques de l'objet détecté par le capteur AI Vision, offrant ainsi une flexibilité pour le suivi ou la mesure de divers attributs de l'objet.

Le blocObjet vous permet de signaler la propriété de l'objet spécifié. Cela vous permet d'utiliser n'importe quelle donnée disponible extraite de l'instantané le plus récent.

Les propriétés d'objet pouvant être extraites des instantanés pris sont les suivantes :

  • largeur
  • hauteur
  • centreX
  • centreY
  • angle
  • originX
  • origine
  • tagID
  • score

Pour plus d'informations sur ces propriétés, consultez la section « Données issues de l'instantané » de cet article.


AprilTag détecté est

Un bloc hexagonal bleu clair provenant d'une interface de programmation. Elle contient la commande permettant de vérifier si l'AprilTag détecté par AIVision1 correspond à la valeur 1. Ce bloc est utilisé dans un environnement de programmation par blocs et est conçu pour évaluer la présence d'un AprilTag spécifique. Sa forme et sa structure lui permettent de s'intégrer à d'autres blocs logiques, généralement utilisés en programmation visuelle pour la robotique ou les tâches de vision par IA.

Le messageAprilTag détecté » ( bloc) n'est disponible que lorsque le mode de détection est activé

Ce bloc renverra Vrai ou Faux selon que l'objet spécifié corresponde ou non à un certain AprilTag.

Trois balises AprilTag sont suivies par un système de vision. Chaque étiquette possède un identifiant et des coordonnées associées. L'étiquette de gauche est étiquetée ID:0, avec les coordonnées X:110, Y:96, W:41, H:41. L'étiquette centrale est étiquetée ID:3, avec les coordonnées X:187, Y:180, W:57, H:57. L'étiquette de droite est étiquetée ID:9, avec les coordonnées X:237, Y:89, W:38, H:38.

Lorsque plusieurs AprilTags sont détectés dans un même instantané, ils sont disposés dans le tableau en fonction de leur ID identifié, et non de leur taille.

Sur cette image, trois AprilTags sont détectés avec les identifiants 0, 3 et 9. Ils seront organisés par ordre croissant de leur identifiant dans le tableau. L'objet à l'index 1 correspondrait à l'AprilTag avec l'ID 0, à l'index 2 à l'AprilTag avec l'ID 3 et à l'index 3 à l'AprilTag avec l'ID 9.

Pour plus d'informations sur ce que sont les AprilTags et comment activer leur détection avec le capteur de vision IA, consultez cet article.


La classification par IA est

Un bloc hexagonal bleu clair issu d'un environnement de programmation par blocs. Le bloc contient la commande AIVision1 AI classification is BlueBall ? Ce bloc vérifie si le capteur AI Vision (AIVision1) a classé l'objet détecté comme une BlueBall. Le bloc comporte des options de menu déroulant permettant aux utilisateurs de sélectionner différents objets ou classifications d'IA à des fins de suivi et de prise de décision dans une interface de programmation visuelle.

La classification IA(bloc ) n'est disponible que lorsque le mode de détection de classification IA est activé.

 

Ce bloc renverra Vrai ou Faux selon que l'objet spécifié corresponde à une certaine classification d'IA.

Les classifications d'IA détectables par le capteur de vision IA varient selon le modèle utilisé. Pour plus d'informations sur les classifications IA disponibles et sur la manière d'activer leur détection avec le capteur de vision IA, consultez cet article.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: