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

Zavedení#

Senzor obrazu s umělou inteligencí 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.

Níže je uveden seznam dostupných bloků:

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

  • pořídit snímek – Zachytí data pro konkrétní podpis, například nakonfigurovanou barvu, předtrénovanou 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#

pořídit snímek#

Blok zásobníku take snapshot filtruje data z rámce senzoru 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 Take snapshot.#
pořídit snímek [AIVision1 v] z [SELECT_A_SIG v]

Parametr

Popis

zařízení

Který senzor AI Vision se má použít, nakonfigurovaný v okně Zařízení.

podpis

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

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
pořídit snímek [AIVision1 v] z [AprilTag IDs v]
pokud <objekt [AIVIsion1 v] existuje?> pak
jet [dopředu v] na [10] [mm v] ▶

Klasifikace umělé inteligence#

Senzor AI Vision 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 senzoru AI Vision 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

Odpor vůči soutěži v robotice VEX V5

  • BlueBlock

  • RedBlock

Vysoké sázky v robotické soutěži VEX V5

  • Mobilní cíl

  • RedRing

  • BlueRing

Přerušení robotické soutěže VEX V5

  • ČervenáModráPin

  • ModráŽlutáPin

  • ČervenáŽlutáKolík

  • ŽlutýPin

  • Pohár

Barevné podpisy#

Barevný podpis je jedinečná barva, kterou dokáže senzor s umělou inteligencí rozpoznat. Díky těmto podpisům dokáže senzor detekovat a sledovat objekty na základě jejich barvy. Jakmile je barevný podpis nakonfigurován, dokáže senzor identifikovat objekty s danou barvou ve svém zorném poli.

Barevné signatury se používají v bloku take snapshot 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.]
pořídit snímek [AIVision1 v] z [RED_BOX 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í senzoru AI Vision Sensor 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.]
pořídit snímek [AIVision1 v] z [RED_BLUE 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

zařízení

Který senzor AI Vision se má použít, nakonfigurovaný v okně Zařízení.

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
pořídit snímek [AIVision1 v] z [AprilTag IDs 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#

Existuje objekt AI Vision?#

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

zařízení

Který senzor AI Vision se má použít, nakonfigurovaný v okně Zařízení.

Příklad

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

Objekt AI Vision je#

Booleovský blok Objekt AI Vision hlásí, zda detekovaný objekt odpovídá určité klasifikaci.

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

  • Nepravda – 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

zařízení

Který senzor AI Vision se má použít, nakonfigurovaný v okně Zařízení.

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
pořídit snímek [AIVision1 v] z [AI klasifikace 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.#

Logický blok Objekt AI Vision je AprilTag hlásí, 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

zařízení

Který senzor AI Vision se má použít, nakonfigurovaný v okně Zařízení.

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
pořídit snímek [AIVision1 v] z [AprilTag IDs 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.#

Booleovský blok Objekt AI Vision je AprilTag ID a hlásí, zda detekované AprilTag ID odpovídá specifickému ID.

  • True – ID AprilTag je číslo.

  • Nepravda – ID AprilTag není číslo.

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

Parametry

Popis

zařízení

Který senzor AI Vision se má použít, nakonfigurovaný v okně Zařízení.

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
pořídit snímek [AIVision1 v] z [AprilTag IDs 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

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

zařízení

Který senzor AI Vision se má použít, nakonfigurovaný v okně Zařízení.

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
pořídit snímek [AIVision1 v] z [AI klasifikace 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) uložený po použití bloku take snapshot obsahuje devět vlastností.

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

Všechny hodnoty vlastností kromě tagID a score popisují polohu a velikost detekovaného objektu v pohledu senzoru AI Vision v okamžiku použití bloku take snapshot. Tyto hodnoty se měří v pixelech na základě rozlišení senzoru 320 x 240 pixelů.

Parametr

Popis

zařízení

Který senzor AI Vision se má použít, nakonfigurovaný v okně Zařízení.

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
pořídit snímek [AIVision1 v] z [AI klasifikace v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [šířka v]) [math_less_than v] [100]> pak
jet [dopředu v]
jinak
zastavit jízdu
konec

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
pořídit snímek [AIVision1 v] z [AI klasifikace v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [výška v]) [math_less_than v] [100]> pak
jet [dopředu v]
jinak
zastavit jízdu
konec

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
pořídit snímek [AIVision1 v] z [AI klasifikace 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
pořídit snímek [AIVision1 v] z [AI klasifikace v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [středY v]) [math_less_than v] [140]> pak
jet [dopředu v]
jinak
zastavit jízdu
konec

ú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
pořídit snímek [AIVision1 v] z [RED_BLUE 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
pořídit snímek [AIVision1 v] z [AI klasifikace 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
pořídit snímek [AIVision1 v] z [AI klasifikace 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
pořídit snímek [AIVision1 v] z [AprilTag IDs 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

skóre#

Vlastnost score udává, jak si je model jistý detekovanou klasifikací umělé inteligence, v procentech od 70 % do 100 %.

Nižší skóre znamená, že si je senzor méně jistý detekovaným objektem, zatímco vyšší skóre znamená, že si je senzor jistější.

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