Győződjön meg róla, hogy színaláírások és színkódok konfigurálva vannak az AI látásérzékelőjével, hogy azok használhatók legyenek a blokkokkal. Ha többet szeretne megtudni a konfigurálásukról, olvassa el az alábbi cikkeket:

Az AI Vision Sensor képes AI osztályozásokat és AprilTags címkéket is érzékelni. Az észlelési módok engedélyezésének megtudásához látogasson el ide:

Ha többet szeretne megtudni ezekről az egyes parancsokról és a VEXcode-ban való használatukról, látogasson el az API webhelyére.


Vizuális adatok kinyerése mesterséges intelligencia által vezérelt látásérzékelővel

Minden AI Vision Sensor parancs a konfigurált AI Vision Sensor nevével kezdődik. A cikkben szereplő összes példában a használt AI Vision Sensor neve ai_vision_1lesz.

pillanatkép készítése

A take_snapshot metódus egy képet készít arról, amit az AI Vision Sensor éppen lát, és ebből a pillanatképből adatokat nyer ki, amelyeket aztán egy projektben felhasználhat. Pillanatkép készítésekor meg kell adnia, hogy milyen típusú objektumról gyűjtsön adatokat a mesterséges intelligencia által biztosított vizuális érzékelő:

  • ASzínaláírás vagySzínkód
    • Ezek a vizuális aláírások az AI Vision Sensor nevével, dupla aláhúzásjellel, majd a vizuális aláírás nevével kezdődnek, például: ai_vision_1__Blue.
  • MI-besorolások - AiVision.ALL_AIOBJS
  • ÁprilisCímkék- AiVision.ALL_TAGS

Egy pillanatkép készítése létrehoz egy rekordot az összes megadott észlelt objektumról. Például, ha egy „Kék” Színaláírástszeretne érzékelni, és az AI Vision Sensor 3 különböző kék objektumot érzékelt, akkor mindhárom adata a tuple-be kerülne.

Ebben a példában a vision_objects változó egy olyan tuple-t tárol, amely az ai_vision_1nevű AI látásérzékelőből származó észlelt "lila"színsignatúrákat tartalmazza. Megjeleníti az észlelt objektumok számát, és 0,5 másodpercenként új pillanatképet készít.

while True: 
# Pillanatképet készít az összes lila színű aláírásról, és eltárolja a vision_objects fájlban.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Purple)

# Adatok lekérése előtt ellenőrizze, hogy a pillanatképben észlelhető-e objektum.
if vision_objects[0].exists == True

brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)

brain.screen.print("Objektumszám:", len(vision_objects))
wait(0.5, MÁSODPERC)

Objektumtulajdonságok

Egy pillanatkép minden objektumának különböző tulajdonságai vannak, amelyek felhasználhatók az adott objektumról szóló információk jelentésére. Az elérhető ingatlanok a következők:

  • azonosító
  • középpont X és középpont Y
  • eredetX és eredetY
  • szélesség
  • magasság
  • szög
  • pontszám
  • létezik

Egy objektum tulajdonságának eléréséhez használd a tuple-t tároló változó nevét, majd az objektumindexet.

Az objektumindex jelzi, hogy melyik konkrét objektum tulajdonságát szeretnéd lekérni. Pillanatkép készítése után az AI Vision Sensor automatikusan méret szerint rendezi a tárgyakat. A legnagyobb objektumhoz 0 indexet rendelünk, a kisebb objektumok pedig magasabb indexszámot.

Például a vision_objects változón belüli legnagyobb objektum szélességének meghívása a következő lenne: vision_objects[0].width.

azonosító

A id tulajdonság csak AprilTags és AI osztályozásokhoz érhető el.

Három AprilTag-et követ nyomon az AI Vision Utility. Minden egyes címkét azonosítanak, megtalálnak és körvonalaznak, jelezve a rendszer általi nyomon követést. Az AprilTag azonosítók ebben a példában 0, 3 és 9.

EgyAprilTagesetén a id tulajdonság az észleltAprilTag(s) azonosítószámot jelöli.

A konkrét AprilTags azonosítása lehetővé teszi a szelektív navigációt. Beprogramozhatod a robotodat úgy, hogy bizonyos címkék felé haladjon, miközben másokat figyelmen kívül hagy, így hatékonyan használhatod őket jelzőtáblákként az automatikus navigációhoz.

Négy objektumot követ az AI Vision segédprogram, két BuckyBallt és két Ringet. Minden objektumot azonosít, megtalál és körvonalaz, jelezve a rendszer általi követést. A segédprogram megjegyzi az objektum azonosítóját, ebben a példában van egy piros golyó, egy kék golyó, egy zöld gyűrű és egy piros gyűrű.

AI osztályozásesetén a id tulajdonság az észlelt AI osztályozás konkrét típusát jelöli.

Specifikus objektumok azonosítása A mesterséges intelligencia besorolásalehetővé teszi a robot számára, hogy csak meghatározott objektumokra összpontosítson, például csak egy piros Buckyball felé akarjon navigálni, egy kék felé ne.

További információért áprilisi címkékről, és mesterséges intelligencia osztályozásokról és az AI Vision Utilityben történő észlelésük engedélyezéséről tekintse meg ezeket a cikkeket.

középpontX és középpontY

Ez a detektált objektum középpontjának koordinátái pixelben.

Egy mesterséges intelligenciával működő vizuális érzékelő egy kék baglyot követ. A Buckyball körül egy követő téglalap található, és a fenti címke azt mutatja, hogy X pozíciója 176, Y pozíciója pedig 117. A követőtéglalap középpontja kiemelve van, jelezve, hogy a pozíciót a középponttól mérik.

A CenterX és CenterY koordináták segítenek a navigációban és a pozicionálásban. A mesterséges intelligenciával ellátott látásérzékelő felbontása 320 x 240 pixel.

Egy AI látásérzékelő két kék kockát követ. A kockák körül követő téglalapok vannak, és az egyik sokkal közelebb van a kamerához. A közelebbi Y-pozíciója 184, a távolabbié pedig 70.

Látható, hogy egy, az AI Vision Sensorhoz közelebb lévő objektum alacsonyabb CenterY koordinátával rendelkezik, mint egy távolabb lévő objektum.

Ebben a példában, mivel az AI Vision Sensor nézetének középpontja (160, 120), a robot jobbra fordul, amíg az érzékelt objektum középponti X koordinátája nagyobb, mint 150 pixel, de kisebb, mint 170 pixel.

while True:
# Pillanatképet készít az összes kék színű aláírásról, és eltárolja a vision_objects fájlban.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)

# Adatok lehívása előtt ellenőrizzük, hogy észlelhető-e objektum a pillanatképben.
if vision_objects[0].exists == True

# Ellenőrzi, hogy az objektum nincs-e a mesterséges intelligencia által vezérelt látószög érzékelőjének látóterében.
if vision_objects[0].centerX > 150 és 170 > vision_objects[0].centerX:

# Fordulj jobbra, amíg a tárgy a nézet közepére nem kerül.
drivetrain.turn(JOBBRA)
egyébként:
drivetrain.stop()
wait(5, MSEC)

eredetX és eredetY

Az OriginX és az OriginY a detektált objektum bal felső sarkában található koordináta pixelben.

Egy mesterséges intelligenciával működő vizuális érzékelő egy kék baglyot követ. A Buckyball körül egy követő téglalap található, és a fenti címke azt mutatja, hogy X pozíciója 176, Y pozíciója pedig 117. A követőtéglalap bal felső sarka kiemelve van, jelezve, hogy az eredeti pozíciót a bal felső sarkától mérik.

Az OriginX és OriginY koordináták segítenek a navigációban és a pozicionálásban. Ennek a koordinátának a szélességével és magasságával való kombinálásával meghatározhatja az objektum határolókeretének méretét. Ez segíthet a mozgó objektumok követésében vagy az objektumok közötti navigálásban.

szélesség és magasság

Ez a detektált objektum szélessége vagy magassága pixelben.

Egy mesterséges intelligenciával működő vizuális érzékelő egy kék baglyot követ. A Buckyball körül egy követő téglalap található, a fenti címke pedig azt mutatja, hogy a szélessége 80 pixel, a magassága pedig 78 pixel. Piros nyilak jelölik ki a követő téglalapot, hogy bemutassák annak szélességét és magasságát.

A szélesség és magasság mérése segít a különböző tárgyak azonosításában. Például egy Buckyball nagyobb magasságú lesz, mint egy Ring.

Egy AI látásérzékelő két kék kockát követ. A kockák körül követő téglalapok vannak, és az egyik sokkal közelebb van a kamerához. A közelebbi szélessége 144 és magassága 113, a távolabbi pedig 73 és 84 magasságú.

A szélesség és a magasság a tárgy és a mesterséges intelligencia által vezérelt látószenzor közötti távolságot is jelzi. A kisebb méretek általában azt jelentik, hogy a tárgy távolabb van, míg a nagyobb méretek azt sugallják, hogy közelebb van.

Ebben a példában az objektum szélességét használjuk a navigációhoz. A robot addig közeledik a tárgyhoz, amíg annak szélessége el nem éri az adott méretet, mielőtt megáll.

while True:
# Pillanatképet készít az összes kék színű aláírásról, és eltárolja a vision_objects fájlban.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)

# Adatok lehívása előtt ellenőrizzük, hogy észlelhető-e objektum a pillanatképben.
if vision_objects[0].exists == True

# Ellenőrzi, hogy a legnagyobb objektum közel van-e az AI Vision Sensorhoz a szélességének mérésével.
if vision_objects[0].width < 250:

# Közelebb hajolunk az objektumhoz, amíg az szélesebb nem lesz, mint 250 pixel.
drivetrain.drive(ELŐRE)
else:
drivetrain.stop()

wait(5, MSEC)

szög

Egy piros és egy zöld négyzet együttes forgatásának animációja, amely egy szögérték 360 fokát szemlélteti.

A angle tulajdonság csakColor Codes ésAprilTags,
esetében érhető el.
Ez azt jelzi, hogy az észlelt Color Codevagy AprilTag eltérő orientációjú-e.

A mesterséges intelligenciával működő vizuális érzékelő egy zöld, majd kék színkódot követ. A videó egy kék kockára helyezett zöld kockát mutat. A színkód szögértéke kiemelve jelenik meg, és 87 fokot mutat, ami azt jelzi, hogy a színkód függőlegesen van elhelyezve.

Láthatja, hogy a robot aColor Code vagyAprilTag hoz képest másképp orientálódik-e, és ennek megfelelően hozhat navigációs döntéseket.

A mesterséges intelligenciával működő vizuális érzékelő egy zöld, majd kék színkódot követ. A videófelvételen egy Zöld Kocka látható egy Kék Kocka mellett, de ezek furcsa szögben vannak az érzékelőhöz képest. A színkód szögértéke kiemelve jelenik meg, és 0 fokot mutat, ami azt jelzi, hogy a színkód szöge nem olvasható.

Például, ha egyszínkódú nem megfelelő szögben érzékel a robot, akkor előfordulhat, hogy az általa jelképezett objektumot a robot nem tudja megfelelően felvenni.

pontszám

A pontszám tulajdonságot akkor használja a rendszer, haAI osztályozást észlel az AI Vision Sensor.

Négy objektumot követ az AI Vision segédprogram, két BuckyBallt és két Ringet. Minden objektumot azonosít, megtalál és körvonalaz, jelezve a rendszer általi követést. A segédprogram minden objektum AI besorolási pontszámát is listázza, ebben a példában minden pontszám 99%.

A megbízhatósági pontszám azt jelzi, hogy az AI Vision Sensor mennyire biztos az érzékelésében. Ezen a képen 99%-os valószínűséggel azonosítja a négy objektum mesterséges intelligencia alapú osztályozását. Ezzel a pontszámmal biztosíthatja, hogy a robot csak a nagyon megbízható észlelésekre összpontosítson.

létezik

A létezik tulajdonság annak észlelésére szolgál, hogy a megadott vizuális aláírás észlelésre került-e a legutóbb készített pillanatképben.

Ez lehetővé teszi annak ellenőrzését, hogy az előző pillanatképben észleltek-e objektumokat. Ez a tulajdonság Igaz értéket ad vissza, ha az objektum létezik, és Hamis értéket, ha az objektum nem létezik.

 

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: