Senzor pro vidění s umělou inteligencí#

Zavedení#

Vizuální senzor VEX IQ AI dokáže detekovat a sledovat objekty, barvy a identifikátory AprilTag. To umožňuje robotovi analyzovat své okolí, sledovat objekty a reagovat na základě detekovaných vizuálních dat.

Příklady AI Vision jsou navrženy pro použití s ​​Basebotem vybaveným senzorem VEX IQ AI Vision. V těchto příkladech je senzor konfigurován s názvem AIVision1, který se objevuje v blocích.

Níže je uveden seznam všech bloků:

Akce – Zachycení dat ze senzoru VEX IQ AI Vision pro vybraný podpis.

  • get object data — Zachytí data pro konkrétní podpis, například nakonfigurovanou barvu, předtrénovaný objekt nebo ID AprilTag.

Nastavení – Vyberte, se kterým objektem chcete interagovat.

Hodnoty – Přístup k zaznamenaným datům a jejich použití.

Akce#

získat data objektu#

Blok zásobníku get object data filtruje data z rámce senzoru VEX IQ AI Vision do jediného podpisu – uloženého popisu něčeho, co senzor dokáže rozpoznat, například předtrénovaného objektu, ID AprilTag nebo nakonfigurované barvy či barevného kódu.

Barvy a barevné kódy je nutné nejprve nakonfigurovat v nástroji AI Vision Utility, než je lze použít s tímto blokem.

Datová sada ukládá objekty seřazené od největší po nejmenší podle šířky, počínaje indexem 0. Vlastnosti každého objektu lze zobrazit pomocí bloku AI Vision object property. Pokud nejsou detekovány žádné odpovídající objekty, je hlášena prázdná datová sada.

Blok zásobníku dat objektu Get.#
získat data [SELECT_A_SIG v] z [AIVision1 v]

Parametr

Popis

podpis

Filtruje datovou sadu tak, aby obsahovala pouze data daného podpisu. Dostupné podpisy jsou:

  • AprilTag IDs
  • AI Classifications — Dostupnost se mění v závislosti na modelu nakonfigurovaném v nástroji AI Vision Utility.
  • NAME — A Barevný podpis nebo Kód barvy, kde NAME je název nakonfigurovaný v nástroji AI Vision Utility

Poznámka: Aby se zobrazily možnosti ID značky AprilTag nebo klasifikace pomocí umělé inteligence, musí být v nástroji AI Vision Utility povolena jejich detekce.

Příklad

při spuštění
[Drive forward if an AprilTag ID is detected.]
navždy
získat data [AprilTag IDs v] z [AIVision1 v]
pokud <objekt [AIVIsion1 v] existuje?> pak
jet [dopředu v] na [10] [mm v] ▶

Klasifikace umělé inteligence#

Kamerový senzor VEX IQ AI dokáže detekovat různé objekty v rámci určitých klasifikací AI. V závislosti na modelu klasifikace AI vybraném při konfiguraci kamerového senzoru VEX IQ AI v okně Zařízení budou detekovány různé objekty. Aktuálně dostupné modely jsou:

Předměty ve třídě

  • BlueBall

  • GreenBall

  • RedBall

  • BlueRing

  • GreenRing

  • RedRing

  • BlueCube

  • GreenCube

  • RedCube

Soutěž robotů VEX IQ v mixování a zápasech

  • Paprsek

  • RedPin

  • BluePin

  • OranžovýPin

VEX IQ Robotics Competition Level Up

  • BlueBeanBag

  • RedFazolovýPytel

  • Žlutý fazolový vak

Barevné podpisy#

Barevná signatura je jedinečná barva, kterou dokáže senzor VEX IQ AI Vision Sensor rozpoznat. Tato signatura umožňuje senzoru detekovat a sledovat objekty na základě jejich barvy. Jakmile je barevná signatura nakonfigurována, senzor dokáže identifikovat objekty s danou barvou ve svém zorném poli.

Barevné signatury se používají v bloku get object data ke zpracování a detekci barevných objektů v reálném čase. Lze nakonfigurovat až 7 barevných signatur najednou.

Utilita AI Vision Utility zobrazuje připojený kamerový senzor detekující dva barevné objekty. Levá strana zobrazuje živý obraz z kamery s modrým rámečkem vlevo a červeným rámečkem vpravo, každý ohraničený bílými ohraničovacími rámečky. Černé štítky zobrazují jejich příslušné názvy, souřadnice a rozměry. Pravá strana obsahuje nastavení barevného podpisu s posuvníky pro rozsah odstínu a sytosti pro červený i modrý rámeček. Tlačítka pro přidávání barev, zmrazení videa, kopírování a ukládání obrázku jsou dole a tlačítko pro zavření je v pravém dolním rohu.

Příklad

při spuštění
[Display if any objects matching the RED_BOX signature is detected.]
navždy
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
vymazat řádek [1] na obrazovce
[Change the signature to any configured Color Signature.]
získat data [RED_BOX v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
tisk [Color detected!] na obrazovce ▶

Barevné kódy#

Barevný kód je strukturovaný vzor složený ze 2 až 4 barevných podpisů uspořádaných v určitém pořadí. Tyto kódy umožňují kamerovému senzoru VEX IQ AI rozpoznávat předdefinované barevné vzory.

Barevné kódy jsou obzvláště užitečné pro identifikaci složitých objektů, zarovnání s herními prvky nebo vytváření jedinečných značek pro autonomní navigaci. Lze nakonfigurovat až 8 barevných kódů najednou.

Rozhraní nástroje AI Vision Utility zobrazuje připojený kamerový senzor detekující dva sousední objekty, modrý rámeček vlevo a červený rámeček vpravo, seskupené v jednom bílém ohraničujícím rámečku označeném BlueRed. Informace o detekci zahrnují úhel A:11° , souřadnice X:143, Y:103 , šířku W:233 a výšku H:108 . Na pravém panelu jsou uvedeny tři barevné signatury: Red_Box, Blue_Box a BlueRed s nastavitelnými rozsahy odstínu a sytosti. Signatura BlueRed kombinuje Blue_Box a Red_Box. Pod video kanálem jsou tlačítka označená jako Freeze Video Zmrazit video , Copy Image Kopírovat obrázek , Save Image Uložit obrázek a Close Zavřít .

Příklad

při spuštění
[Display if any objects matching the RED_BLUE code is detected.]
navždy
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
vymazat řádek [1] na obrazovce
[Change the signature to any configured Color Code.]
získat data [RED_BLUE v] z [AIVision1 v]
pokud <objekt [AIVIsion1 v] existuje?> pak
tisk [Code detected!] na obrazovce ▶

Nastavení#

nastavit položku objektu AI Vision#

Blok zásobníku set AI Vision object item nastavuje, která položka v datové sadě se má použít.

Blok zásobníku položek objektu Set AI Vision.#
nastavit položku objektu [AIVision1 v] na (1)

Parametry

Popis

položka

Číslo položky v datové sadě, která se má použít.

Příklad

Zásobník bloků, který začíná blokem when started, následovaným blokem komentáře s textem Display the largest detected AprilTag ID. Uvnitř nekonečné smyčky blok take a AI Vision snapshot zachytí obrázek ID AprilTag. Blok if kontroluje, zda existuje objekt AI Vision. Pokud je hodnota true, blok set object AI Vision přiřadí počet objektů proměnné a blok print zobrazí na obrazovce ID tagu detekovaného objektu.#
při spuštění
[Display the largest detected AprilTag ID.]
navždy
získat data [AprilTag IDs v] z [AIVision1 v]
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
pokud <objekt [AIVision1 v] existuje?> pak
nastavit položku objektu [AIVision1 v] na (počet objektů [AIVision1 v])
tisk (objekt [AIVision1 v] [tagID v]) na obrazovce ▶

Hodnoty#

Objekt AI Vision existuje#

Logický blok Objekt AI Vision existuje hlásí, zda je v datové sadě detekován nějaký objekt.

  • True – Datová sada obsahuje detekovaný objekt.

  • Nepravda – Datová sada neobsahuje žádné detekované objekty.

Objekt AI Vision existuje jako booleovský blok.#
<objekt [AIVision1 v] existuje?>

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění
[Drive forward if an object is detected.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
jet [dopředu v] na [10] [mm v] ▶

Počet objektů AI Vision#

Blok reportéru AI Vision object count hlásí počet detekovaných objektů v datové sadě jako celé číslo.

Blok zásobníku položek objektu Set AI Vision.#
(počet objektů [AIVision1 v])

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění
[Display the total amount of cubes, rings, and balls.]
navždy
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
tisk (počet objektů [AIVision1 v]) na obrazovce ▶
konec
čekat [0.5] sekund

Vlastnost objektu AI Vision#

Každý objekt (zobrazený níže) ukládá po použití bloku get object data devět vlastností, které jsou součástí každého objektu (zobrazeného níže).

Blok reportéru vlastností objektu AI Vision.#
(objekt [AIVision1 v] [šířka v])

Všechny hodnoty vlastnosti kromě tagID popisují polohu a velikost detekovaného objektu v zobrazení senzoru VEX IQ AI Vision v okamžiku použití bloku get object data. Tyto hodnoty se měří v pixelech na základě rozlišení senzoru 320 x 240 pixelů.

Parametr

Popis

vlastnictví

Kterou vlastnost detekovaného objektu použít:

šířka#

Vlastnost width udává šířku detekovaného objektu v pixelech jako celé číslo od 1 do 320.

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na šířku.#
(objekt [AIVision1 v] [šířka v])

Příklad

při spuštění
[Drive towards an object until its width is larger than 100 pixels.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [šířka v]) [math_less_than v] [100]> pak
jet [dopředu v]
konec
jinak
zastavit jízdu

výška#

Vlastnost height udává výšku detekovaného objektu v pixelech jako celé číslo od 1 do 240.

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na výšku.#
(objekt [AIVision1 v] [výška v])

Příklad

při spuštění
[Drive towards an object until its height is larger than 100 pixels.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [výška v]) [math_less_than v] [100]> pak
jet [dopředu v]
konec
jinak
zastavit jízdu

centrumX#

Vlastnost centerX udává souřadnici x středu detekovaného objektu v pixelech jako celé číslo od 0 do 320.

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na centerX.#
(objekt [AIVision1 v] [středX v])

Příklad

při spuštění
[Turn slowly until an object is centered in front of the robot.]
nastavit rychlost otáčení na [30] [% v]
otočit [vpravo v]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <[140] [math_less_than v] (objekt [AIVision1 v] [středX v]) [math_less_than v] [180]> pak
zastavit jízdu

centrumY#

Vlastnost centerY udává souřadnici y středu detekovaného objektu v pixelech jako celé číslo od 0 do 240.

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na centerY.#
(objekt [AIVision1 v] [středY v])

Příklad

při spuštění
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [středY v]) [math_less_than v] [140]> pak
jet [dopředu v]
konec
jinak
zastavit jízdu

úhel#

Vlastnost angle udává orientaci detekovaného barevného kódu nebo ID AprilTag jako celé číslo ve stupních od 0 do 359.

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na úhel.#
(objekt [AIVision1 v] [úhel v])

Příklad

při spuštění
[Slide left or right depending on how the Color Code is rotated.]
navždy
získat data [RED_BLUE v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <[50] [math_less_than v] (objekt [AIVision1 v] [úhel v]) [math_less_than v] [100]> pak
jet [vpravo v]
jinak pokud <[270] [math_less_than v] (objekt [AIVision1 v] [úhel v]) [math_less_than v] [330]> pak
jet [vlevo v]
jinak
zastavit jízdu
konec
jinak
zastavit jízdu

původX#

Vlastnost originX udává souřadnici x levého horního rohu ohraničovacího rámečku detekovaného objektu v pixelech jako celé číslo od 0 do 320.

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na originX.#
(objekt [AIVision1 v] [počátekX v])

Příklad

při spuštění
[Display if an object is to the left or the right.]
navždy
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [počátekX v]) [math_less_than v] [160]> pak
tisk [To the left!] na obrazovce ▶
jinak
tisk [To the right!] na obrazovce ▶
konec
čekat [0.5] sekund

původY#

Vlastnost originY udává souřadnici y levého horního rohu ohraničovacího rámečku detekovaného objektu v pixelech jako celé číslo od 0 do 240.

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na originY.#
(objekt [AIVision1 v] [počátekY v])

Příklad

při spuštění
[Display if an object is close or far from the robot.]
navždy
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [počátekY v]) [math_less_than v] [80]> pak
tisk [Far!] na obrazovce ▶
jinak
tisk [Close!] na obrazovce ▶
konec
čekat [0.5] sekund

ID značky#

Vlastnost tagID uvádí identifikační číslo detekovaného ID AprilTag jako celé číslo.

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na tagID.#
(objekt [AIVision1 v] [tagID v])

Příklad

při spuštění
[Drive forward when AprilTag ID 0 is detected.]
navždy
získat data [AprilTag IDs v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [tagID v]) [math_equal v] [0]> pak
jet [dopředu v]
jinak
zastavit jízdu
konec
čekat [0.5] sekund

Je objekt AI Vision?#

Blok Objekt AI Vision je? hlásí booleovskou hodnotu, která označuje, zda detekovaný objekt odpovídá určité klasifikaci.

  • True – Položka v datové sadě je daný objekt.

  • False – Položka v datové sadě není daným konkrétním objektem.

Klasifikace AI Vision je objektově booleovský blok.#
<objekt [AIVision1 v] je [BlueBall v]?>

Parametr

Popis

objekt

S jakou klasifikací AI se má položka porovnat.

Příklad

při spuštění
[Display if a Blue Cube is detected.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
pokud <objekt [AIVision1 v] existuje?> pak
pokud <objekt [AIVision1 v] je [BlueCube v]?> pak
tisk [Cube detected!] na obrazovce ▶
čekat [0.5] sekund

Objekt AI Vision je AprilTag?#

Blok Je objekt AI Vision AprilTag? hlásí booleovskou hodnotu označující, zda detekovaný objekt je AprilTag, který odpovídá specifickému ID.

  • True — Detekovaný objekt je AprilTag s daným ID.

  • False — Detekovaný objekt není AprilTag s daným ID.

Objekt AI Vision je booleovský blok AprilTag.#
<objekt [AIVision1 v] je AprilTag [0]?>

Parametr

Popis

ID značky AprilTag

Číslo ID, které se má porovnat s detekovanou hodnotou AprilTag.

Příklad

při spuštění
[Report if AprilTag 3 is detected.]
navždy
vymazat obrazovku
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AprilTag IDs v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <objekt [AIVision1 v] je AprilTag [3]?> pak
tisk [That is 3!] na obrazovce ▶
jinak
tisk [That isn't 3!] na obrazovce ▶
konec
konec
čekat [0.1] sekund

Objekt AI Vision má ID AprilTag?#

Blok Objekt AI Vision je ID AprilTag? hlásí booleovskou hodnotu, která označuje, zda detekované ID AprilTag odpovídá specifickému ID.

  • True – ID AprilTag je číslo.

  • False – ID AprilTag není číslo.

AI Vision detekovala ID AprilTagu jako booleovský blok.#
<[AIVision1 v] object is AprilTag ID [1] ?>

Parametry

Popis

ID značky AprilTag

Číslo, které se má porovnat se zjištěným identifikačním číslem AprilTag.

Příklad:

při spuštění
[Report if AprilTag ID 3 is detected.]
navždy
vymazat obrazovku
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AprilTag IDs v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <[AIVision1 v] object is AprilTag ID [3] ?> pak
tisk [That is 3!] na obrazovce ▶
jinak
tisk [That isn't 3!] na obrazovce ▶
konec
konec
čekat [0.1] sekund