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 la façon de les configurer, vous pouvez lire les articles ci-dessous :
- Configuration des signatures de couleur avec la signature AI Vision dans VEXcode V5
- Configuration des codes couleur avec la signature AI Vision dans VEXcode V5
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 :
- Utilisation des classifications IA avec le capteur de vision IA
- Utilisation d'AprilTags avec le capteur de vision AI
Obtenez des données visuelles avec le capteur de vision AI
Chaque commande de capteur de vision AI commencera par le nom du capteur de vision AI configuré. Pour tous les exemples de cet article, le nom du capteur de vision AI utilisé sera AIVision
.
prendreSnapshot
La méthode takeSnapshot
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 :
- Une signature de couleuroucouleur
- Ces signatures visuelles commencent par le nom du capteur de vision IA, un double trait de soulignement, puis le nom de la signature visuelle, par exemple :
AIVision1__Blue
.
- Ces signatures visuelles commencent par le nom du capteur de vision IA, un double trait de soulignement, puis le nom de la signature visuelle, par exemple :
-
Classifications IA -
aivision::ALL_AIOBJS
-
avrilTags-
aivision::ALL_TAGS
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 « bleue » et que le capteur de vision AI détecte 3 objets bleus différents, les données des trois seront placées dans le tableau.
Dans cet exemple, un instantané est pris de la signature de couleur « Bleu » à partir du capteur de vision AI nommé AIVision1
. Il affiche le nombre d'objets détectés dans le tableau et capture un nouvel instantané toutes les 0,5 secondes.
while (true) {
// Obtenir un instantané de tous les objets de couleur bleue.
AIVision.takeSnapshot(AIVision1__Blue);
// Vérifier qu'un objet a été détecté dans l'instantané avant d'extraire les données.
if (AIVision.objectCount > 0) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print(AIVision1.objectCount);
}
wait(5, msec);
}
objets
Chaque objet d'un instantané possède des propriétés différentes qui peuvent être utilisées pour signaler des informations sur cet objet. La méthode objects vous permet d'accéder à ces propriétés.
Les propriétés disponibles sont les suivantes :
- identifiant
- centreX et centreY
- origineX et origineY
- largeur
- hauteur
- angle
- existe
- score
Pour accéder à la propriété d'un objet, utilisez le nom du capteur de vision AI, suivi de la méthode objects, puis de l'index de l'objet.
L'index d'objet indique la propriété de l'objet spécifique que vous souhaitez récupérer. Après avoir pris un instantané, le capteur de vision AI trie automatiquement les objets par taille. L'objet le plus grand se voit attribuer l'index 0, les objets plus petits recevant des numéros d'index plus élevés.
Par exemple, appeler la largeur de l'objet le plus grand serait AIVision1.objects[0].width
.
identifiant
La propriété id
n'est disponible que pour les classifications AI et
Pour unAprilTag, la propriété id
représente le numéro d'identificationAprilTag(s) détecté.
L'identification 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.
Pourclassifications d'IA, la propriété id
représente le type spécifique de classification d'IA détectée.
L'identification de classifications d'IA spécifiquespermet au robot de se concentrer uniquement sur des objets spécifiques, comme vouloir uniquement naviguer vers une Buckyball rouge, pas une bleue.
Consultez ces articles pour plus d'informations sur les classifications AI et du avril et comment activer leur détection dans l'utilitaire AI Vision.
centreX
et centreY
Il s'agit des coordonnées centrales de l'objet détecté en pixels.
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.
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é.
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.
while (true) {
// Obtenir un instantané de tous les objets de couleur bleue.
AIVision.takeSnapshot(AIVision__Blue);
// Vérifiez qu'un objet a été détecté dans l'instantané avant d'extraire les données.
si (AIVision.objectCount > 0) {
si (AIVision.objects[0].centerX > 150,0 && 170,0 > AIVision.objects[0].centerX) {
Transmission.tourner(droite);
} sinon {
Transmission.arrêter();
}
}
attendre(5, msec);
}
origineX
et origineY
OriginX et OriginY sont les coordonnées dans le coin supérieur gauche de l'objet détecté en pixels.
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.
largeur
et hauteur
Il s'agit de la largeur ou de la hauteur de l'objet détecté en pixels.
Les mesures de largeur et de hauteur aident à identifier différents objets. Par exemple, un Buckyball aura une hauteur plus grande qu'un Ring.
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.
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.
while (true) {
// Obtenir un instantané de tous les objets Blue.
AIVision.takeSnapshot(AIVision1__Blue);
// Vérifiez qu'un objet a été détecté dans l'instantané avant d'extraire les données.
si (AIVision.objectCount > 0) {
si (AIVision.objects[0].width < 250.0) {
Drivetrain.drive(forward);
} sinon {
Drivetrain.stop();
}
}
wait(5, msec);
}
angle
La propriété angle
n'est disponible que pour les codes couleur etAprilTags.
Cela représente si le code couleur détectéou AprilTag est orienté différemment.
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.
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.
score
La propriété score
est utilisée lors de la détectionclassifications AI avec le capteur de vision AI.
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.
existe
La propriété existe
est utilisée pour détecter si une signature visuelle spécifiée a été détectée dans le dernier instantané pris.
Cela vous permet de vérifier si des objets détectés ont été détectés dans l'instantané précédent. Cette propriété renverra un True lorsqu'un objet existe et un False lorsque l'objet n'existe pas.
nombre d'objets
La méthode objectCount renvoie la quantité d’objets détectés dans le dernier instantané.
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 la méthode takeSnapshot est utilisée.
Cet extrait de code met continuellement à jour l'EXP Brain avec le nombre d'objets détectés. Sur la base de l'exemple fourni, il enverra à plusieurs reprises la valeur 2, indiquant que deux objets ont été détectés.
while (true) {
// Obtenir un instantané de tous les objets Blue.
AIVision.takeSnapshot(AIVision__Blue);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Vérifier qu'un objet a été détecté dans l'instantané avant d'extraire les données.
if (AIVision.objectCount > 0) {
Brain.Screen.print(AIVision1.objectCount);
}
wait(5, msec);
}