Dirbtinio intelekto vizija#
Įvadas#
VEX AIM kodavimo roboto dirbtinio intelekto regos jutiklis aptinka ir seka objektus, spalvas ir „AprilTag“ ID. Tai leidžia robotui analizuoti aplinką, sekti objektus ir reaguoti pagal aptiktus vaizdinius duomenis.
Dirbtinio intelekto vaizdo jutiklio skiriamoji geba yra 320 × 240 pikselių. Pradinis taškas (0, 0) yra viršutiniame kairiajame kampe, o jutiklio centras yra ties (160, 120), kaip parodyta toliau pateiktoje diagramoje:

Žemiau pateikiamas visų blokų sąrašas:
Veiksmai – valdyti dirbtinio intelekto regėjimo srautą ir fiksuoti objektų duomenis.
Dirbtinio intelekto vaizdo peržiūros programa ekrane – Įjungia arba išjungia tiesioginį dirbtinio intelekto vaizdo transliaciją roboto ekrane.
gauti objekto duomenis – fiksuoja konkretaus parašo duomenis, pvz., sukonfigūruotą spalvą, iš anksto apmokytą objektą arba „AprilTag“ ID.
Nustatymai – koreguokite, prie kurių aptiktų objektų galima prisijungti.
nustatyti dirbtinio intelekto regėjimo objekto elementą — Pasirenka konkretų objektą iš aptiktų objektų sąrašo.
Reikšmės – grąžina objekto buvimą, klasifikaciją ir savybes.
turi objektą — Patikrina, ar robotas laiko aptiktą objektą.
AI regos objektas egzistuoja – Praneša, ar objektas aptiktas.
AI vizijos objektas yra – tikrina, ar aptiktas objektas atitinka konkrečią klasifikaciją.
AI Vision objektas yra „AprilTag“ ID – tikrina, 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#
AI vizijos peržiūros priemonė ekrane#
„DI Vision“ peržiūros priemonės ekrane blokas įjungia arba išjungia tiesioginį „DI Vision“ srautą roboto ekrane. Kai įjungtas, ekrane rodomi realaus laiko jutiklių duomenys, neleidžiant rodyti kitų vaizdų ar teksto. Norėdami rodyti kitą turinį, naudokite šį bloką, kad paslėptumėte srautą.
AI Vision [rodyti v] peržiūros rodytuvas ekrane
Parametrai |
Aprašymas |
|---|---|
būsena |
Valdo duomenų srauto rodymą roboto ekrane: rodyti rodo duomenų srautą, o slėpti – jį pašalina iš ekrano. |
Pavyzdys
kai pradėta
[View the AI Vision Sensor's feed for five seconds.]
AI Vision [rodyti v] peržiūros rodytuvas ekrane
laukti [5] sekundžių
AI Vision [slėpti v] peržiūros rodytuvas ekrane
gauti objekto duomenis#
Blokas „gauti objekto duomenis“ filtruoja duomenis iš dirbtinio intelekto regėjimo jutiklio kadro iki vieno parašo – išsaugoto aprašymo to, ką jutiklis gali atpažinti, pvz., iš anksto apmokyto objekto, „AprilTag“ ID arba sukonfigūruotos spalvos ar spalvos kodo.
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.
gauti [sportinis kamuolys v] duomenis iš AI Vision
Parametras |
Aprašymas |
|---|---|
parašas |
Filtruoja duomenų rinkinį, kad jame būtų tik nurodyto parašo duomenys. Galimi parašai:
|
Pavyzdys
kai pradėta
[Move forward if a sports ball is detected.]
amžinai
gauti [sportinis kamuolys v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
judėti [pirmyn v] per [10] [mm v] ▶
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ą. Kai spalvos parašas sukonfigūruotas dirbtinio intelekto regos programoje, jutiklis gali atpažinti objektus su ta konkrečia spalva savo matymo lauke.
Spalvų parašai naudojami get object data bloke, kad būtų galima apdoroti ir aptikti spalvotus objektus realiuoju laiku.

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.]
gauti [Red_Box v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
spausdinti [Color signature detected!] ekrane ▶
Spalvų kodai#
Spalvų kodas yra struktūrizuotas šablonas, sudarytas iš 2–4 spalvų parašų, išdėstytų tam tikra tvarka. Kai spalvų kodas sukonfigūruotas „AI Vision Utility“ programoje, jutiklis gali atpažinti iš anksto nustatytus spalvų šablonus.
Spalvų kodai yra ypač naudingi norint identifikuoti sudėtingus objektus, suderinti juos su žaidimo elementais arba sukurti unikalius žymeklius autonominei navigacijai.

Pavyzdys
kai pradėta
[Display if any objects matching the BlueRed 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.]
gauti [BlueRed v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
spausdinti [Color 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 AI Vision objekto elementą į (1)
Parametrai |
Aprašymas |
|---|---|
prekė |
Duomenų rinkinyje esančio elemento numeris, kuris bus naudojamas. |
Pavyzdys
kai pradėta
[Display the width of the smallest detected object.]
amžinai
gauti [visas krovinys v] duomenis iš AI Vision
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
jei <AI Vision objektas egzistuoja?> tada
nustatyti AI Vision objekto elementą į (AI Vision objektų skaičius)
spausdinti (AI Vision objektas [plotis v]) ekrane ▶
Vertybės#
turi objektą#
Loginis blokas turi objektą praneša, ar robotas šiuo metu turi aptiktą objektą, palyginti su jo Kicker.
Tiesa — Robotas turi objektą.
Netiesa — Robotas neturi objekto.
<turi [sportinis kamuolys v]? :: custom-ai-vision>
Parametras |
Aprašymas |
|---|---|
objektas |
Objektas, kurį reikia aptikti roboto spardytojo atžvilgiu:
|
Pavyzdys
kai pradėta
[Kick when the robot has a sports ball.]
amžinai
jei <turi [sportinis kamuolys v]? :: custom-ai-vision> tada
spirti objektą [vidutinis v]
Dirbtinio intelekto regėjimo objektas egzistuoja#
Loginis blokas „AI Vision“ objektas egzistuoja praneša, ar duomenų rinkinyje aptiktas objektas.
Teisinga – duomenų rinkinyje yra aptiktas objektas.
Klaidinga — Neaptikta jokių objektų.
<AI Vision objektas egzistuoja?>
Parametrai |
Aprašymas |
|---|---|
Šis blokas neturi parametrų. |
Pavyzdys
kai pradėta
[Move forward if a sports ball is detected.]
amžinai
gauti [sportinis kamuolys v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
judėti [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 Vision objektas yra [sportinis kamuolys v]?>
Parametras |
Aprašymas |
|---|---|
objektas |
Su kuriuo objektu palyginti šį daiktą:
|
Pavyzdys
kai pradėta
[Display if a sports ball is detected.]
amžinai
gauti [visas krovinys v] duomenis iš AI Vision
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
jei <AI Vision objektas egzistuoja?> tada
jei <AI Vision objektas yra [sportinis kamuolys v]?> tada
spausdinti [Sports ball 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.
Klaidinga – „AprilTag“ ID nėra skaičius.
<AI Vision object is AprilTag ID [1] ?>
Parametrai |
Aprašymas |
|---|---|
AprilTag ID |
Skaičius, kurį reikia palyginti su aptiktu „AprilTag“ ID numeriu. |
AI vizijos objektų skaičius#
AI vizijos objektų skaičiaus reporterio blokas pateikia aptiktų objektų skaičių duomenų rinkinyje kaip sveikąjį skaičių.
AI Vision objektų skaičius
Parametrai |
Aprašymas |
|---|---|
Šis blokas neturi parametrų. |
Pavyzdys
kai pradėta
[Display the amount of sports balls and barrels.]
amžinai
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
gauti [visas krovinys v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
spausdinti (AI Vision 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ą get object data.
AI Vision objektas [plotis v]
Visos ypatybių reikšmės, išskyrus tagID, apibūdina aptikto objekto padėtį, dydį, orientaciją arba kryptį tuo metu, kai buvo panaudotas get object data blokas. Šios reikšmės matuojamos pikseliais arba laipsniais, remiantis jutiklio 320 x 240 pikselių skiriamąja geba.

Parametras |
Aprašymas |
|---|---|
nuosavybė |
Kurią aptikto objekto savybę naudoti: |
plotis#
Savybė width nurodo aptikto objekto plotį pikseliais kaip sveikąjį skaičių nuo 1 iki 320.
Pastaba: Pikselių vertės yra santykinės jutiklio koordinačių sistemos atžvilgiu. Žr. diagramą įvade.
AI Vision objektas [plotis v]

Pavyzdys
kai pradėta
[Move towards a blue barrel until its width is larger than 100 pixels.]
amžinai
gauti [mėlyna statinė v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
jei <(AI Vision objektas [plotis v]) [math_less_than v] [100]> tada
judėti [pirmyn v]
pabaiga
kitu atveju
sustabdyti visus judesius
aukštis#
Savybė aukštis nurodo aptikto objekto aukštį pikseliais kaip sveikąjį skaičių nuo 1 iki 240.
Pastaba: Pikselių vertės yra santykinės jutiklio koordinačių sistemos atžvilgiu. Žr. diagramą įvade.
AI Vision objektas [aukštis v]

Pavyzdys
kai pradėta
[Move towards a blue barrel until its height is larger than 100 pixels.]
amžinai
gauti [mėlyna statinė v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
jei <(AI Vision objektas [aukštis v]) [math_less_than v] [100]> tada
judėti [pirmyn v]
pabaiga
kitu atveju
sustabdyti visus judesius
centrasX#
Savybė centerX nurodo aptikto objekto centro x koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 320.
Pastaba: Pikselių vertės yra santykinės jutiklio koordinačių sistemos atžvilgiu. Žr. diagramą įvade.
AI Vision objektas [centrasX v]

Pavyzdys
kai pradėta
[Turn slowly until a blue barrel is centered in front of the robot.]
nustatyti sukimosi greitį į [30]%
sukti [dešinėn v]
amžinai
gauti [mėlyna statinė v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
jei <[140] [math_less_than v] (AI Vision objektas [centrasX v]) [math_less_than v] [180]> tada
sustabdyti visus judesius
centras Y#
Savybė centerY nurodo aptikto objekto centro y koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 240.
Pastaba: Pikselių vertės yra santykinės jutiklio koordinačių sistemos atžvilgiu. Žr. diagramą įvade.
AI Vision objektas [centrasY v]

Pavyzdys
kai pradėta
[Move towards a blue barrel until its center y-coordinate is more than 140 pixels.]
amžinai
gauti [mėlyna statinė v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
jei <(AI Vision objektas [centrasY v]) [math_less_than v] [140]> tada
judėti [pirmyn v]
pabaiga
kitu atveju
sustabdyti visus judesius
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.
Pastaba: Pikselių vertės yra santykinės jutiklio koordinačių sistemos atžvilgiu. Žr. diagramą įvade.
AI Vision objektas [pradžiaX v]

Pavyzdys
kai pradėta
[Display if an orange barrel is to the left or the right.]
amžinai
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
gauti [oranžinė statinė v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
jei <(AI Vision 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.
Pastaba: Pikselių vertės yra santykinės jutiklio koordinačių sistemos atžvilgiu. Žr. diagramą įvade.
AI Vision objektas [pradžiaY v]

Pavyzdys
kai pradėta
[Display if an orange barrel is close or far from the robot.]
amžinai
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
gauti [oranžinė statinė v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
jei <(AI Vision objektas [pradžiaY v]) [math_less_than v] [80]> tada
spausdinti [Far!] ekrane ▶
kitu atveju
spausdinti [Close!] ekrane ▶
pabaiga
laukti [0.5] sekundžių
rotacija#
Savybė rotation praneša aptikto „AprilTag“ ID arba spalvos kodo orientaciją kaip sveikąjį skaičių laipsniais nuo 0 iki 359.
AI Vision objektas [pasukimas v]

Pavyzdys
kai pradėta
[Slide left or right depending on how the Color Code is rotated.]
amžinai
gauti [Red_Blue v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
jei <[50] [math_less_than v] (AI Vision objektas [pasukimas v]) [math_less_than v] [100]> tada
judėti [dešinėn v]
kitu atveju jei <[270] [math_less_than v] (AI Vision objektas [pasukimas v]) [math_less_than v] [330]> tada
judėti [kairėn v]
kitu atveju
sustabdyti visus judesius
pabaiga
kitu atveju
sustabdyti visus judesius
guolis#
Savybė pearing nurodo, kiek objektas yra nutolęs į kairę arba į dešinę nuo dirbtinio intelekto regos jutiklio matymo lauko centro laipsniais. 0 reikšmė reiškia, kad objektas yra centre, teigiamos reikšmės reiškia, kad objektas yra dešinėje, o neigiamos reikšmės reiškia, kad objektas yra kairėje.
kai pradėta
[Keep the blue barrel directly in front of the robot.]
nustatyti sukimosi greitį į [40]%
amžinai
gauti [mėlyna statinė v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
jei <(AI Vision objektas [kryptis v]) [math_greater_than v] [5]> tada
sukti [dešinėn v]
kitu atveju jei <(AI Vision objektas [kryptis v]) [math_less_than v] [-5]> tada
sukti [kairėn v]
kitu atveju
sustabdyti visus judesius
žymos ID#
Ypatybė tagID nurodo aptikto „AprilTag“ ID identifikacinį numerį kaip sveikąjį skaičių.
AI Vision objektas [tagID v]
Pavyzdys
kai pradėta
[Move forward when AprilTag ID 0 is detected.]
amžinai
gauti [AprilTag ID 0 v] duomenis iš AI Vision
jei <AI Vision objektas egzistuoja?> tada
judėti [pirmyn v]
pabaiga
sustabdyti visus judesius