Győződjön meg róla, hogy színaláírások és , valamint a 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 AIVisionlesz.

Pillanatkép készítése

A takeSnapshot 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álhatunk. 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: AIVision1__Blue.
  • MI-besorolások - aivision::ALL_AIOBJS
  • ÁprilisCímkék- aivision::ALL_TAGS

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

Ebben a példában egy pillanatkép készül a AIVision1nevű AI Vision érzékelő „Kék” Színaláírásáról. Megjeleníti a tömbben é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 kék színű objektumról.
AIVision.takeSnapshot(AIVision1__Blue);

// Ellenőrzi, hogy észlelt-e objektumot a pillanatképben az adatok lekérése előtt.
ha (AIVision.objectCount > 0) {

Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print(AIVision1.objectCount);
}
vár(5, ms);
} }

tárgyak

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 objects metódus lehetővé teszi ezeknek a tulajdonságoknak a elérését.

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
  • létezik
  • pontszám

Egy objektum tulajdonságának eléréséhez használd az AI Vision Sensor nevét, majd az objects metódust, végül pedig az objektum indexét.

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 legnagyobb objektum szélességének meghívása a következő lenne AIVision1.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ű objektumról.
  AIVision.takeSnapshot(AIVision__Blue);

  // Adatok kinyerése előtt ellenőrzi, hogy a pillanatképben észlelhető-e objektum.
  ha (AIVision.objectCount > 0) {

    ha (AIVision.objects[0].centerX > 150.0 && 170.0 > AIVision.objects[0].centerX) {
      Hajtás.fordulás(jobbra);
    } else {
      Hajtás.megállás();
    }
  }
  vár(5, ms);
}

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 kombinálva meghatározható az objektum határolókeretének mérete. 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érések általában azt jelentik, hogy a tárgy távolabb van, míg a nagyobb mérések 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 objektumról.
  AIVision.takeSnapshot(AIVision1__Blue);

  // Adatok kinyerése előtt ellenőrzi, hogy a pillanatképben észlelhető-e objektum.
  if (AIVision.objectCount > 0) {

    if (AIVision.objects[0].width < 250.0) {
      Hajtás.drive(előre);
    } else {
      Hajtás.stop();
    }
  }
  vár(5, ms);
} }

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.


objektumszámlálás

Az objectCount metódus visszaadja az utolsó pillanatképben észlelt objektumok számát.

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.

Ebben a példában két objektumot észleltünkszínaláírással, "Kék"-kel. Mindkettő bekerül a tömbbe, amikor a takeSnapshot metódust használjuk.

Ez a kódrészlet folyamatosan frissíti az EXP Brain-t az észlelt objektumok számával. A megadott példa alapján ismételten a 2-es értéket fogja küldeni, jelezve, hogy két objektumot észlelt.

while (true) {
// Pillanatkép készítése az összes kék objektumról.
AIVision.takeSnapshot(AIVision__Blue);

Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);

// Ellenőrzi, hogy a pillanatképben észlelhető-e objektum az adatok kinyerése előtt.
ha (AIVision.objectCount > 0) {
Brain.Screen.print(AIVision1.objectCount);
}
vár(5, ms);
}

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

Last Updated: