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:
- Színaláírások konfigurálása az AI Vision aláírással a VEXcode EXP-ben
- Színkódok konfigurálása az AI Vision Signature segítségével a VEXcode EXP-ben
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:
- AI osztályozások az AI Vision Sensorral a VEXcode EXP-ben
- AprilTags a VEXcode EXP mesterséges intelligenciájú vizuális érzékelőjével
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.
- 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:
-
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.