Dirbtinio intelekto regėjimo jutiklis#

Įvadas#

Dirbtinio intelekto regos jutiklis gali aptikti ir sekti objektus, spalvas ir „AprilTag“ ID. Tai leidžia robotui analizuoti aplinką, sekti objektus ir reaguoti pagal aptiktus vaizdinius duomenis.

Žemiau pateikiamas galimų blokų sąrašas:

Veiksmai – Užfiksuoti duomenis iš dirbtinio intelekto regos jutiklio pasirinktam parašui.

  • daryti momentinę kopiją – Užfiksuoja konkretaus parašo duomenis, pvz., sukonfigūruotą spalvą, iš anksto apmokytą objektą arba „AprilTag“ ID.

Nustatymai – pasirinkite, su kuriuo objektu sąveikauti.

Vertės – Pasiekite ir naudokite užfiksuotus duomenis.

Veiksmai#

padaryti momentinę nuotrauką#

Momentinės nuotraukos darymo blokas filtruoja duomenis iš dirbtinio intelekto regėjimo jutiklio kadro į vieną parašą – išsaugotą aprašymą to, ką jutiklis gali atpažinti, pvz., iš anksto apmokytą objektą, „AprilTag“ ID arba sukonfigūruotą spalvą ar spalvos kodą.

Spalvos ir spalvų kodai pirmiausia turi būti sukonfigūruoti „AI Vision Utility“ programoje, prieš juos naudojant su šiuo bloku.

Duomenų rinkinyje objektai saugomi surūšiuoti nuo didžiausio iki mažiausio pagal plotį, pradedant nuo indekso 0. Kiekvieno objekto savybes galima pasiekti naudojant bloką AI Vision object property. Jei nerandama atitinkančių objektų, pateikiamas tuščias duomenų rinkinys.

Momentinės nuotraukos darymo blokas.#
daryti [AIVision1 v] momentinę nuotrauką iš [SELECT_A_SIG v]

Parametras

Aprašymas

įrenginys

Kurį dirbtinio intelekto regos jutiklį naudoti, sukonfigūruota lange „Įrenginiai“.

parašas

Filtruoja duomenų rinkinį, kad būtų įtraukti tik nurodyto parašo duomenys. Galimi parašai:

Pastaba: Kad būtų rodomos „AprilTag ID“ arba AI klasifikavimo parinktys, jų aptikimas turi būti įjungtas AI vizijos programoje.

Pavyzdys

kai pradėta
[Drive forward if an AprilTag ID is detected.]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [AprilTag IDs v]
jei <[AIVIsion1 v] objektas egzistuoja?> tada
važiuoti [pirmyn v] per [10] [mm v] ▶

DI klasifikacijos#

Dirbtinio intelekto regos jutiklis gali aptikti skirtingus objektus pagal tam tikras dirbtinio intelekto klasifikacijas. Priklausomai nuo dirbtinio intelekto klasifikacijos modelio, pasirinkto konfigūruojant dirbtinio intelekto regos jutiklį įrenginių lange, bus aptikti skirtingi objektai. Šiuo metu galimi modeliai:

Klasės objektai

  • Mėlynasis kamuolys

  • Žalias kamuolys

  • Raudonasis kamuolys

  • Mėlynasis žiedas

  • Žalias žiedas

  • Raudonasis žiedas

  • Mėlynasis kubas

  • Žaliasis kubas

  • Raudonasis kubas

VEX V5 robotikos varžybų pasipriešinimas

  • Mėlynasis blokas

  • Raudonasis blokas

VEX V5 robotikos varžybos su dideliais statymais

  • Mobilusis tikslas

  • Raudonasis žiedas

  • Mėlynasis žiedas

VEX V5 robotikos varžybų viršijimas

  • RaudonasMėlynasPin

  • MėlynaGeltonaSmeigtukas

  • RaudonaGeltonaSmeigtukas

  • Geltonasis smeigtukas

  • Taurė

Spalvų parašai#

Spalvos parašas yra unikali spalva, kurią gali atpažinti dirbtinio intelekto regos jutiklis. Šie parašai leidžia jutikliui aptikti ir sekti objektus pagal jų spalvą. Sukonfigūravus spalvos parašą, jutiklis gali atpažinti objektus su ta konkrečia spalva savo matymo lauke.

Spalvų parašai naudojami take snapshot bloke, kad būtų galima realiuoju laiku apdoroti ir aptikti spalvotus objektus. Vienu metu galima konfigūruoti iki 7 spalvų parašų.

„AI Vision Utility“ programa rodo prijungtą regėjimo jutiklį, aptinkantį du spalvotus objektus. Kairėje pusėje rodomas tiesioginis kameros vaizdas su mėlynu langeliu kairėje ir raudonu langeliu dešinėje, kiekvienas iš jų apibrėžtas baltais ribojančiais langeliais. Juodos etiketės rodo jų atitinkamus pavadinimus, koordinates ir matmenis. Dešinėje pusėje yra spalvų parašo nustatymai su slankikliais, skirtais atspalviui ir sodrumo diapazonui tiek raudonam, tiek mėlynam langeliams. Mygtukai spalvoms pridėti, vaizdo įrašui sustabdyti, kopijuoti ir vaizdui išsaugoti yra apačioje, o uždarymo mygtukas – apatiniame dešiniajame kampe.

Pavyzdys

kai pradėta
[Display if any objects matching the RED_BOX signature is detected.]
amžinai
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
išvalyti eilutę [1] ekrane
[Change the signature to any configured Color Signature.]
daryti [AIVision1 v] momentinę nuotrauką iš [RED_BOX v]
jei <[AIVision1 v] objektas egzistuoja?> tada
spausdinti [Color detected!] ekrane ▶

Spalvų kodai#

Spalvų kodas yra struktūrizuotas modelis, sudarytas iš 2–4 spalvų parašų, išdėstytų tam tikra tvarka. Šie kodai leidžia dirbtinio intelekto regos jutikliui atpažinti iš anksto nustatytus spalvų modelius.

Spalvų kodai yra ypač naudingi norint identifikuoti sudėtingus objektus, suderinti juos su žaidimo elementais arba sukurti unikalius žymeklius autonominei navigacijai. Vienu metu galima konfigūruoti iki 8 spalvų kodų.

„AI Vision Utility“ sąsajoje rodomas prijungtas regėjimo jutiklis, aptinkantis du gretimus objektus: mėlyną langelį kairėje ir raudoną langelį dešinėje, sugrupuotus viename baltame ribojančiame langelyje, pažymėtame „BlueRed“. Aptikimo informacija apima kampą (A:11°), koordinates (X:143, Y:103), plotį (W:233) ir aukštį (H:108). Dešiniajame skydelyje išvardyti trys spalvų parašai: „Red_Box“, „Blue_Box“ ir „BlueRed“, su reguliuojamais atspalvio ir sodrumo diapazonais. „BlueRed“ parašas sujungia „Blue_Box“ ir „Red_Box“. Po vaizdo įrašo srautu yra mygtukai, pažymėti „Freeze Video“ (Užšaldyti vaizdo įrašą), „Copy Image“ (Kopijuoti vaizdą), „Save Image“ (Įrašyti vaizdą) ir „Close“ (Uždaryti).

Pavyzdys

kai pradėta
[Display if any objects matching the RED_BLUE code is detected.]
amžinai
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
išvalyti eilutę [1] ekrane
[Change the signature to any configured Color Code.]
daryti [AIVision1 v] momentinę nuotrauką iš [RED_BLUE v]
jei <[AIVision1 v] objektas egzistuoja?> tada
spausdinti [Code detected!] ekrane ▶

Nustatymai#

nustatyti AI vizijos objekto elementą#

Steko blokas nustatyti dirbtinio intelekto regėjimo objekto elementą nustato, kurį duomenų rinkinio elementą naudoti.

Objekto „Set AI Vision“ elementų krūvos blokas.#
nustatyti [AIVision1 v] objekto elementą į (1)

Parametrai

Aprašymas

įrenginys

Kurį dirbtinio intelekto regos jutiklį naudoti, sukonfigūruota lange „Įrenginiai“.

prekė

Duomenų rinkinyje esančio elemento numeris, kuris bus naudojamas.

Pavyzdys

Blokų krūva, prasidedanti bloku „when started“, po kurio eina komentarų blokas su užrašu „Rodyti didžiausią aptiktą „AprilTag“ ID“. Amžino ciklo viduje blokas „take a AI Vision snapshot“ fiksuoja „AprilTag“ ID vaizdą. Blokas „if“ patikrina, ar egzistuoja AI Vision objektas. Jei „true“, blokas „set AI Vision object item“ priskiria objektų skaičių kintamajam, o blokas „print“ ekrane rodo aptikto objekto žymės ID.#
kai pradėta
[Display the largest detected AprilTag ID.]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [AprilTag IDs v]
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
jei <[AIVision1 v] objektas egzistuoja?> tada
nustatyti [AIVision1 v] objekto elementą į ([AIVision1 v] objektų skaičius)
spausdinti ([AIVision1 v] objektas [tagID v]) ekrane ▶

Vertybės#

Ar egzistuoja AI vizijos objektas?#

Loginis blokas „AI Vision“ objektas egzistuoja praneša, ar duomenų rinkinyje aptiktas koks nors objektas.

  • Teisinga – Duomenų rinkinyje yra aptiktas objektas.

  • Klaidinga – Duomenų rinkinyje nėra jokių aptiktų objektų.

„AI Vision“ objektas egzistuoja loginiame bloke.#
<[AIVision1 v] objektas egzistuoja?>

Parametrai

Aprašymas

įrenginys

Kurį dirbtinio intelekto regos jutiklį naudoti, sukonfigūruota lange „Įrenginiai“.

Pavyzdys

kai pradėta
[Drive forward if an object is detected.]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [AI klasifikacijos v]
jei <[AIVision1 v] objektas egzistuoja?> tada
važiuoti [pirmyn v] per [10] [mm v] ▶

DI vizijos objektas yra#

AI vizijos objektas yra loginis blokas, pranešantis, ar aptiktas objektas atitinka konkrečią klasifikaciją.

  • Teisinga – Duomenų rinkinio elementas yra konkretus objektas.

  • Klaidinga – Duomenų rinkinio elementas nėra konkretus objektas.

AI vizijos AI klasifikacija yra objekto loginis blokas.#
<[AIVision1 v] objektas yra [BlueBall v]?>

Parametras

Aprašymas

įrenginys

Kurį dirbtinio intelekto regos jutiklį naudoti, sukonfigūruota lange „Įrenginiai“.

objektas

Su kuria DI klasifikacija palyginti elementą.

Pavyzdys

kai pradėta
[Display if a Blue Cube is detected.]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [AI klasifikacijos v]
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[AIVision1 v] objektas yra [BlueCube v]?> tada
spausdinti [Cube detected!] ekrane ▶
laukti [0.5] sekundžių

AI vizijos objektas yra „AprilTag“#

AI Vision objektas yra „AprilTag“ loginis blokas praneša, ar aptiktas objektas yra „AprilTag“, atitinkantis konkretų ID.

  • Teisinga – Aptiktas objektas yra „AprilTag“ su nurodytu ID.

  • Klaidinga – Aptiktas objektas nėra „AprilTag“ su nurodytu ID.

„AI Vision“ objektas yra „AprilTag“ loginis blokas.#
<[AIVision1 v] objektas yra AprilTag [0]?>

Parametras

Aprašymas

įrenginys

Kurį dirbtinio intelekto regos jutiklį naudoti, sukonfigūruota lange „Įrenginiai“.

AprilTag ID

ID numeris, kurį reikia palyginti su aptiktu „AprilTag“.

Pavyzdys

kai pradėta
[Report if AprilTag 3 is detected.]
amžinai
išvalyti ekraną
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
daryti [AIVision1 v] momentinę nuotrauką iš [AprilTag IDs v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[AIVision1 v] objektas yra AprilTag [3]?> tada
spausdinti [That is 3!] ekrane ▶
kitu atveju
spausdinti [That isn't 3!] ekrane ▶
pabaiga
pabaiga
laukti [0.1] sekundžių

AI Vision objektas yra „AprilTag“ ID#

AI Vision objektas yra „AprilTag ID“ loginis blokas praneša, ar aptiktas „AprilTag“ ID atitinka konkretų ID.

  • Teisinga – „AprilTag“ ID yra skaičius.

  • Netiesa – „AprilTag“ ID nėra skaičius.

„AI Vision“ aptiktas „AprilTag“ ID yra loginis blokas.#
<[AIVision1 v] object is AprilTag ID [1] ?>

Parametrai

Aprašymas

įrenginys

Kurį dirbtinio intelekto regos jutiklį naudoti, sukonfigūruota lange „Įrenginiai“.

AprilTag ID numeris

Skaičius, kurį reikia palyginti su aptiktu „AprilTag“ ID numeriu.

Pavyzdys:

kai pradėta
[Report if AprilTag ID 3 is detected.]
amžinai
išvalyti ekraną
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
daryti [AIVision1 v] momentinę nuotrauką iš [AprilTag IDs v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[AIVision1 v] object is AprilTag ID [3] ?> tada
spausdinti [That is 3!] ekrane ▶
kitu atveju
spausdinti [That isn't 3!] ekrane ▶
pabaiga
pabaiga
laukti [0.1] sekundžių

AI vizijos objektų skaičius#

AI vizijos objektų skaičiaus reporterio blokas pateikia aptiktų objektų skaičių duomenų rinkinyje kaip sveikąjį skaičių.

Objekto „Set AI Vision“ elementų krūvos blokas.#
([AIVision1 v] objektų skaičius)

Parametrai

Aprašymas

įrenginys

Kurį dirbtinio intelekto regos jutiklį naudoti, sukonfigūruota lange „Įrenginiai“.

Pavyzdys

kai pradėta
[Display the total amount of cubes, rings, and balls.]
amžinai
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
daryti [AIVision1 v] momentinę nuotrauką iš [AI klasifikacijos v]
jei <[AIVision1 v] objektas egzistuoja?> tada
spausdinti ([AIVision1 v] objektų skaičius) ekrane ▶
pabaiga
laukti [0.5] sekundžių

AI vizijos objekto ypatybė#

Kiekvienam objektui (parodyta žemiau) priskiriamos devynios savybės, kurios saugomos panaudojus bloką take snapshot.

„AI Vision“ objekto ypatybių reporterio blokas.#
([AIVision1 v] objektas [plotis v])

Visos ypatybių reikšmės, išskyrus tagID ir score, apibūdina aptikto objekto padėtį ir dydį dirbtinio intelekto regos jutiklio rodinyje tuo metu, kai buvo panaudotas blokas take snapshot. Šios reikšmės matuojamos pikseliais, remiantis jutiklio 320 x 240 pikselių skiriamąja geba.

Parametras

Aprašymas

įrenginys

Kurį dirbtinio intelekto regos jutiklį naudoti, sukonfigūruota lange „Įrenginiai“.

nuosavybė

Kurią aptikto objekto savybę naudoti:

plotis#

Savybė width nurodo aptikto objekto plotį pikseliais kaip sveikąjį skaičių nuo 1 iki 320.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip plotis.#
([AIVision1 v] objektas [plotis v])

Pavyzdys

kai pradėta
[Drive towards an object until its width is larger than 100 pixels.]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [AI klasifikacijos v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [plotis v]) [math_less_than v] [100]> tada
važiuoti [pirmyn v]
kitu atveju
sustabdyti važiavimą
pabaiga

aukštis#

Savybė aukštis nurodo aptikto objekto aukštį pikseliais kaip sveikąjį skaičių nuo 1 iki 240.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip aukštis.#
([AIVision1 v] objektas [aukštis v])

Pavyzdys

kai pradėta
[Drive towards an object until its height is larger than 100 pixels.]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [AI klasifikacijos v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [aukštis v]) [math_less_than v] [100]> tada
važiuoti [pirmyn v]
kitu atveju
sustabdyti važiavimą
pabaiga

centrasX#

Savybė centerX nurodo aptikto objekto centro x koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 320.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip centerX.#
([AIVision1 v] objektas [centrasX v])

Pavyzdys

kai pradėta
[Turn slowly until an object is centered in front of the robot.]
nustatyti sukimosi greitį į [30] [% v]
sukti [dešinėn v]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [AI klasifikacijos v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[140] [math_less_than v] ([AIVision1 v] objektas [centrasX v]) [math_less_than v] [180]> tada
sustabdyti važiavimą

centras Y#

Savybė centerY nurodo aptikto objekto centro y koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 240.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip centerY.#
([AIVision1 v] objektas [centrasY v])

Pavyzdys

kai pradėta
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [AI klasifikacijos v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [centrasY v]) [math_less_than v] [140]> tada
važiuoti [pirmyn v]
kitu atveju
sustabdyti važiavimą
pabaiga

kampas#

Savybė kampas nurodo aptikto spalvos kodo arba „AprilTag“ ID orientaciją sveikuoju skaičiumi laipsniais nuo 0 iki 359.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip kampas.#
([AIVision1 v] objektas [kampas v])

Pavyzdys

kai pradėta
[Slide left or right depending on how the Color Code is rotated.]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [RED_BLUE v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[50] [math_less_than v] ([AIVision1 v] objektas [kampas v]) [math_less_than v] [100]> tada
važiuoti [dešinėn v]
kitu atveju jei <[270] [math_less_than v] ([AIVision1 v] objektas [kampas v]) [math_less_than v] [330]> tada
važiuoti [kairėn v]
kitu atveju
sustabdyti važiavimą
pabaiga
kitu atveju
sustabdyti važiavimą

kilmėX#

Savybė originX nurodo aptikto objekto ribojančio langelio viršutinio kairiojo kampo x koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 320.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip originX.#
([AIVision1 v] objektas [pradžiaX v])

Pavyzdys

kai pradėta
[Display if an object is to the left or the right.]
amžinai
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
daryti [AIVision1 v] momentinę nuotrauką iš [AI klasifikacijos v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [pradžiaX v]) [math_less_than v] [160]> tada
spausdinti [To the left!] ekrane ▶
kitu atveju
spausdinti [To the right!] ekrane ▶
pabaiga
laukti [0.5] sekundžių

kilmėY#

Savybė originY nurodo aptikto objekto ribojančio langelio viršutinio kairiojo kampo y koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 240.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip originY.#
([AIVision1 v] objektas [pradžiaY v])

Pavyzdys

kai pradėta
[Display if an object is close or far from the robot.]
amžinai
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
daryti [AIVision1 v] momentinę nuotrauką iš [AI klasifikacijos v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [pradžiaY v]) [math_less_than v] [80]> tada
spausdinti [Far!] ekrane ▶
kitu atveju
spausdinti [Close!] ekrane ▶
pabaiga
laukti [0.5] sekundžių

žymos ID#

Ypatybė tagID nurodo aptikto „AprilTag“ ID identifikacinį numerį kaip sveikąjį skaičių.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip tagID.#
([AIVision1 v] objektas [tagID v])

Pavyzdys

kai pradėta
[Drive forward when AprilTag ID 0 is detected.]
amžinai
daryti [AIVision1 v] momentinę nuotrauką iš [AprilTag IDs v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [tagID v]) [math_equal v] [0]> tada
važiuoti [pirmyn v]
kitu atveju
sustabdyti važiavimą
pabaiga
laukti [0.5] sekundžių

rezultatas#

Savybė balas nurodo, kiek modelis pasitiki aptikta dirbtinio intelekto klasifikacija procentais nuo 70 % iki 100 %.

Mažesnis balas reiškia, kad jutiklis mažiau pasitiki aptiktu objektu, o didesnis balas – kad jutiklis labiau pasitiki.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip tagID.#
([AIVision1 v] objektas [balas v])