Pārliecinieties, vai jūsu AI redzes sensorā ir konfigurēti krāsu paraksti un krāsu kodi , lai tos varētu izmantot ar jūsu blokiem. Lai uzzinātu vairāk par to konfigurēšanu, varat izlasīt tālāk norādītos rakstus:
- Krāsu parakstu konfigurēšana ar AI redzes sensoru VEXcode V5
- Krāsu kodu konfigurēšana ar AI redzes sensoru VEXcode V5
Mākslīgā intelekta redzes sensors var noteikt arī mākslīgā intelekta klasifikācijas un AprilTags. Lai uzzinātu, kā iespējot šos noteikšanas režīmus, dodieties šeit:
Vizuālo datu iegūšana ar mākslīgā intelekta redzes sensoru
Katra AI redzes sensora komanda sāksies ar konfigurētā AI redzes sensora nosaukumu. Visos šajā rakstā sniegtajos piemēros izmantotā AI redzes sensora nosaukums būs ai_vision_1.
uzņemt_momentuzņēmumu
Metode take_snapshot uzņem attēlu ar to, ko pašlaik redz AI redzes sensors, un no šī momentuzņēmuma izgūst datus, kurus pēc tam var izmantot projektā. Uzņemot momentuzņēmumu, ir jānorāda, kāda veida objekta dati mākslīgā intelekta redzes sensoram jāapkopo:
-
Krāsu paraksts vaiKrāsu kods
- Šie vizuālie paraksti sākas ar AI redzes sensora nosaukumu, dubultu pasvītrojumu un pēc tam vizuālā paraksta nosaukumu, piemēram:
ai_vision_1__Blue.
- Šie vizuālie paraksti sākas ar AI redzes sensora nosaukumu, dubultu pasvītrojumu un pēc tam vizuālā paraksta nosaukumu, piemēram:
-
Mākslīgāklasifikācijas AiVision.ALL_AIOBJS
-
aprīlisBirkas
Uzņemot momentuzņēmumu, tiks izveidots visu norādīto atrasto objektu kortežs. Piemēram, ja vēlaties noteikt "zilu" krāsu parakstuun mākslīgā intelekta redzes sensors noteica 3 dažādus zilus objektus, dati no visiem trim tiktu ievietoti kortežā.
Šajā piemērā mainīgais vision_objects saglabā kortežu, kas satur no mākslīgā intelekta redzes sensora ar nosaukumu ai_vision_1noteiktos "violetos"krāsu parakstus. Tas parāda atrasto objektu skaitu un ik pēc 0,5 sekundēm uzņem jaunu momentuzņēmumu.
while True:
# Iegūt visu purpura krāsu parakstu momentuzņēmumu un saglabāt to vision_objects failā.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Purple)
# Pirms datu izvilkšanas pārbaudiet, vai momentuzņēmumā ir atrasts objekts.
ja vision_objects[0].exists == True
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Objektu skaits:", len(vision_objects))
wait(0.5, SEKUNDES)
Objekta īpašības
Katram momentuzņēmuma objektam ir dažādas īpašības, kuras var izmantot, lai ziņotu par informāciju par šo objektu. Pieejamie īpašumi ir šādi:
- id
- centrsX un centrsY
- izcelsmeX un izcelsmeY
- platums
- augstums
- leņķis
- rezultāts
- pastāv
Lai piekļūtu objekta īpašībai, izmantojiet mainīgā nosaukumu, kurā tiek glabāts kortežs, kam seko objekta indekss.
Objekta indekss norāda, kura konkrētā objekta īpašību vēlaties izgūt. Pēc momentuzņēmuma uzņemšanas AI redzes sensors automātiski sakārto objektus pēc izmēra. Lielākajam objektam tiek piešķirts indekss 0, bet mazākiem objektiem tiek piešķirti lielāki indeksa numuri.
Piemēram, izsaucot lielākā objekta platumu mainīgā vision_objects iekšpusē, izdotos šādi: vision_objects[0].width.
id
Īpašums id ir pieejams tikai AprilTags un AI klasifikācijām.
AprilTaggadījumā id īpašība apzīmē noteiktoAprilTag(s) ID numuru.
Konkrētu AprilTags identificēšana ļauj veikt selektīvu navigāciju. Jūs varat ieprogrammēt savu robotu, lai tas virzītos uz noteiktām atzīmēm, vienlaikus ignorējot citas, efektīvi izmantojot tās kā norādes automatizētai navigācijai.
AI klasifikācijāmīpašība id apzīmē konkrēto noteikto AI klasifikācijas veidu.
Konkrētu objektu identificēšana Mākslīgā intelekta klasifikācijasļauj robotam koncentrēties tikai uz konkrētiem objektiem, piemēram, vēloties pārvietoties tikai uz sarkanu Bakibolu, nevis zilu.
Lai iegūtu plašāku informāciju par aprīļa tagiem un , skatiet šos rakstus par AI klasifikācijām un to, kā iespējot to noteikšanu AI Vision Utility.
centrsX un centrsY
Šīs ir noteiktā objekta centra koordinātas pikseļos.
CenterX un CenterY koordinātas palīdz navigācijā un pozicionēšanā. Mākslīgā intelekta redzes sensora izšķirtspēja ir 320 x 240 pikseļi.
Var redzēt, ka objektam, kas atrodas tuvāk AI redzes sensoram, būs zemāka CenterY koordināta nekā objektam, kas atrodas tālāk.
Šajā piemērā, tā kā AI redzes sensora skata centrs ir (160, 120), robots griezīsies pa labi, līdz noteiktā objekta centra X koordināta būs lielāka par 150 pikseļiem, bet mazāka par 170 pikseļiem.
while True:
# Iegūt visu zilās krāsas parakstu momentuzņēmumu un saglabāt to vision_objects failā.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Pirms datu izvilkšanas pārbaudiet, vai momentuzņēmumā ir atrasts objekts.
if vision_objects[0].exists == True
# Pārbauda, vai objekts neatrodas AI redzes sensora skata centrā.
ja vision_objects[0].centerX > 150 un 170 > vision_objects[0].centerX:
# Turpiniet griezties pa labi, līdz objekts atrodas skata centrā.
drivetrain.turn(LABĀ)
citādi:
drivetrain.stop()
wait(5, MSEC)
izcelsmeX un izcelsmeY
OriginX un OriginY ir noteiktā objekta augšējā kreisā stūra koordināta pikseļos.
OriginX un OriginY koordinātas palīdz navigācijā un pozicionēšanā. Apvienojot šo koordinātu ar objekta platumu un augstumu, var noteikt objekta ierobežojošā lodziņa izmēru. Tas var palīdzēt izsekot kustīgiem objektiem vai pārvietoties starp objektiem.
platums un augstums
Šis ir noteiktā objekta platums vai augstums pikseļos.
Platuma un augstuma mērījumi palīdz identificēt dažādus objektus. Piemēram, Buckyball būs lielāks augstums nekā Ring.
Platums un augstums norāda arī objekta attālumu no AI redzes sensora. Mazāki mērījumi parasti nozīmē, ka objekts atrodas tālāk, savukārt lielāki mērījumi liecina, ka tas ir tuvāk.
Šajā piemērā navigācijai tiek izmantots objekta platums. Robots tuvosies objektam, līdz tā platums sasniegs noteiktu izmēru, pirms apstāsies.
while True:
# Iegūt visu zilās krāsas parakstu momentuzņēmumu un saglabāt to vision_objects failā.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Pirms datu izvilkšanas pārbaudiet, vai momentuzņēmumā ir atrasts objekts.
if vision_objects[0].exists == True
# Pārbauda, vai lielākais objekts atrodas tuvu AI redzes sensoram, izmērot tā platumu.
if vision_objects[0].width < 250:
# Piebrauc tuvāk objektam, līdz tas ir platāks par 250 pikseļiem.
drivetrain.drive(FORWARD)
citādi:
drivetrain.stop()
gaidīt(5, MSEC)
leņķis
Īpašība leņķis ir pieejama tikaikrāsu kodiem unAprilTags,
Tas norāda, vai noteiktais Krāsu kodsvai AprilTag ir orientēts atšķirīgi.
Varat redzēt, vai robots ir orientēts atšķirīgi attiecībā pretkrāsu kodu vaiAprilTag , un pieņemt navigācijas lēmumus atbilstoši tam.
Piemēram, jakrāsu kods netiek noteikts pareizā leņķī, tad robots, iespējams, nevarēs pareizi uztvert objektu, ko tas attēlo.
rezultāts
Īpašība punktu skaits tiek izmantota, nosakotAI klasifikācijas ar AI redzes sensoru.
Uzticamības rādītājs norāda, cik pārliecināts AI redzes sensors ir par tā noteikšanu. Šajā attēlā ir 99% pārliecība par šo četru objektu AI klasifikāciju identificēšanu. Šo vērtējumu var izmantot, lai nodrošinātu, ka robots koncentrējas tikai uz ļoti pārliecinātiem noteikumiem.
pastāv
Īpašums existes tiek izmantots, lai noteiktu, vai pēdējā uzņemtajā momentuzņēmumā ir konstatēts norādītais vizuālais paraksts.
Tas ļauj pārbaudīt, vai iepriekšējā momentuzņēmumā tika atklāti kādi objekti. Šī īpašība atgriezīs vērtību “True”, ja objekts pastāv, un “False”, ja objekts nepastāv.