Kódolás a VEXcode EXP blokkokban található AI Vision Sensorral

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 blokkokról és a VEXcode-ban való használatukról, látogasson el az API webhelyére.


Pillanatkép készítése

VEXcode EXP Pillanatkép készítése blokk, amely a következőt írja: Készítsen AIVision1 pillanatképet az COL1-ről. Két legördülő menü közül választhatja ki az AI Vision Sensort, a másodikból pedig a Color Code-ot.

APillanatkép készítése blokk egy képet készít arról, amit az AI Vision Sensor jelenleg lát, és adatokat nyer ki ebből a pillanatképből, amelyek aztán felhasználhatók egy projektben. 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ő:

  • Színaláírás
  • Színkód
  • MI-besorolások
  • ÁprilisCímkék

Egy pillanatkép készítése létrehozza az összes megadott észlelt objektum tömbjét. Például, ha egy „piros”színjelzésűobjektumot szeretne érzékelni, és az AI Vision Sensor 3 különböző piros objektumot érzékelt, akkor mindhárom objektum adatai a tömbbe kerülnek.

A különböző objektumok közötti megadással kapcsolatos további információkért tekintse meg a cikk „Objektumelem beállítása” című részét.

VEXcode EXP Pillanatkép készítése blokk, amely így szól: Készítsen AIVision2 pillanatképet Kékről.

Ebben a példában csak azokat az objektumokat fogja észlelni, amelyek megfelelnek a konfigurált „Kék” színaláírásnak , és semmi mást.

Pillanatképből kinyert adatok

Ne feledd, hogy a mesterséges intelligencia által létrehozott látásérzékelő a legutóbb készített pillanatképet fogja használni az azt követő blokkokhoz. Annak érdekében, hogy mindig a legfrissebb információkat kapd a mesterséges intelligenciával működő látásérzékelődtől, minden alkalommal készíts újra pillanatképet, amikor adatokat szeretnél kinyerni belőle. 

Felbontás

Az AI Vision Sensor felbontásának diagramja. A bal felső sarok 0, 0, a jobb felső sarok 320, 0, a bal alsó sarok pedig 0, 240 számokkal van jelölve. A képernyő közepét 160, 120 jelöli.

A mesterséges intelligencia által fejlesztett vizuális érzékelő felbontásának megértése kulcsfontosságú a pontos adatértelmezéshez. A szenzor felbontása 320x240 pixel, a pontos középpont koordinátái (160, 120).

A 160-nál kisebb X-koordináták a szenzor látómezejének bal felét, míg a 160-nál nagyobbak a jobb felét jelentik. Hasonlóképpen, a 120-nál kisebb Y-koordináták a nézet felső felét, a 120-nál nagyobbak pedig az alsó felét jelölik.

További információkért arról, hogyan méri a tárgyat az AI Vision Sensor, ugorjon az részre a VEXcode EXP AI Vision Utility programban található adatok megértése című részben.

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.

VEXcode Blocks projekt, amelyben a robot addig közelíti meg a tárgyat, amíg a szélesség el nem éri az adott méretet, mielőtt megállna. A projekt egy When started blokkal és egy Forever ciklussal kezdődik. A projekt többi része a Forever cikluson belül található. Először készíts egy AIVision1 pillanatképet Blue-ról, majd a projekt többi része egy If blokkban van, amely azt olvassa be, hogy létezik-e AIVision1 objektum? Ezen az If blokkon belül van egy If Else blokk, amely azt olvassa be, hogy ha az AIVision1 objektum szélessége kisebb, mint 250, akkor haladjon előre, egyébként pedig álljon meg.

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.

Közép X és Közép Y

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.

A VEXcode Blocks projektben a robot egy érzékelt tárgy felé fordul, amíg az a mesterséges intelligencia által vezérelt látószög közepébe nem kerül. A projekt egy When started blokkal és egy Forever ciklussal kezdődik. A projekt többi része a Forever cikluson belül található. Először készíts egy AIVision1 pillanatképet Blue-ról, majd a projekt többi része egy If blokkban van, amely azt olvassa be, hogy létezik-e AIVision1 objektum? Ezen az If blokkon belül van egy If Else blokk, amely azt olvassa be, hogy ha az AIVision1 objektum centerX értéke nagyobb, mint 150 és az AIVision1 objektum centerX értéke kisebb, mint 170, akkor fordulj jobbra, egyébként állj meg.

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.

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.

Az Angle tulajdonság csakszínkódok, ésAprilTagsesetében érhető el. Ez azt jelzi, hogy az észleltColor 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.

OriginX és OriginY

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.

A VEXcode Blocks projektben a robot egy érzékelt objektumot téglalapként rajzol a képernyőjére. A projekt egy When started blokkal és egy Forever ciklussal kezdődik. A projekt többi része a Forever cikluson belül található. Először készíts egy AIVision1 pillanatképet Blue-ról, majd a projekt többi része egy If blokkban van, amely azt olvassa be, hogy létezik-e AIVision1 objektum? Ezen az If blokkon belül található egy Draw rectangle blokk, amely a következőt olvassa be: draw rectangle AIVision1 object originX, AIVision1 object originY, AIVision1 object width, AIVision1 object height a Brain-en.

Ebben a példában egy téglalapot rajzolunk az Agyra az origó, szélesség és magasság pontos koordinátáinak felhasználásával.

címkeazonosító

A tagID csakAprilTagscímkéhez érhető el. Ez a megadottAprilTagazonosítószáma.

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.

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.

Pontszám

A score tulajdonságot akkor használja a rendszer, ha az AI Vision SensorAI besorolást észlel.

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.


Objektumelem beállítása

Amikor a mesterséges intelligencia által vezérelt vizuális érzékelő érzékel egy tárgyat, azt egy tömbbe helyezi. Alapértelmezés szerint az AI Vision Sensor a tömb első objektumából, vagy az 1-es indexű objektumból olvassa be az adatokat. Ha a mesterséges intelligenciával működő látásérzékelő csak egy objektumot érzékelt, akkor az az objektum lesz alapértelmezés szerint kiválasztva.

Amikor azonban a mesterséges intelligencia által vezérelt vizuális érzékelő egyszerre több objektumot észlelt, azObjektumelem beállítása blokkot kell használnia annak megadásához, hogy melyik objektumról szeretné kinyerni az adatokat.

VEXcode EXP Beállítja az objektumelem blokkot, amely a következőt írja: Állítsa az AIVision1 objektumelemet 1-re. Van egy legördülő menü az AI Vision Sensor kiválasztásához, és egy szövegmező az objektumindex megadásához.

Amikor a mesterséges intelligencia által vezérelt vizuális érzékelő több objektumot érzékel, azokat a tömbben a legnagyobbtól a legkisebbig rendezi el. Ez azt jelenti, hogy a legnagyobb észlelt objektum mindig az 1-es objektumindexű lesz, a legkisebb objektum pedig mindig a legmagasabb számmal.

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 136, a távolabbié pedig 78.

Ebben a példában két objektumot észleltünkszínaláírással, gyel ("Kék"). Mindkettő bekerül a tömbbe, amikor aTake Snapshot blokkot használjuk.

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 kockát 1-essel, a távolabbiat 2-essel jelöltük.

Itt az elöl lévő objektum az 1-es objektumindexű lesz, mivel ez a legnagyobb objektum, a legkisebb objektum pedig a 2-es objektumindexű.


Objektum létezik

Mielőtt bármilyen adatot kinyernénk egy pillanatképből, fontos, ellenőrizzük, hogy az AI Vision Sensor észlelt-e objektumokat a pillanatképből. Itt jön képbe aObject Exists blokk.

VEXcode EXP Létezik az objektum, ami beolvassa az AIVision1 objektumot? Van egy legördülő menü, ahol kiválaszthatja az AI Vision Sensort.

Ez a blokkTrue vagyFalse értéket ad vissza attól függően, hogy a legutóbb készített pillanatképben észleltek
e objektumokat.
Ennek a blokknak mindig kell lennie használva, hogy biztosan ne egy potenciálisan üres pillanatképből próbálj adatokat kinyerni.

VEXcode Blocks projekt, amelyben a robot egy érzékelt kék tárgy felé halad. A projekt egy When started blokkal és egy Forever ciklussal kezdődik. A projekt többi része a Forever cikluson belül található. Először készíts egy AIVision2 pillanatképet a Blue-ról, majd egy If Else blokkot, amely kiolvassa, hogy létezik-e AIVision2 objektum, akkor haladj előre, egyébként pedig állj meg.

Például itt a robot folyamatosan pillanatfelvételeket készít a mesterséges intelligencia által vezérelt látószenzorral. Ha azonosít bármely objektumot a „Kék” színjelzéssel, akkor előre fog haladni.


Ha bármelyik pillanatkép nem tartalmazza a „Kék” színjelzést, a robot leáll.


Objektumok száma

VEXcode EXP Objektumszámláló blokk, amely az AIVision1 objektumszámát olvassa be. Van egy legördülő menü, ahol kiválaszthatja az AI Vision Sensort.

A Object count blokk használatával megtekintheti, hogy egy adott Color Signature objektumok közül hányat lát az AI Vision Sensor az utolsó pillanatfelvételen. 

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.

Itt láthatjuk, hogy az AI Vision Sensor konfigurált színaláírása „Kék”, és két tárgyat érzékel.

VEXcode Blocks projekt, amelyben a robot kinyomtatja az észlelt kék objektumok számát a Print Console-ra. A projekt egy When started blokkal és egy Forever ciklussal kezdődik. A projekt többi része a Forever cikluson belül található. Először készíts egy AIVision2 pillanatképet a Blue-ról, töröld az összes sort a konzolon, majd helyezd a kurzort a következő sorra a konzolon. A következő egy If blokk, amely beolvassa, hogy létezik-e AIVision2 objektum, majd kiírja az AIVision2 objektumok számát a konzolra, és a kurzort a következő sorra helyezi. Az If blokkon kívül van egy Wait blokk, amely 2 másodperces várakozásra van beállítva.Az előző VEXcode Blocks projekt Print Console kimenete a 2-es kinyomtatott üzenettel.

Ebben a kódban az AI Vision Sensor pillanatképet készítene és „2”-es értéket nyomtatna ki a VEXcode konzolra, mivel csak két „kék” színű aláírást érzékel.


Objektum

VEXcode EXP AI Vision objektumblokk, amely beolvassa az AIVision1 objektum szélességét. Van egy legördülő menü az AI Vision Sensor kiválasztásához, és egy megnyitott legördülő menü az objektum érzékelési attribútumának kiválasztásához. A lehetőségek listája a szélességet, magasságot, középpontot (X), középpontot (Y), szöget (angle), eredetet (originX), eredetet (originY), címkeazonosítót (tagID) és pontszámot tartalmazza.

AObject blokk lehetővé teszi a megadott objektum tulajdonságának jelentését. Ez lehetővé teszi a legutóbb készített pillanatképből kinyert elérhető adatok felhasználását.

A pillanatképekből kinyerhető objektumtulajdonságok a következők:

  • szélesség
  • magasság
  • középX
  • közép Y
  • szög
  • eredetX
  • származásY
  • címkeazonosító
  • pontszám

További információért ezekről a tulajdonságokról olvassa el a cikk „Pillanatképből gyűjtött adatok” című szakaszát.


Az észlelt AprilTag a következő:

VEXcode EXP Detected AprilTag egy olyan blokk, amely azt olvassa, hogy az AIVision1 detected AprilTag értéke 1? Van egy legördülő menü, ahol kiválaszthatja az AI Vision Sensort.

ADetected AprilTag is blokk csak akkor érhető el, ha aAprilTag Detection Mode be van kapcsolva.

Ez a blokk igaz vagy hamis értéket fog jelenteni attól függően, hogy a megadott objektum egy bizonyos AprilTag-e.

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.

Amikor több AprilTag elemet észlel a rendszer egyetlen pillanatképben, azok az azonosított azonosítójuk alapján kerülnek elrendezésre a tömbben, nem pedig méretük szerint.

Ezen a képen három AprilTag elemet észlel a rendszer, amelyek azonosítói 0, 3 és 9. Azonosítójuk szerint növekvő sorrendben lesznek rendezve a tömbben. Az 1-es indexű objektum a 0 azonosítójú AprilTag-nek, a 2-es indexű a 3-as azonosítójú AprilTag-nek, a 3-as indexű pedig a 9-es azonosítójú AprilTag-nek felelne meg.

Ha többet szeretne megtudni arról, hogy mik azok az AprilTag-ek, és hogyan engedélyezheti az észlelésüket a mesterséges intelligencia által vezérelt vizuális érzékelővel, olvassa el ezt a cikket.


AI besorolás

A VEXcode EXP AI besorolás egy olyan blokk, amely az AIVision1-et olvassa. Az AI besorolás a BlueBall? Van egy legördülő menü az AI Vision Sensor kiválasztásához, és egy másik legördülő menü a cél AI Classification objektum kiválasztásához.

AAI besorolás blokk csak akkor érhető el, ha aAI besorolás észlelési módja be van kapcsolva.

 

Ez a blokk Igaz vagy Hamis értéket fog jelenteni attól függően, hogy a megadott objektum egy adott AI osztályozás-e.

Az AI Vision Sensor által érzékelhető AI-besorolások a használt modelltől függően változnak. Ha többet szeretne megtudni arról, hogy milyen AI-besorolások érhetők el, és hogyan engedélyezheti azok észlelését az AI Vision Sensorral, olvassa el ezt a cikket.

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

Last Updated: