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.
nustatyti dirbtinio intelekto regėjimo objekto elementą – Pasirenka konkretų objektą iš aptiktų objektų sąrašo.
Vertės – Pasiekite ir naudokite užfiksuotus duomenis.
AI regos objektas egzistuoja – Praneša, ar objektas aptiktas.
AI vizijos objektas yra – Patikrina, ar aptiktas objektas atitinka konkrečią klasifikaciją.
AI Vision objektas yra „AprilTag“ ID – Patikrina, ar aptiktas „AprilTag“ ID atitinka konkretų ID.
AI regėjimo objektų skaičius – Pateikia aptiktų objektų skaičių.
AI vizijos objekto ypatybė – Pateikia išsamią informaciją, pvz.:
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.
daryti [AIVision1 v] momentinę nuotrauką iš [SELECT_A_SIG v]
Parametras |
Aprašymas |
|---|---|
įrenginys |
Kurį dirbtinio intelekto regos jutiklį naudoti? |
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 realiuoju laiku būtų galima apdoroti ir aptikti spalvotus objektus. Vienu metu galima konfigūruoti iki 7 spalvų parašų.

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ų.

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.
nustatyti [AIVision1 v] objekto elementą į (1)
Parametrai |
Aprašymas |
|---|---|
įrenginys |
Kurį dirbtinio intelekto regos jutiklį naudoti? |
prekė |
Duomenų rinkinyje esančio elemento numeris, kuris bus naudojamas. |
Pavyzdys
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#
Dirbtinio intelekto regėjimo objektas egzistuoja#
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ų.
<[AIVision1 v] objektas egzistuoja?>
Parametrai |
Aprašymas |
|---|---|
įrenginys |
Kurį dirbtinio intelekto regos jutiklį naudoti? |
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.
<[AIVision1 v] objektas yra [BlueBall v]?>
Parametras |
Aprašymas |
|---|---|
įrenginys |
Kurį dirbtinio intelekto regos jutiklį naudoti? |
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 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.
<[AIVision1 v] object is AprilTag ID [1] ?>
Parametrai |
Aprašymas |
|---|---|
įrenginys |
Kurį dirbtinio intelekto regos jutiklį naudoti? |
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ų.
([AIVision1 v] objektų skaičius)
Parametrai |
Aprašymas |
|---|---|
įrenginys |
Kurį dirbtinio intelekto regos jutiklį naudoti? |
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.
([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? |
nuosavybė |
Kurią aptikto objekto savybę naudoti: |
plotis#
Savybė width nurodo aptikto objekto plotį pikseliais kaip sveikąjį skaičių nuo 1 iki 320.
([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.
([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.
([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.
([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.
([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.
([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.
([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ų.
([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.
([AIVision1 v] objektas [balas v])