Codage avec le capteur de vision AI dans les blocs VEXcode V5

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

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

Pour en savoir plus sur ces blocs individuels et comment les utiliser dans VEXcode, accédez au site API.


Prendre un instantané

Un bloc qui contient la commande prendre un instantané avec deux sélections déroulantes : l'une intitulée AIVision1 et l'autre intitulée COL1. Ce bloc est conçu pour prendre un instantané à partir d'un capteur AI Vision 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 codage basées sur des blocs.

Le blocPrendre un instantané prend une photo de ce que le capteur de vision AI voit actuellement et extrait des données de cet instantané qui peuvent ensuite être utilisées dans un projet. Lorsqu'un instantané est pris, vous devez spécifier le type d'objet sur lequel le capteur de vision AI doit collecter des données :

  • Signature de couleur
  • Code couleur
  • Classifications de l'IA
  • avrilMots clés

Prendre un instantané créera un tableau de tous les objets détectés que vous avez spécifiés. Par exemple, si vous souhaitez détecter une signature de couleur « rouge »et que le capteur de vision AI détecte 3 objets rouges différents, les données des trois seront placées dans le tableau.

Pour plus d'informations sur la façon de spécifier entre différents objets, accédez à la section « Définir l'élément d'objet » de cet article.

Un bloc de codage bleu clair avec la commande pour prendre un instantané d'un objet ou d'une couleur. Il existe deux options déroulantes : l’une intitulée AIVision2 et l’autre intitulée Bleu. Le bloc est conçu pour être utilisé dans un environnement de codage basé sur des blocs, où il capture un instantané à partir d'un capteur AI Vision et suit un objet ou une couleur définie comme bleu. Le bloc présente de légères courbes, typiques des interfaces de codage qui utilisent des blocs modulaires.

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

Données extraites d'un instantané

Gardez à l’esprit que le capteur de vision AI utilisera son dernier instantané pris pour tous les blocs qui suivent. Pour vous assurer d'obtenir toujours les informations les plus récentes de votre capteur de vision IA, reprenez votre instantané chaque fois que vous souhaitez en extraire des données. 

Résolution

Comprendre la résolution du capteur de vision AI est essentiel 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.

Accédez à 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 un Buckyball bleu avec un contour carré blanc qui le suit. Le coin supérieur gauche comporte une étiquette indiquant qu'il s'agit d'un objet bleu, avec des coordonnées X:176, Y:117 et des dimensions L:80, H:78. Les flèches rouges soulignent la largeur et la hauteur de l'objet.

Les mesures de largeur et de hauteur aident à identifier différents objets. Par exemple, un Buckyball aura une hauteur plus grande qu'un Ring.

Deux objets cubiques bleus 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 les 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 W:144, H:113. Chaque cube possède une croix blanche centrée, 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 AI. 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 avec le bloc au démarrage, suivi d'une boucle indéfinie. À 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 la largeur de l'objet est inférieure à 250 pixels. Si c'est vrai, le robot avance ; sinon, il s'arrête. Les blocs sont empilés ensemble, indiquant le flux du programme dans un environnement de codage 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 la largeur ait atteint une taille spécifique avant de s'arrêter.

CentreX et CentreY

Il s'agit des coordonnées centrales de l'objet détecté en pixels.

Un Buckyball bleu suivi par un système de vision par ordinateur. L'objet est délimité par un carré blanc et à l'intérieur du 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 des coordonnées X:176, Y:117 et des dimensions L:80, H:78.

Les coordonnées CenterX et CenterY aident à la navigation et au positionnement. Le capteur de vision AI a 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 délimitées en blanc avec une croix blanche centrée.

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

Une séquence de codage basée sur des blocs commençant par "au démarrage" suivie d'une boucle indéfinie. À l'intérieur de la boucle, le programme prend un instantané à 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 la vue 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 arrête de rouler. 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 centerX d'un objet détecté soit supérieure à 150 pixels, mais inférieure à 170 pixels.

Angle

L'angle est une propriété disponible uniquement pour les codes couleur etAprilTags. Cela indique si le code couleurdétectéou AprilTag est orienté différemment.

Une pile de deux cubes, un vert en haut et un bleu en bas, suivis 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 répertorié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. Ci-dessous, les coordonnées sont affiché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 détecté par le robot.

OriginX et OriginY

OriginX et OriginY sont les coordonnées dans le coin supérieur gauche de l'objet détecté en pixels.

Un Buckyball bleu suivi par un système de vision. Un contour blanc entoure l'objet, avec une croix blanche centrée à l'intérieur du contour. L'étiquette en haut à gauche indique la couleur de l'objet en bleu, 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 aident à la navigation et au positionnement. En combinant cette coordonnée avec la largeur et la hauteur de l'objet, vous pouvez déterminer la taille de la zone de délimitation de l'objet. Cela peut aider à suivre les objets en mouvement ou à naviguer entre les objets.

Une séquence de codage basée sur des blocs commençant par "au démarrage" suivie d'une boucle indéfinie. À l'intérieur de la boucle, le programme prend un instantané à l'aide d'AIVision1 pour détecter un objet bleu. Si l'objet existe, le programme dessinera un rectangle sur l'écran Brain en fonction de la position et de la taille de l'objet. Le rectangle est dessiné à l'aide des valeurs originX, originY, width et height de l'objet, fournies par le capteur AIVision1. Ce programme suit et met en évidence visuellement l’objet détecté sur l’écran du Brain.

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.

identifiant de balise

Le tagID n'est disponible que pourAprilTags. Il s'agit du numéro d'identification duAprilTagspécifié.

Trois cartes carrées avec des AprilTags 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, indiquant 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 a un contour blanc et le système suit leurs positions et orientations.

L'identification de balises AprilTags spécifiques permet une navigation sélective. Vous pouvez programmer votre robot pour qu'il se déplace vers certaines balises tout en ignorant les autres, les utilisant ainsi efficacement comme panneaux de signalisation pour une navigation automatisée.

Score

La propriété score est utilisée lors de la détectionclassifications AI avec le capteur de vision AI.

L'image montre quatre objets suivis par un système de vision : deux boules 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 entouré de blanc, indiquant la précision du suivi.

Le score de confiance indique le degré de certitude du capteur de vision IA quant à sa détection. Dans cette image, il y a 99 % de confiance dans l'identification des classifications IA de ces quatre objets. Vous pouvez utiliser ce score pour garantir que votre robot se concentre uniquement sur les détections très fiables.


Définir l'élément d'objet

Lorsqu'un objet est détecté par le capteur de vision AI, il est placé dans un tableau. Par défaut, le capteur de vision AI extraira les données du premier objet du tableau ou de l'objet avec l'index 1. Si votre capteur de vision IA n'a détecté qu'un seul objet, cet objet 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 les données.

Un bloc de codage bleu clair. Il contient une commande pour définir l'élément d'objet pour AIVision1 sur 1. Ce bloc fait partie d'un environnement de codage basé sur des blocs, généralement utilisé pour définir sur quel objet ou élément le capteur AI Vision doit se concentrer ou suivre. La forme du bloc présente de légères courbes, s'intégrant ainsi dans la nature modulaire de la plateforme de codage visuel.

Lorsque plusieurs objets sont détectés par le capteur de vision AI, ils sont disposés dans le tableau du plus grand au plus petit. Cela signifie que le plus grand objet détecté sera toujours défini sur l'index d'objet 1, et le plus petit objet sera toujours défini sur le numéro le plus élevé.

L'interface AI Vision Utility avec deux cubes bleus détectés sur le côté gauche, chacun marqué de leurs coordonnées X et Y et de leurs dimensions. Le système est connecté et les AprilTags sont activés, tandis que la classification AI est désactivée. Sur la 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 pour ajouter ou définir de la couleur et geler la vidéo. Le firmware est à jour, 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 blocTake Snapshot est utilisé.

L'interface AI Vision Utility, qui suit deux cubes bleus étiquetés avec leurs données X, Y et de dimension. Le cube de gauche a des coordonnées X:127, Y:179 et des dimensions W:136, H:123, tandis que le cube de droite a des coordonnées X:233, Y:74 et des dimensions W:78, H:87. Le système est connecté, AprilTags est activé et la classification AI est désactivée. Les paramètres de couleur bleue ont une plage de teintes de 22 et une saturation de 0,34. Un bouton Geler la vidéo et des informations sur le micrologiciel (version 1.0.0.b16) sont affichés en bas.

Ici, l'objet à l'avant deviendrait l'objet d'index 1, puisqu'il s'agit du plus grand objet, et l'objet le plus petit deviendrait l'objet d'index 2.


L'objet existe

Avant d'extraire des données d'un instantané, il est important de que le capteur de vision AI a détecté en premier les objets de cet instantané. C'est ici qu'entre en jeu le blocObjet Existe.

Un bloc de codage hexagonal bleu clair avec l'objet texte AIVision1 existe ? Ce bloc fait partie d'un environnement de codage basé sur des 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 une valeurTrue ouFalse selon que le dernier instantané pris contient ou non des objets détectés.

Ce bloc doittoujours être utilisé pour garantir que vous n'essayez pas d'extraire des données d'un instantané potentiellement vide.

Une séquence de codage basée sur des blocs qui commence par when started suivie d'une boucle indéfinie. À l'intérieur de la boucle, le capteur AI Vision (AIVision2) prend un instantané pour détecter la couleur bleue. Si un objet avec la signature visuelle bleue est détecté, le robot avancera. Si aucun objet n'est détecté, le robot arrêtera de rouler. 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 instantanés avec le capteur de vision AI. S'il identifie n'importe quel objet avec la signature couleurs « Bleu », il avancera.


Si un instantané n'a pas la signature de couleur « Bleu » , le robot s'arrêtera de bouger.


Nombre d'objets

Un bloc de codage bleu clair et arrondi étiqueté nombre d'objets AIVision1. Ce bloc est utilisé dans un environnement de codage basé sur des blocs pour récupérer le nombre d'objets détectés par le capteur AI Vision étiqueté AIVision1. Le bloc s'inscrit 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 à couleurs spécifique le capteur de vision AI peut voir dans son dernier instantané. 

L'interface AI Vision Utility avec deux cubes bleus détectés sur la gauche. Le système est connecté, avec AprilTags activé et la classification AI désactivée. L'interface affiche les paramètres de détection de la couleur bleue, avec une teinte définie 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 à 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 voyons que le capteur de vision AI a la signature de couleur configurée « Bleu » et détecte deux objets.

Une séquence de codage basée sur des blocs commençant par le moment où elle a démarré, suivie d'une boucle indéfinie. À 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, le nombre d'objets est imprimé sur 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.Une sortie de console avec le numéro 2 imprimé. La console fait partie d’une interface plus large qui affiche probablement les résultats d’un programme exécuté dans un environnement de codage basé sur des blocs. La partie supérieure de la console comporte des boutons pour des actions ou des contrôles supplémentaires, et le programme exécuté ici envoie des données à la console d'impression, qui affiche un résultat de 2 sur l'écran.

Dans ce code, le capteur de vision AI prendrait un instantané et imprimerait « 2 » sur la console VEXcode, car 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 répertorie d'autres options, notamment la hauteur, le centreX, le centreY, l'angle, l'origineX, l'origineY, le tagID 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 votre objet spécifié. Cela vous permet d'utiliser toutes les données disponibles extraites de l'instantané le plus récemment pris.

Les propriétés d'objet qui peuvent être extraites des instantanés pris sont :

  • largeur
  • hauteur
  • centreX
  • centreY
  • angle
  • origineX
  • origineY
  • identifiant de balise
  • score

Lisez la section « Données extraites d’un instantané » de cet article pour plus d’informations sur ces propriétés.


AprilTag détecté est

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

Le blocDetected AprilTag est n'est disponible que lorsque le mode de détectionAprilTag est activé.

Ce bloc signalera Vrai ou Faux selon que l'objet spécifié est un certain AprilTag.

Trois AprilTags suivis par un système de vision. Chaque balise 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 seul instantané, ils sont organisés dans le tableau en fonction de leur ID identifié, et non par taille.

Dans cette image, trois AprilTags sont détectés avec les ID 0, 3 et 9. Ils seront organisés par ordre croissant de leur ID 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 AI, lisez cet article.


La classification de l'IA est

Un bloc hexagonal bleu clair issu d'un environnement de codage basé sur des blocs. Le bloc contient la commande AIVision1 La classification AI est BlueBall ? Ce bloc vérifie si le capteur AI Vision (AIVision1) a classé l'objet détecté comme une BlueBall. Le bloc propose des options déroulantes, 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 classificationAI est un bloc n'est disponible que lorsque le mode de détection de classificationAI est activé.

 

Ce bloc signalera Vrai ou Faux selon que l'objet spécifié est une certaine classification AI.

Les classifications d'IA pouvant être détectées par le capteur de vision IA varient en fonction du modèle que vous utilisez. Pour plus d'informations sur les classifications d'IA disponibles et sur la manière d'activer leur détection avec le capteur de vision AI, lisez cet article.

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

Last Updated: