Kódolás az AI Vision Sensorral a VEXcode V5 blokkban

Győződjön meg arról, hogy színaláírás és színkód van konfigurálva az AI Vision Sensorral, hogy azokat a blokkjaival együtt tudja használni. Ha többet szeretne megtudni ezek konfigurálásáról, olvassa el az alábbi cikkeket:

Az AI Vision Sensor az AI osztályozásokat és az AprilTag-eket is képes észlelni. Ha meg szeretné tudni, hogyan engedélyezheti ezeket az észlelési módokat, 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.


Pillanatfelvételt csinál

A parancsot tartalmazó blokk pillanatképet készít két legördülő menüből: az egyik AIVision1, a másik pedig COL1. Ez a blokk úgy készült, hogy pillanatfelvételt készítsen egy AI Vision érzékelőről, és egy adott objektumra vagy színre hivatkozzon a kijelölt változókból vizuális kódolási környezetben. A blokk alakja a blokk alapú kódoló interfészekre jellemzően enyhe íveket tartalmaz a végein.

APillanatfelvétel készítése blokk képet készít arról, amit az AI Vision Sensor jelenleg lát, és adatokat gyűjt a pillanatfelvételből, amelyeket aztán felhasználhat egy projektben. Pillanatfelvétel készítésekor meg kell adnia, hogy az AI Vision Sensor milyen típusú objektumról gyűjtsön adatokat:

  • Színes aláírás
  • Színkód
  • AI osztályozások
  • AprilTags

A pillanatfelvétel készítése létrehoz egy tömböt az összes megadott észlelt objektumból. Például, ha egy "Piros"színaláírástakart észlelni, és az AI Vision Sensor 3 különböző vörös objektumot észlelt, akkor mindhárom 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.

Világoskék kódoló blokk egy objektumról vagy színről pillanatfelvétel készítésére szolgáló paranccsal. Két legördülő lehetőség közül választhat: az egyik AIVision2, a másik pedig Kék. A blokkot blokkalapú kódolási környezetben való használatra tervezték, ahol pillanatfelvételt készít egy AI Vision érzékelőről, és követi a kékként meghatározott objektumot vagy színt. A blokk enyhe görbületekkel rendelkezik, jellemző a moduláris blokkokat használó kódoló interfészek.

Ebben a példában csak azokat az objektumokat észleli, amelyek megfelelnek a konfigurált „Blue” Color Signature -nek, semmi mást nem.

Pillanatfelvételből vett adatok

Ne feledje, hogy az AI Vision Sensor az utoljára készített pillanatfelvételt fogja használni az utána következő blokkokhoz. Annak érdekében, hogy mindig a legfrissebb információkat kapja meg az AI Vision Sensortól, készítse újra a pillanatfelvételt minden alkalommal, amikor adatokat szeretne lekérni belőle. 

Felbontás

Az AI Vision Sensor felbontásának megértése elengedhetetlen az adatok pontos értelmezéséhez. Az érzékelő felbontása 320x240 pixel, a pontos középpont koordinátákon (160, 120).

A 160-nál kisebb X-koordináták az érzékelő látómezőjé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 jelzik.

A VEXcode V5 3 AI Vision Utility adatainak értelmezése a VEXcode V5 ban található szakaszban talál további információt arról, hogyan történik az objektumok mérése az AI Vision Sensorral.

Szélesség és Magasság

Ez az észlelt objektum szélessége vagy magassága pixelben.

A képen egy kék Buckyball látható, amelyet fehér négyzet körvonal követ. A bal felső sarokban egy kék objektumról van szó, X:176, Y:117 koordinátákkal és W:80, H:78 méretekkel. A piros nyilak kiemelik az objektum szélességét és magasságát.

A szélesség- és magasságmérés segít a különböző tárgyak azonosításában. Például egy Buckyball magasabb lesz, mint egy gyűrű.

Két kék köbös tárgyat egy vizuális felismerő rendszer követ. A felső kocka fehér körvonalú, címkével, amely a helyzetét X:215, Y:70 és méretei W:73, H:84 jelzi. Az alsó kocka hasonló fehér körvonalú, a címkén X:188, Y:184 és méretei: W:144, H:113. Minden kockán van egy középen fehér kereszt, amely valószínűleg a nyomkövetés fókuszpontját jelzi. A címkék kiemelik az egyes objektumok mérési és nyomkövetési adatait.

A szélesség és a magasság az objektum távolságát is jelzi az AI Vision Sensortól. A kisebb méretek általában azt jelentik, hogy az objektum távolabb van, míg a nagyobb méretek azt jelzik, hogy közelebb van.

A program indításakor a mondattal kezdődik, amit egy örök ciklus követ. A hurkon belül a program pillanatfelvételt készít az AI Vision érzékelővel (AIVision1) a kék objektum észleléséhez. Ha az objektum létezik, a program ellenőrzi, hogy az objektum szélessége kisebb-e 250 pixelnél. Ha igaz, a robot előre halad; ellenkező esetben leállítja a vezetést. A blokkok egymásra vannak rakva, jelezve a program menetét egy moduláris kódolási környezetben.

Ebben a példában az objektum szélességét használjuk a navigációhoz. A robot addig közelíti az objektumot, amíg a szélessége el nem ér egy meghatározott méretet, mielőtt megállna.

CenterX és Center Y

Ez az észlelt objektum középponti koordinátái pixelben.

Egy kék Buckyballt egy számítógépes látórendszer követ. Az objektumot egy fehér négyzet körvonalazza, a körvonalon belül pedig egy kisebb piros négyzet, amely egy középen fehér keresztet vesz körül. A kép bal felső sarkában egy címke jelzi, hogy az objektum kék színű, X:176, Y:117 koordinátákkal és W:80, H:78 méretekkel.

A CenterX és CenterY koordináták segítik a navigációt és a helymeghatározást. Az AI Vision Sensor felbontása 320 x 240 pixel.

Két kék köbös tárgy, amelyeket egy látórendszer követ. A felső objektum X:215, Y:70 koordinátákkal és W:73, H:84 méretekkel van ellátva, fehér körvonallal és középen fehér kereszttel. Az alsó objektum X:188, Y:184 koordinátákkal és W:144, H:113 méretekkel van megjelölve, szintén fehéren körvonalazva, középen fehér kereszttel.

Láthatja, hogy az AI Vision Sensorhoz közelebb eső objektum középponti Y koordinátája alacsonyabb, mint egy távolabbi objektum.

Egy blokk alapú kódolási szekvencia, amely az induláskor kezdődik, majd egy örök ciklus következik. A cikluson belül a program pillanatképet készít az AIVision1 segítségével egy kék objektum észleléséhez. Ha létezik objektum, a program addig forog, amíg az objektum középre nem kerül az AI Vision érzékelő nézetében. Az objektumot akkor tekintjük középre állítottnak, ha centerX értéke 150 és 170 között van. Ha az objektum nincs középre állítva, a robot jobbra fordul; ellenkező esetben leállítja a vezetést. A blokkok jelzik a vizuális program folyamatát és logikáját.

Ebben a példában, mivel az AI Vision Sensor nézetének közepe (160, 120), a robot jobbra fordul mindaddig, amíg az észlelt objektum centerX koordinátája nem haladja meg a 150 képpontot, de nem éri el a 170 képpontot.

Szög

Az Angle egy tulajdonság csak aszínkódhoz ésAprilTags. Ez azt jelzi, hogy az észleltszínkódvagy AprilTag tájolása eltérő.

Két kockából álló halom, egy zöld a tetején és egy kék az alján, amelyet egy látórendszer követ. Mindkét kockát fehér körvonal veszi körül, a zöld kockán egy fehér kereszt található. A kép alján található címkén Green_Blue A:87° látható, jelezve az észlelt színeket és a szög mérését. Alatta a koordináták X:117, Y:186, W:137, H:172 méretekkel, a keretben lévő halmozott kockák helyzetét és méretét jelölik.

Megnézheti, hogy a robot aColor Code vagyAprilTag hoz képest eltérően áll-e, és ennek megfelelően hozhatja meg a navigációs döntéseket.

Két kocka, egy zöld és egy kék, egymás mellé helyezve, és egy látórendszer követi. Mindkét kockát fehér körvonal veszi körül, középen fehér kereszttel. A bal felső címke a Green_Blue A:0°-ot jelzi, ami az észlelt színekre és egy szögmérésre utal. Alatta a koordináták X:150, Y:102, W:179, H:109 méretekkel, a kockák helyzetét és méretét jelzik a kereten belül.

Például, ha a színkódot nem érzékeli megfelelő szögben, akkor előfordulhat, hogy az általa képviselt tárgyat a robot nem tudja megfelelően felvenni.

OriginX és OriginY

Az OriginX és az OriginY az észlelt objektum bal felső sarkában lévő koordináta pixelben.

Egy kék Buckyballt egy látórendszer követ. Az objektumot fehér körvonal veszi körül, a körvonalon belül pedig egy középen fehér kereszt található. A bal felső címke az objektum színét kékként jelzi, X:176, Y:117 koordinátákkal és W:80, H:78 méretekkel. Egy kis piros négyzet kiemeli az objektum bal felső sarkát.

Az OriginX és OriginY koordináták segítik a navigációt és a helymeghatározást. Ha ezt a koordinátát kombinálja az objektum szélességével és magasságával, meghatározhatja az objektum határolókeretének méretét. Ez segíthet a mozgó objektumok nyomon követésében vagy az objektumok közötti navigálásban.

Egy blokk alapú kódolási szekvencia, amely az induláskor kezdődik, majd egy örök ciklus következik. A cikluson belül a program pillanatképet készít az AIVision1 segítségével egy kék objektum észleléséhez. Ha az objektum létezik, a program egy téglalapot rajzol az Agy képernyőn az objektum helyzete és mérete alapján. A téglalap megrajzolása az objektum originX, originY, szélessége és magassága értékeivel történik, amelyeket az AIVision1 érzékelő biztosít. Ez a program vizuálisan követi és kiemeli az észlelt objektumot a Brain képernyőn.

Ebben a példában egy téglalapot rajzolunk az Agyra az origójának, szélességének és magasságának pontos koordinátái alapján.

tagID

A címkeazonosító csakAprilTagsesetén érhető el. Ez a megadottAprilTagazonosító száma.

Három négyzet alakú kártya AprilTags-szel, amelyet egy látórendszer követ. Minden kártya azonosító számmal és a kapcsolódó nyomkövetési adatokkal van ellátva. A bal oldali kártya azonosítója: 0, amelyen A:350°, X:110, Y:96, W:41, H:41 koordináták láthatók. Az ID:3 feliratú középső kártya koordinátái A:1°, X:187, Y:180, W:57, H:57. A jobb oldali kártya ID:9 feliratú, A:3°, X:237, Y:89, W:38, H:38 koordinátákkal. Minden kártya fehér körvonallal rendelkezik, és a rendszer nyomon követi a helyzetüket és a tájolásukat.

A konkrét AprilTags azonosítása szelektív navigációt tesz lehetővé. Beprogramozhatja robotját úgy, hogy bizonyos címkék felé haladjon, miközben figyelmen kívül hagyja a többieket, és hatékonyan használja őket útjelző táblákként az automatizált navigációhoz.

Pontszám

A pontszám tulajdonság akkor használatos, ha az AI Vision SensorralAI-besorolást észlel.

A képen négy tárgy látható, amelyeket egy látórendszer követ: két golyó és két gyűrű. A piros golyó X:122, Y:84, W:67, H:66 koordinátákkal és 99%-os pontszámmal van ellátva. A kék golyó X:228, Y:86, W:70, H:68, 99%-os pontszámmal. A zöld gyűrű X:109, Y:186, W:98, H:92 koordinátákkal és 99%-os pontszámmal rendelkezik. A piros gyűrű címkéje X:259, Y:187, W:89, H:91, 99%-os pontszámmal. Minden objektum fehér körvonalú, ami a követési pontosságot jelzi.

A megbízhatósági pontszám azt jelzi, hogy az AI Vision Sensor mennyire biztos az észlelésében. Ezen a képen 99%-ban biztos abban, hogy azonosítja e négy objektum mesterséges intelligencia osztályozását. Ezzel a pontszámmal biztosíthatja, hogy robotja csak a nagyon magabiztos észlelésekre összpontosítson.


Állítsa be az objektumot

Amikor az AI Vision Sensor észlel egy objektumot, az egy tömbbe kerül. Alapértelmezés szerint az AI Vision Sensor a tömb első objektumától vagy az 1-es indexű objektumtól veszi az adatokat. Ha az AI Vision Sensor csak egy objektumot észlelt, akkor alapértelmezés szerint ez az objektum lesz kiválasztva.

Ha azonban az AI Vision Sensor több objektumot észlelt egyszerre, akkor aSet Object Item blokkot kell használnia annak meghatározásához, hogy melyik objektumból kíván adatokat lekérni.

Világoskék kódoló blokk. Tartalmaz egy parancsot, amely az AIVision1 objektumelemét 1-re állítja. Ez a blokk egy blokkalapú kódolási környezet része, amelyet általában annak meghatározására használnak, hogy az AI Vision érzékelőnek melyik objektumra vagy elemre kell fókuszálnia vagy követnie kell. A blokk formája enyhén ívelt, illeszkedve a vizuális kódolási platform moduláris jellegéhez.

Ha az AI Vision Sensor több objektumot észlel, a tömbben a legnagyobbtól a legkisebbig rendeződik. Ez azt jelenti, hogy a legnagyobb észlelt objektum mindig az 1-es objektumindexre lesz beállítva, és a legkisebb objektum mindig a legmagasabb számra lesz beállítva.

Az AI Vision Utility interfész két kék kockával a bal oldalon található, mindegyik X és Y koordinátákkal és méretekkel jelölve. A rendszer csatlakoztatva van, és az AprilTags be van kapcsolva, míg az AI osztályozás ki van kapcsolva. A jobb oldalon a kék színbeállítások állítható árnyalat- és telítettségi tartományokkal jelennek meg, 22-re, illetve 0,34-re. Lehetőség van szín hozzáadására vagy beállítására, valamint a videó lefagyasztására. A firmware naprakész, az 1.0.0.b16-os verziót futtatja, alul pedig egy bezárás gomb található.

Ebben a példában két objektumot észleltünk aColor Signature "Kék" értékkel. Mindkettő a tömbbe kerül, ha aPillanatfelvétel készítése blokkot használjuk.

Az AI Vision Utility interfész, amely két kék kockát követ, amelyek X, Y és méretadatokkal vannak ellátva. A bal oldali kocka koordinátái X:127, Y:179, méretei W:136, H:123, míg a jobb oldali kockáé X:233, Y:74, méretei pedig W:78, H:87. A rendszer csatlakoztatva van, az AprilTags be van kapcsolva, és az AI osztályozás ki van kapcsolva. A kék színbeállítások árnyalattartománya 22, telítettsége 0,34. A videó lefagyasztása gomb és a firmware-információk (1.0.0.b16-os verzió) jelennek meg alul.

Itt az elülső objektum az 1-es objektumindex lesz, mivel ez a legnagyobb objektum, a legkisebb objektum pedig a 2-es objektumindex.


Az objektum létezik

Mielőtt bármilyen adatot lehívna egy pillanatfelvételből, fontos, hogymindig ellenőrizze, hogy az AI Vision Sensor először észlelt-e bármilyen objektumot a pillanatfelvételről. Itt jön képbe aobjektum létezik blokk.

Létezik világoskék hatszögletű kódolóblokk az AIVision1 objektum szövegével? Ez a blokk egy blokk alapú kódolási környezet része, amelyet általában annak ellenőrzésére használnak, hogy az AIVision1 jelzésű AI Vision érzékelő észlel-e egy objektumot. A blokkot úgy tervezték, hogy illeszkedjen egy moduláris kódolási struktúrába, az ilyen környezetekre jellemző enyhe ívekkel és alakkal.

Ez a blokkTrue vagyFalse értéket ad vissza attól függően, hogy az utoljára készített pillanatfelvételen észleltek-e tárgyakat.

Ezt a blokkotmindig kell használni annak biztosítására, hogy ne próbáljon meg adatokat lekérni egy esetlegesen üres pillanatképből.

Egy blokk alapú kódolási szekvencia, amely az indítással kezdődik, amelyet egy örök ciklus követ. A hurkon belül az AI Vision érzékelő (AIVision2) pillanatfelvételt készít a kék szín érzékeléséhez. Ha Kék vizuális aláírással rendelkező objektumot észlel, a robot előrehalad. Ha nem észlel tárgyat, a robot leállítja a vezetést. A blokkok egymásra vannak rakva, hogy a program feltételes logikáját reprezentálják, ahol egy észlelt objektum jelenléte szabályozza a robot mozgását.

Például itt a robot folyamatosan pillanatfelvételeket készít az AI Vision Sensorral. Ha bármely objektumot azonosít a „kék” színű aláírással, akkor előre fog haladni.


Ha valamelyik pillanatfelvételen nem szerepel a „Kék” színjelzés, a robot leáll.


Objektumszám

Világoskék, lekerekített kódolási blokk AIVision1 objektumszámmal. Ezt a blokkot blokkalapú kódolási környezetben használják az AIVision1 címkével ellátott AI Vision érzékelő által észlelt objektumok számának lekérésére. A blokk egy moduláris felépítésbe illeszkedik, amelyet általában a robotika vagy a látásrendszerek vizuális programozási felületeiben használnak.

A Object count blokk segítségével megtekintheti, hogy egy adott Color Signature hány objektumot láthat az AI Vision Sensor az utolsó pillanatfelvételen. 

Az AI Vision Utility felület két kék kockával a bal oldalon. A rendszer csatlakoztatva van, az AprilTags engedélyezve van, és az AI osztályozás ki van kapcsolva. Az interfész a kék szín érzékelésére vonatkozó beállításokat jeleníti meg, a színárnyalat 22-re, a telítettség pedig 0,34-re van állítva. Vannak gombok a videó kimerevítésére és a szín hozzáadására vagy beállítására. A firmware naprakész, 1.0.0.b16 verziót futtat. Van egy gomb is a kapcsolat megszakításához vagy a segédprogram bezárásához.

Itt azt látjuk, hogy az AI Vision Sensor a konfigurált Color Signature „kék” értékkel rendelkezik, és két objektumot észlel.

Egy blokk alapú kódolási szekvencia, amely az induláskor kezdődik, majd egy örök ciklus következik. A cikluson belül a program pillanatképet készít az AIVision2 segítségével a kék vizuális aláírás észleléséhez. Törli és alaphelyzetbe állítja a konzolt, mielőtt ellenőrizné, hogy észlel-e kék objektumot. Ha létezik kék objektum, akkor az objektumok számát a rendszer kinyomtatja a konzolra. A program ezután két másodpercet vár, mielőtt megismétli a folyamatot. A blokkok vizuálisan a kék objektumok folyamatos ellenőrzését jelentik, és megjelenítik az eredményeket a konzolon.Egy konzolkimenet a 2-es számmal. A konzol egy nagyobb felület része, amely valószínűleg blokk alapú kódolási környezetben futó program eredményeit jeleníti meg. A konzol tetején találhatók a további műveletek vagy vezérlők gombjai, az itt futó program pedig adatokat ad ki a Print Console-ba, ami 2-es eredményt mutat a képernyőn.

Ebben a kódban az AI Vision Sensor pillanatfelvételt készít, és „2”-t nyomtat a VEXcode konzolra, mivel csak két „kék” színaláírástészlel.


Tárgy

Egy legördülő menü az AIVision1-hez kapcsolódó objektumtulajdonságok kiválasztásához. A kiválasztott beállítás a szélesség, a menü pedig további opciókat is tartalmaz, például magasság, középpont X, középpont Y, szög, eredetX, eredet Y, címkeazonosító és pontszám. Ezek az opciók lehetővé teszik a felhasználó számára, hogy meghatározott adatpontokat kérjen le az AI Vision érzékelő által észlelt objektumról, rugalmasságot biztosítva az objektum különféle attribútumainak követéséhez vagy méréséhez.

AObject blokk lehetővé teszi a megadott objektum tulajdonságának jelentését. Ez lehetővé teszi a legutoljára készített pillanatfelvételből származó rendelkezésre álló adatok bármelyikének felhasználását.

Az elkészített pillanatképekből lehívható objektumtulajdonságok a következők:

  • szélesség
  • magasság
  • centerX
  • centerY
  • szög
  • eredetX
  • eredetY
  • tagID
  • pontszám

A tulajdonságokkal kapcsolatos további információkért olvassa el a cikk "Pillanatfelvételből vett adatok" című részét.


Az észlelt AprilTag van

Világoskék hatszögletű blokk kódoló interfészről. Tartalmazza a parancsot annak ellenőrzésére, hogy az AIVision1 által észlelt AprilTag megegyezik-e az 1 értékkel. Ez a blokk blokkalapú kódolási környezetben használatos, és annak értékelésére szolgál, hogy egy adott AprilTag jelen van-e. A forma és a szerkezet lehetővé teszi, hogy más logikai blokkba illeszkedjen, amelyeket általában a robotika vagy mesterséges intelligencia-feladatok vizuális programozásában használnak.

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 egy látórendszer. Minden címkéhez tartozik egy azonosító és a hozzá tartozó koordináták. A bal oldali címke ID:0 feliratú, X:110, Y:96, W:41, H:41 koordinátákkal. A középső címke ID:3 feliratú, X:187, Y:180, W:57, H:57 koordinátákkal. A jobb oldali címke címkéje ID:9, X:237, Y:89, W:38, H:38 koordinátákkal.

Ha több AprilTag-et észlel egyetlen pillanatképen, akkor azok azonosított azonosítójuk, nem pedig méretük alapján vannak elrendezve a tömbben.

Ezen a képen három AprilTag-et észleltünk 0, 3 és 9 azonosítókkal. A tömbben az azonosítójuk szerint növekvő sorrendben lesznek rendezve. Az 1-es indexen lévő objektum a 0-s azonosítójú AprilTag-nek, a 2-es indexnél a 3-as azonosítójú AprilTag-nek, a 3-as indexnél pedig a 9-es azonosítójú AprilTag-nek felel meg.

Ha többet szeretne megtudni arról, hogy mi az AprilTags, és hogyan engedélyezheti észlelésüket az AI Vision Sensorral, olvassa el ezt a cikket.


Az AI osztályozás az

Világoskék hatszögletű blokk blokk alapú kódolási környezetből. A blokk tartalmazza a parancsot AIVision1 AI besorolás BlueBall? Ez a blokk ellenőrzi, hogy az AI Vision érzékelő (AIVision1) BlueBall-nak minősítette-e az észlelt objektumot. A blokk legördülő opciókat tartalmaz, amelyek lehetővé teszik a felhasználók számára, hogy különböző objektumokat vagy mesterséges intelligencia besorolásokat válasszanak nyomon követés és döntéshozatal céljából egy vizuális programozási felületen.

AAI Classification is blokk csak akkor érhető el, ha aAI Classification 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 mesterséges intelligencia besorolás.

Az AI Vision Sensor által észlelhető mesterségesintelligencia-besorolások attól függően változnak, hogy milyen modellt használ. Ha további információra van szüksége arról, hogy milyen mesterségesintelligencia-osztályozások állnak rendelkezésre, és hogyan engedélyezheti észlelésüket 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: