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 :
- Configuration des signatures de couleur avec la signature AI Vision dans VEXcode EXP
- Configuration des codes couleur avec la signature AI Vision dans VEXcode EXP
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 :
- Classifications IA avec le capteur de vision IA dans VEXcode EXP
- AprilTags avec le capteur de vision IA dans VEXcode EXP
Obtenez des données visuelles avec le capteur de vision IA
Chaque commande du capteur de vision IA commencera par le nom du capteur de vision IA configuré. Pour tous les exemples de cet article, le nom du capteur de vision AI utilisé sera ai_vision_1.
prendre_un_instantané
La méthode take_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 couleurcode couleur oucode couleur
- 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 :
ai_vision_1__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 -
avril Étiquettes-
AiVision.ALL_TAGS
La prise d'un instantané créera un tuple contenant tous les objets détectés que vous avez spécifiés. Par exemple, si vous vouliez détecter une signature de couleur « Bleu » et que le capteur de vision IA détectait 3 objets bleus différents, les données des trois seraient placées dans le tuple.
Dans cet exemple, la variable vision_objects stocke un tuple contenant les signatures de couleur « violet »détectées du capteur de vision AI nommé ai_vision_1. Il affiche le nombre d'objets détectés et capture une nouvelle image toutes les 0,5 secondes.
while True:
# Obtenir un instantané de toutes les signatures de couleur violettes et le stocker dans vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Purple)
# Vérifier qu'un objet a bien été détecté dans l'instantané avant de récupérer les données.
si vision_objects[0].exists == True
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Nombre d'objets :", len(vision_objects))
wait(0.5, SECONDS)
Propriétés de l'objet
Chaque objet d'un instantané possède des propriétés différentes qui peuvent être utilisées pour fournir des informations sur cet objet. Les propriétés disponibles sont les suivantes :
- identifiant
- centreX et centreY
- origineX et origineY
- largeur
- hauteur
- angle
- score
- existe
Pour accéder à une propriété d'un objet, utilisez le nom de la variable stockant le tuple, suivi de l'index de l'objet.
L'index de l'objet indique la propriété spécifique de l'objet que vous souhaitez récupérer. Après la prise de vue, le capteur de vision IA trie automatiquement les objets par taille. L'objet le plus grand se voit attribuer l'indice 0, les objets plus petits recevant des numéros d'indice plus élevés.
Par exemple, appeler la largeur de l'objet le plus grand à l'intérieur de la variable vision_objects serait : vision_objects[0].width.
identifiant
La propriété id est uniquement disponible pour les classifications IA et du avril.
Pour un AprilTag, la propriété id représente le numéro d'identificationdes AprilTag détectés.
L'identification de tags 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.
Pourclassifications d'IA, la propriété id représente le type spécifique de classification d'IA détecté.
Identification spécifique Classifications IApermet au robot de se concentrer uniquement sur des objets spécifiques, comme par exemple vouloir naviguer uniquement vers une Buckyball rouge, et non vers une bleue.
Consultez ces articles pour plus d'informations sur les balises AprilTags et , les classifications IA et comment activer leur détection dans l'utilitaire AI Vision.
centreX et centreY
Il s'agit des coordonnées du centre de l'objet détecté, exprimées en pixels.
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.
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é.
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.
while True:
# Obtenir un instantané de toutes les signatures de couleur bleue et le stocker dans vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Vérifier qu'un objet a bien été détecté dans l'instantané avant de récupérer les données.
if vision_objects[0].exists == True
# Vérifier si l'objet n'est pas au centre du champ de vision du capteur de vision IA.
si vision_objects[0].centerX > 150 et 170 > vision_objects[0].centerX:
# Continuez à tourner vers la droite jusqu'à ce que l'objet soit au centre de la vue.
drivetrain.turn(RIGHT)
sinon :
drivetrain.stop()
wait(5, MSEC)
origineX et origineY
OriginX et OriginY correspondent aux coordonnées en pixels du coin supérieur gauche de l'objet détecté.
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.
largeur hauteur 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 permettent d'identifier différents objets. Par exemple, une fullerène C18 aura une hauteur supérieure à celle d'un anneau C18.
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.
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.
while True:
# Obtenir un instantané de toutes les signatures de couleur bleue et le stocker dans vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Vérifier qu'un objet a bien été détecté dans l'instantané avant de récupérer les données.
if vision_objects[0].exists == True
# Vérifier si l'objet le plus grand est proche du capteur de vision IA en mesurant sa largeur.
if vision_objects[0].width < 250:
# Se rapprocher de l'objet jusqu'à ce qu'il soit plus large que 250 pixels.
drivetrain.drive(AVANCE)
sinon :
drivetrain.stop()
attendre(5, MSEC)
angle
La propriété d'angle est uniquement disponible pour les codes couleuret ainsi que pour les étiquettes d'avril
.
Ceci représente si le code couleur ou détecté 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 saisi par le robot.
score
La propriété score est utilisée lors de la détection declassifications d'IA avec le capteur de vision IA.
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.
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 l'ont été dans l'instantané précédent. Cette propriété renverra True si un objet existe, et False si l'objet n'existe pas.