Įsitikinkite, kad jūsų dirbtinio intelekto regėjimo jutiklyje sukonfigūruoti spalvų parašai ir spalvų kodai , kad juos būtų galima naudoti su jūsų blokais. Norėdami sužinoti daugiau apie tai, kaip juos sukonfigūruoti, galite perskaityti toliau pateiktus straipsnius:
- Spalvų parašų konfigūravimas naudojant dirbtinio intelekto regėjimo jutiklį „VEXcode V5“
- Spalvų kodų konfigūravimas naudojant dirbtinio intelekto regėjimo jutiklį „VEXcode V5“ versijoje
Dirbtinio intelekto vaizdo jutiklis taip pat gali aptikti dirbtinio intelekto klasifikacijas ir „AprilTag“ žymas. Norėdami sužinoti, kaip įjungti šiuos aptikimo režimus, eikite čia:
- Dirbtinio intelekto klasifikacijų naudojimas su dirbtinio intelekto regos jutikliu
- „AprilTags“ naudojimas su dirbtinio intelekto regėjimo jutikliu
Vizualinių duomenų gavimas naudojant dirbtinio intelekto regos jutiklį
Kiekviena AI regėjimo jutiklio komanda prasidės sukonfigūruoto AI regėjimo jutiklio pavadinimu. Visuose šio straipsnio pavyzdžiuose naudojamo dirbtinio intelekto regėjimo jutiklio pavadinimas bus ai_vision_1.
fotografuoti_momentinę nuotrauką
Metodas take_snapshot nufotografuoja tai, ką šiuo metu mato dirbtinio intelekto vaizdo jutiklis, ir iš tos momentinės nuotraukos ištraukia duomenis, kuriuos vėliau galima naudoti projekte. Kai daroma momentinė nuotrauka, reikia nurodyti, kokio tipo objekto duomenis turėtų rinkti dirbtinio intelekto vaizdo jutiklis:
-
spalvų parašas arbaspalvų kodas
- Šie vizualiniai parašai prasideda dirbtinio intelekto regėjimo jutiklio pavadinimu, dvigubu pabraukimu ir vizualinio parašo pavadinimu, pavyzdžiui:
ai_vision_1__Blue.
- Šie vizualiniai parašai prasideda dirbtinio intelekto regėjimo jutiklio pavadinimu, dvigubu pabraukimu ir vizualinio parašo pavadinimu, pavyzdžiui:
-
Dirbtinioklasifikacijos AiVision.ALL_AIOBJS
-
balandisŽymės-
AiVision.ALL_TAGS
Padarius momentinę kopiją, bus sukurtas visų jūsų nurodytų aptiktų objektų rinkinys. Pavyzdžiui, jei norėtumėte aptikti „mėlyną“ spalvos parašąir dirbtinio intelekto regėjimo jutiklis aptiko 3 skirtingus mėlynos spalvos objektus, visų trijų duomenys būtų įtraukti į rinkinį.
Šiame pavyzdyje kintamasis vision_objects saugo rinkinį, kuriame yra aptikti „violetiniai“spalvų parašai iš dirbtinio intelekto regėjimo jutiklio, pavadinto ai_vision_1. Jis rodo aptiktų objektų skaičių ir kas 0,5 sekundės fiksuoja naują momentinę kopiją.
while True:
# Gauti visų violetinės spalvos parašų momentinę kopiją ir išsaugoti ją faile vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Purple)
# Prieš ištraukiant duomenis, patikrinama, ar momentinėje kopijoje buvo aptiktas objektas.
jei vision_objects[0].exists == True
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Objektų skaičius:", len(vision_objects))
wait(0.5, SEKUNDĖS)
Objekto savybės
Kiekvienas momentinės nuotraukos objektas turi skirtingas savybes, kurias galima naudoti norint pateikti informaciją apie tą objektą. Galimos šios savybės:
- id
- centras X ir centras Y
- kilmėX ir kilmėY
- plotis
- aukštis
- kampas
- rezultatas
- egzistuoja
Norėdami pasiekti objekto savybę, naudokite kintamojo pavadinimą, kuriame saugoma seka, o po jo – objekto indeksą.
Objekto indeksas nurodo, kurio konkretaus objekto savybę norite gauti. Padarius momentinę nuotrauką, dirbtinio intelekto vaizdo jutiklis automatiškai rūšiuoja objektus pagal dydį. Didžiausiam objektui priskiriamas indeksas 0, o mažesniems objektams priskiriami didesni indekso numeriai.
Pavyzdžiui, iškvietus didžiausio objekto plotį kintamojo vision_objects viduje, būtų: vision_objects[0].width“.
id
Savybė id galima tik AprilTags ir AI klasifikacijoms.
AprilTagatveju, id savybė nurodo aptiktoAprilTag(s) ID numerį.
Konkrečių „AprilTags“ identifikavimas leidžia pasirinkti navigaciją. Galite užprogramuoti savo robotą judėti link tam tikrų žymų, ignoruojant kitas, efektyviai jas naudojant kaip automatinės navigacijos kelio ženklus.
Jei AI klasifikacijų,savybė “ nurodo konkretų aptiktos AI klasifikacijos tipą.
Konkrečių objektų identifikavimas Dirbtinio intelekto klasifikacijosleidžia robotui sutelkti dėmesį tik į konkrečius objektus, pavyzdžiui, norėti naviguoti tik link raudono, o ne mėlyno Buckyball'o.
Daugiau informacijos apie balandžio mėn. žymas ir DI klasifikacijas ir kaip įjungti jų aptikimą DI vizijos programoje rasite šiuose straipsniuose.
centras X ir centras Y
Tai yra aptikto objekto centro koordinatės pikseliais.
„CenterX“ ir „CenterY“ koordinatės padeda naviguoti ir nustatyti padėtį. Dirbtinio intelekto vaizdo jutiklio skiriamoji geba yra 320 x 240 pikselių.
Matote, kad objektas, esantis arčiau dirbtinio intelekto vaizdo jutiklio, turės žemesnę CenterY koordinatę nei objektas, esantis toliau.
Šiame pavyzdyje, kadangi dirbtinio intelekto regos jutiklio vaizdo centras yra (160, 120), robotas suksis į dešinę, kol aptikto objekto centro X koordinatė bus didesnė nei 150 pikselių, bet mažesnė nei 170 pikselių.
while True:
# Gauti visų mėlynos spalvos parašų momentinę kopiją ir išsaugoti ją faile vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Prieš ištraukiant duomenis, patikrinama, ar momentinėje kopijoje buvo aptiktas objektas.
if vision_objects[0].exists == True
# Patikrinama, ar objektas nėra dirbtinio intelekto regos jutiklio matymo lauko centre.
if vision_objects[0].centerX > 150 and 170 > vision_objects[0].centerX:
# Toliau sukite į dešinę, kol objektas bus vaizdo centre.
drivetrain.turn(RIGHT)
kita:
drivetrain.stop()
wait(5, MSEC)
originX ir originY
„OriginX“ ir „OriginY“ yra aptikto objekto viršutinio kairiojo kampo koordinatė pikseliais.
„OriginX“ ir „OriginY“ koordinatės padeda naviguoti ir nustatyti padėtį. Sujungę šią koordinatę su objekto pločiu ir aukščiu, galite nustatyti objekto ribojančios dėžės dydį. Tai gali padėti sekti judančius objektus arba naršyti tarp jų.
plotis ir aukštis
Tai aptikto objekto plotis arba aukštis pikseliais.
Pločio ir aukščio matavimai padeda atpažinti skirtingus objektus. Pavyzdžiui, „Buckyball“ bus didesnio aukščio nei „Ring“.
Plotis ir aukštis taip pat rodo objekto atstumą nuo dirbtinio intelekto vaizdo jutiklio. Mažesni matmenys paprastai reiškia, kad objektas yra toliau, o didesni – arčiau.
Šiame pavyzdyje objekto plotis naudojamas navigacijai. Robotas artės prie objekto, kol jo plotis pasieks tam tikrą dydį, o tada sustos.
while True:
# Gauti visų mėlynos spalvos parašų momentinę kopiją ir išsaugoti ją faile vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Prieš ištraukiant duomenis, patikrinama, ar momentinėje kopijoje buvo aptiktas objektas.
if vision_objects[0].exists == True
# Patikrinama, ar didžiausias objektas yra arti dirbtinio intelekto regos jutiklio, išmatuojant jo plotį.
if vision_objects[0].width < 250:
# Priartėti prie objekto, kol jis taps platesnis nei 250 pikselių.
drivetrain.drive(Į PRIEKĮ)
kita:
drivetrain.stop()
wait(5, MSEC)
kampas
Savybė angle galima tik suColor Codes irAprilTags
.
Tai nurodo, ar aptiktas Spalvos kodasarba „AprilTag yra orientuotas kitaip.
Galite matyti, ar robotas yra orientuotas kitaipspalvų kodo ar„AprilTag atžvilgiu, ir pagal tai priimti navigacijos sprendimus.
Pavyzdžiui, jeispalvos kodas neaptinkamas tinkamu kampu, robotas gali netinkamai paimti objekto, kurį jis vaizduoja.
rezultatas
balo savybė naudojama, kai AI regėjimo jutikliu aptinkamosDI klasifikacijos.
Pasitikėjimo balas rodo, kiek užtikrintas dirbtinio intelekto regos jutiklis aptikimo metu. Šiame paveikslėlyje 99 % tikslumu galima identifikuoti šių keturių objektų dirbtinio intelekto klasifikacijas. Šį balą galite naudoti norėdami užtikrinti, kad jūsų robotas sutelktų dėmesį tik į labai patikimus aptikimus.
egzistuoja
Savybė exists naudojama norint aptikti, ar paskutinėje padarytoje momentinėje kopijoje buvo aptiktas nurodytas vizualinis parašas.
Tai leidžia patikrinti, ar ankstesnėje momentinėje kopijoje buvo aptikti kokie nors objektai. Ši savybė grąžins reikšmę „True“, kai objektas egzistuoja, ir „False“, kai objekto nėra.