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

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é

Bloc VEXcode EXP Take Snapshot qui indique : Prenez un instantané AIVision1 de COL1. Il y a deux menus déroulants : l’un pour sélectionner le capteur de vision IA et l’autre pour sélectionner le code couleur.

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.

Bloc VEXcode EXP Take Snapshot qui indique : Prenez un instantané AIVision2 de Blue.

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

Diagramme de la résolution du capteur de vision IA. Le coin supérieur gauche est étiqueté 0, 0, le coin supérieur droit est étiqueté 320, 0 et le coin inférieur gauche est étiqueté 0, 240. Le centre de l'écran est étiqueté 160, 120.

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 EXP 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.

Le capteur de vision IA suit une fullerène bleue. La buckminsterfullerène possède un rectangle de suivi autour d'elle, et l'étiquette ci-dessus indique qu'elle a une largeur de 80 pixels et une hauteur de 78 pixels. Les flèches rouges mettent en évidence le rectangle de suivi pour indiquer sa largeur et sa hauteur.

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.

Le capteur de vision IA suit deux cubes bleus. Les cubes sont entourés de rectangles de suivi, et l'un d'eux est beaucoup plus proche de la caméra. Celui le plus proche a une largeur de 144 et une hauteur de 113, et celui le plus éloigné a une largeur de 73 et une hauteur de 84.

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.

Projet VEXcode Blocks dans lequel le robot s'approche de l'objet jusqu'à ce que sa largeur atteigne une taille spécifique avant de s'arrêter. Le projet commence par un bloc « Quand on démarre » et une boucle « Toujours ». Le reste du projet se situe à l'intérieur de la boucle Forever. Tout d'abord, prenez un instantané AIVision1 de Blue, puis le reste du projet se trouve à l'intérieur d'un bloc If qui vérifie si l'objet AIVision1 existe ? À l'intérieur de ce bloc If, il y a un bloc If Else qui indique si la largeur de l'objet AIVision1 est inférieure à 250, alors avancer, sinon arrêter de conduire.

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.

Le capteur de vision IA suit une fullerène bleue. La Buckyball possède un rectangle de suivi autour d'elle, et l'étiquette ci-dessus indique qu'elle a une position X de 176 et une position Y de 117. Le centre du rectangle de suivi est mis en évidence pour indiquer que la position est mesurée à partir de ce centre.

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.

Le capteur de vision IA suit deux cubes bleus. Les cubes sont entourés de rectangles de suivi, et l'un d'eux est beaucoup plus proche de la caméra. Le plus proche a une position Y de 184, et le plus éloigné a une position Y de 70.

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é.

Projet VEXcode Blocks dans lequel le robot se tournera vers un objet détecté jusqu'à ce qu'il soit au centre du champ de vision du capteur de vision IA. Le projet commence par un bloc « Quand on démarre » et une boucle « Toujours ». Le reste du projet se situe à l'intérieur de la boucle Forever. Tout d'abord, prenez un instantané AIVision1 de Blue, puis le reste du projet se trouve à l'intérieur d'un bloc If qui vérifie si l'objet AIVision1 existe ? À l'intérieur de ce bloc If, il y a un bloc If Else qui dit : si AIVision1 object centerX supérieur à 150 et AIVision1 object centerX inférieur à 170, alors tournez à droite, sinon arrêtez de conduire.

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

Animation d'un carré rouge et d'un carré vert tournant ensemble pour illustrer les 360 degrés d'un 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.

Le capteur de vision IA suit un code couleur vert puis bleu. La vidéo montre un cube vert empilé sur un cube bleu. La valeur angulaire du code couleur est mise en évidence et indique 87 degrés, ce qui signifie que le code couleur est orienté verticalement.

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.

Le capteur de vision IA suit un code couleur vert puis bleu. La vidéo montre un cube vert placé à côté d'un cube bleu, mais ils sont positionnés selon un angle inconfortable par rapport au capteur. La valeur angulaire du code couleur est mise en évidence et affiche 0 degré, ce qui indique que l'angle du code couleur ne peut pas être lu.

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é.

Le capteur de vision IA suit une fullerène bleue. La Buckyball possède un rectangle de suivi autour d'elle, et l'étiquette ci-dessus indique qu'elle a une position X de 176 et une position Y de 117. Le coin supérieur gauche du rectangle de suivi est mis en évidence pour indiquer que la position d'origine est mesurée à partir de ce coin supérieur gauche.

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.

Projet VEXcode Blocks dans lequel le robot dessinera un objet détecté sur son écran sous forme de rectangle. Le projet commence par un bloc « Quand on démarre » et une boucle « Toujours ». Le reste du projet se situe à l'intérieur de la boucle Forever. Tout d'abord, prenez un instantané AIVision1 de Blue, puis le reste du projet se trouve à l'intérieur d'un bloc If qui vérifie si l'objet AIVision1 existe ? À l'intérieur de ce bloc If se trouve un bloc Dessiner un rectangle qui indique dessiner un rectangle AIVision1 object originX, AIVision1 object originY, AIVision1 object width, AIVision1 object height sur 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.

tagID

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

Trois AprilTags sont actuellement suivis par l'utilitaire AI Vision. Chaque étiquette est identifiée, localisée et délimitée, indiquant son suivi par le système. Dans cet exemple, les identifiants AprilTag sont 0, 3 et 9.

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'utilitaire AI Vision suit quatre objets : deux BuckyBalls et deux Rings. Chaque objet est identifié, localisé et délimité, indiquant ainsi son suivi par le système. L'utilitaire affiche également le score de classification IA de chaque objet ; dans cet exemple, chaque score est de 99 %.

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.

VEXcode EXP Définir un bloc d'élément d'objet qui lit Définir l'élément d'objet AIVision1 sur 1. Il y a une liste déroulante pour sélectionner le capteur de vision IA et un champ de texte pour saisir l'index de l'objet.

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é.

Le capteur de vision IA suit deux cubes bleus. Les cubes sont entourés de rectangles de suivi, et l'un d'eux est beaucoup plus proche de la caméra. Celui le plus proche a une largeur de 136, et celui le plus éloigné a une largeur de 78.

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é.

Le capteur de vision IA suit deux cubes bleus. Les cubes sont entourés de rectangles de suivi, et l'un d'eux est beaucoup plus proche de la caméra. Le cube le plus proche est étiqueté 1 et le cube le plus éloigné est étiqueté 2.

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.

VEXcode EXP Objet existe un bloc qui lit que l'objet AIVision1 existe ? Il existe un menu déroulant pour sélectionner le capteur de vision IA.

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.

Projet VEXcode Blocks dans lequel le robot se dirigera vers un objet bleu détecté. Le projet commence par un bloc « Quand on démarre » et une boucle « Toujours ». Le reste du projet se situe à l'intérieur de la boucle Forever. Tout d'abord, prenez un instantané AIVision2 de Blue, puis un bloc If Else qui lit si l'objet AIVision2 existe, alors avancez, sinon arrêtez-vous.

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 arrêtera de bouger.


Nombre d'objets

Bloc de comptage d'objets VEXcode EXP qui lit le nombre d'objets AIVision1. Il existe un menu déroulant pour sélectionner le capteur de vision IA.

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é. 

Le capteur de vision IA suit deux cubes bleus. Les cubes sont entourés de rectangles de suivi, et l'un d'eux est beaucoup plus proche de la caméra.

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

Projet VEXcode Blocks dans lequel le robot imprimera le nombre d'objets bleus détectés sur la console d'impression. Le projet commence par un bloc « Quand on démarre » et une boucle « Toujours ». Le reste du projet se situe à l'intérieur de la boucle Forever. Commencez par prendre un instantané AIVision2 de Blue, effacez toutes les lignes de la console, puis placez le curseur sur la ligne suivante de la console. Vient ensuite un bloc If qui vérifie si l'objet AIVision2 existe, puis affiche le nombre d'objets AIVision2 dans la console et place le curseur sur la ligne suivante. En dehors du bloc If, il y a un bloc Wait configuré pour attendre 2 secondes.Sortie de la console d'impression du projet VEXcode Blocks précédent avec un message imprimé indiquant 2.

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

Bloc d'objet VEXcode EXP AI Vision qui lit la largeur de l'objet AIVision1. Il existe une liste déroulante pour sélectionner le capteur de vision IA, et un menu déroulant ouvert pour sélectionner l'attribut de l'objet à détecter. La liste des options comprend : largeur, hauteur, centreX, centreY, angle, origineX, origineY, identifiant de l’étiquette et score.

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 la capture d'écran la plus récente.

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

VEXcode EXP Détecté AprilTag est un bloc qui lit AIVision1 détecté AprilTag est 1 ? Il existe un menu déroulant pour sélectionner le capteur de vision 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 AprilTags sont actuellement suivis par l'utilitaire AI Vision. Chaque étiquette est identifiée, localisée et délimitée, indiquant son suivi par le système. Dans cet exemple, les identifiants AprilTag sont 0, 3 et 9.

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.

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 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

Le bloc VEXcode EXP AI Classification contient la mention « AIVision1 AI classification is BlueBall ? » Il existe un menu déroulant pour sélectionner le capteur de vision IA et un autre menu déroulant pour sélectionner l'objet cible de classification IA.

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: