Kódování pomocí AI Vision Sensor v blocích VEXcode EXP

Ujistěte se, že máte u senzoru AI Vision nakonfigurováno barevných podpisů a barevných kódů , aby je bylo možné použít s vašimi bloky. Chcete-li se dozvědět více o tom, jak je nakonfigurovat, můžete si přečíst níže uvedené články:

Senzor AI Vision dokáže také detekovat klasifikace AI a AprilTags. Chcete-li se dozvědět, jak tyto režimy detekce povolit, přejděte sem:

Chcete-li se dozvědět více podrobností o těchto jednotlivých blocích a o tom, jak je používat ve VEXcode, přejděte na stránky API.


Pořídit snímek

Blok VEXcode EXP Take Snapshot, který má číst Pořídit snímek COL1 v AIVision1. K dispozici jsou dvě rozbalovací nabídky, jedna pro výběr senzoru AI Vision a druhá pro výběr barevného kódu.

BlokTake Snapshot pořídí snímek toho, co AI Vision Sensor aktuálně vidí, a z tohoto snímku načte data, která pak lze použít v projektu. Při pořízení snímku je třeba určit, o jaký typ objektu má senzor AI Vision shromažďovat data:

  • Barevný podpis
  • Barevný kód
  • Klasifikace umělé inteligence
  • DubenŠtítky

Pořízením snímku se vytvoří pole všech detekovaných objektů, které jste zadali. Například pokud byste chtěli detekovat „červenou“ barevnou signaturua senzor AI Vision Sensor detekoval 3 různé červené objekty, data ze všech tří by se vložila do pole.

Další informace o tom, jak určit rozdíly mezi různými objekty, naleznete v části „Nastavení položky objektu“ v tomto článku.

Blok VEXcode EXP Take Snapshot s textem Pořiďte snímek modré z AIVision2.

V tomto příkladu detekuje pouze objekty, které odpovídají nakonfigurovanému barevnému podpisu „Modrá“ a nic jiného.

Data pořízená ze snímku

Mějte na paměti, že senzor AI Vision použije pro všechny následující bloky svůj poslední pořízený snímek. Abyste ze senzoru AI Vision Sensor vždy získávali nejaktuálnější informace, pořiďte snímek pokaždé, když z něj chcete načíst data. 

Rezoluce

Schéma rozlišení senzoru AI Vision. Levý horní roh je označen 0, 0, pravý horní roh je označen 320, 0 a levý dolní roh je označen 0, 240. Střed obrazovky je označen 160, 120.

Pochopení rozlišení senzoru AI Vision je klíčové pro přesnou interpretaci dat. Snímač má rozlišení 320x240 pixelů s přesným středem na souřadnicích (160, 120).

Souřadnice X menší než 160 odpovídají levé polovině zorného pole senzoru, zatímco souřadnice větší než 160 představují pravou polovinu. Podobně souřadnice Y menší než 120 označují horní polovinu pohledu a souřadnice větší než 120 představují dolní polovinu

Přejděte k Principy dat v nástroji AI Vision Utility v VEXcode EXP , kde najdete další informace o tom, jak se objekty měří pomocí senzoru AI Vision.

Šířka a výška

Toto je šířka nebo výška detekovaného objektu v pixelech.

Zobrazen je senzor AI Vision, který sleduje modrý Buckyball. Buckyball má kolem sebe sledovací obdélník a výše uvedený popisek ukazuje, že má šířku 80 pixelů a výšku 78 pixelů. Červené šipky zvýrazňují sledovací obdélník a ukazují jeho šířku a výšku.

Rozměry šířky a výšky pomáhají identifikovat různé objekty. Například Buckyball bude mít větší výšku než Ring.

Je zobrazen senzor AI Vision, který sleduje dvě modré kostky. Kostky mají kolem sebe sledovací obdélníky a jedna je mnohem blíže k fotoaparátu. Bližší má šířku 144 a výšku 113 a vzdálenější má šířku 73 a výšku 84.

Šířka a výška také označují vzdálenost objektu od senzoru AI Vision. Menší rozměry obvykle znamenají, že je objekt dále, zatímco větší rozměry naznačují, že je blíž.

Projekt VEXcode Blocks, ve kterém se robot přiblíží k objektu, dokud jeho šířka nedosáhne určité velikosti, než se zastaví. Projekt začíná blokem When started a smyčkou Forever. Zbytek projektu je uvnitř smyčky Forever. Nejprve se udělá snímek objektu Blue z AIVision1 a zbytek projektu se pak uloží do bloku If, který se zadává, zda objekt AIVision1 existuje? Uvnitř tohoto bloku If se nachází blok If Else, který čte, zda je šířka objektu AIVision1 menší než 250, pak se jede vpřed, jinak se jízda zastaví.

V tomto příkladu se pro navigaci používá šířka objektu. Robot se bude přibližovat k objektu, dokud jeho šířka nedosáhne určité velikosti, než se zastaví.

CenterX a Center Y

Toto jsou středové souřadnice detekovaného objektu v pixelech.

Zobrazen je senzor AI Vision, který sleduje modrý Buckyball. Buckyball má kolem sebe sledovací obdélník a popisek výše ukazuje, že má pozici X 176 a pozici Y 117. Střed sledovacího obdélníku je zvýrazněn, aby se ukázalo, že poloha je měřena od středu.

Souřadnice CenterX a CenterY pomáhají s navigací a určováním polohy. Snímač AI Vision má rozlišení 320 x 240 pixelů.

Je zobrazen senzor AI Vision, který sleduje dvě modré kostky. Kostky mají kolem sebe sledovací obdélníky a jedna je mnohem blíže k fotoaparátu. Bližší má pozici Y 184 a vzdálenější má pozici Y 70.

Vidíte, že objekt blíže k AI Vision Sensor bude mít nižší souřadnici CenterY než objekt, který je dále.

Projekt VEXcode Blocks, ve kterém se robot otočí směrem k detekovanému objektu, dokud se nedostane do středu pohledu senzoru AI Vision. Projekt začíná blokem When started a smyčkou Forever. Zbytek projektu je uvnitř smyčky Forever. Nejprve se udělá snímek objektu Blue z AIVision1 a zbytek projektu se pak umístí do bloku If, který přečte, zda objekt AIVision1 existuje? Uvnitř tohoto bloku If se nachází blok If Else, který čte, že pokud je objekt AIVision1 centerX větší než 150 a objekt AIVision1 centerX menší než 170, pak se má odbočit doprava, jinak se jízda zastaví.

V tomto příkladu, protože střed pohledu senzoru AI Vision je (160, 120), robot se bude otáčet doprava, dokud souřadnice středu X detekovaného objektu nebude větší než 150 pixelů, ale menší než 170 pixelů.

Úhel

Animace červeného a zeleného čtverce otáčejících se společně pro demonstraci 360 stupňů úhlové hodnoty.

Úhel je vlastnost dostupná pouze probarevných kódů a, duben, štítky. Toto představuje, zda je detekovaný barevný kódnebo AprilTag orientován odlišně.

Zobrazuje se senzor AI Vision, který sleduje barevný kód – zelenou a poté modrou. Videozáznam ukazuje zelenou kostku naskládanou na modré kostce. Hodnota úhlu barevného kódu je zvýrazněna a ukazuje 87 stupňů, což znamená, že barevný kód je orientován svisle.

Můžete vidět, zda je robot orientován odlišně vzhledem kBarevný kód neboAprilTag , a podle toho činit navigační rozhodnutí.

Zobrazuje se senzor AI Vision, který sleduje barevný kód – nejprve zelenou a poté modrou. Videozáznam ukazuje zelenou kostku vedle modré kostky, ale ve srovnání se senzorem jsou v neobvyklém úhlu. Hodnota úhlu barevného kódu je zvýrazněna a je 0 stupňů, což znamená, že úhel barevného kódu nelze přečíst.

Například pokud není barevný kód detekován ve správném úhlu, pak robot nemusí být schopen objekt, který představuje, správně zvednout.

PůvodX a PůvodY

OriginX a OriginY jsou souřadnice v levém horním rohu detekovaného objektu v pixelech.

Zobrazen je senzor AI Vision, který sleduje modrý Buckyball. Buckyball má kolem sebe sledovací obdélník a popisek výše ukazuje, že má pozici X 176 a pozici Y 117. Levý horní roh sledovacího obdélníku je zvýrazněn, aby se ukázalo, že počáteční poloha se měří od jeho levého horního rohu.

Souřadnice OriginX a OriginY pomáhají s navigací a určováním polohy. Kombinací této souřadnice se šířkou a výškou objektu můžete určit velikost ohraničovacího rámečku objektu. To může pomoci se sledováním pohybujících se objektů nebo s navigací mezi objekty.

Projekt VEXcode Blocks, ve kterém robot nakreslí detekovaný objekt na obrazovku jako obdélník. Projekt začíná blokem When started a smyčkou Forever. Zbytek projektu je uvnitř smyčky Forever. Nejprve se udělá snímek objektu Blue z AIVision1 a zbytek projektu se pak uloží do bloku If, který se zadává, zda objekt AIVision1 existuje? Uvnitř tohoto bloku If se nachází blok Draw rectangle, který na Brainu čte hodnoty draw rectangle: AIVision1 object originX, AIVision1 object originY, AIVision1 object width a AIVision1 object height.

V tomto příkladu bude na mozku nakreslen obdélník s použitím přesných souřadnic jeho počátku, šířky a výšky.

ID značky

ID značky je k dispozici pouze proAprilTags. Toto je identifikační číslo pro zadanou hodnotuAprilTag.

Nástroj AI Vision Utility sleduje tři AprilTagy. Každá značka je identifikována, umístěna a ohraničena, což naznačuje, že ji systém sleduje. ID AprilTag v tomto příkladu mají hodnoty 0, 3 a 9.

Identifikace konkrétních AprilTags umožňuje selektivní navigaci. Svého robota můžete naprogramovat tak, aby se pohyboval směrem k určitým značkám, zatímco jiné ignoroval, a efektivně je tak využíval jako ukazatele pro automatickou navigaci.

Skóre

Vlastnost score se používá při detekciklasifikací AI pomocí senzoru AI Vision.

Nástroj AI Vision sleduje čtyři objekty, dva BuckyBally a dva Ringy. Každý objekt je identifikován, lokalizován a označen okrajem, což naznačuje, že jej systém sleduje. Nástroj také uvádí skóre klasifikace AI každého objektu, v tomto příkladu je každé skóre 99 %.

Skóre spolehlivosti udává, jak si je senzor AI Vision jistý svou detekcí. Na tomto obrázku je 99% jistota v identifikaci klasifikací umělé inteligence těchto čtyř objektů. Toto skóre můžete použít k zajištění toho, aby se váš robot zaměřoval pouze na vysoce spolehlivé detekce.


Nastavit položku objektu

Když senzor s umělou inteligencí detekuje objekt, je vložen do pole. Ve výchozím nastavení bude AI Vision Sensor stahovat data z prvního objektu v poli nebo z objektu s indexem 1. Pokud váš senzor AI Vision Sensor detekoval pouze jeden objekt, bude tento objekt ve výchozím nastavení vybrán.

Pokud váš senzor AI Vision Sensor detekuje více objektů najednou, budete muset použít blokSet Object Item k určení, ze kterého objektu chcete data načítat.

VEXcode EXP Nastaví blok položky objektu, který čte Nastaví položku objektu AIVision1 na 1. K dispozici je rozbalovací nabídka pro výběr senzoru AI Vision a textové pole pro zadání indexu objektu.

Když senzor AI Vision detekuje více objektů, seřadí je v poli od největšího po nejmenší. To znamená, že největší detekovaný objekt bude vždy nastaven na index objektu 1 a nejmenší objekt bude vždy nastaven na nejvyšší číslo.

Je zobrazen senzor AI Vision, který sleduje dvě modré kostky. Kostky mají kolem sebe sledovací obdélníky a jedna je mnohem blíže k fotoaparátu. Bližší má šířku 136 a vzdálenější 78.

V tomto příkladu byly detekovány dva objekty sbarevnou charakteristikou „Modrá“. Oba budou vloženy do pole, když bude použit blokTake Snapshot.

Je zobrazen senzor AI Vision, který sleduje dvě modré kostky. Kostky mají kolem sebe sledovací obdélníky a jedna je mnohem blíže k fotoaparátu. Bližší krychle je označena 1 a vzdálenější krychle 2.

Zde by se objekt vpředu stal objektem s indexem 1, protože je to největší objekt, a nejmenší objekt by se stal objektem s indexem 2.


Objekt existuje

Před načtením jakýchkoli dat ze snímku je zkontrolovat, zda senzor AI Vision Sensor nejprve detekoval nějaké objekty z daného snímku. Zde přichází na řadu blokObject Exists.

Blok VEXcode EXP Object exists, který čte, zda existuje objekt AIVision1? K dispozici je rozbalovací nabídka pro výběr senzoru AI Vision.

Tento blok vrátí hodnotuTrue neboFalse která určuje, zda poslední pořízený snímek obsahuje detekované objekty.

Tento blok by měl býtpoužit aby se zajistilo, že se nepokoušíte načíst žádná data z potenciálně prázdného snímku.

Projekt VEXcode Blocks, ve kterém se robot bude pohybovat směrem k detekovanému modrému objektu. Projekt začíná blokem When started a smyčkou Forever. Zbytek projektu je uvnitř smyčky Forever. Nejprve se udělá snímek objektu Blue z AIVision2 a poté se vytvoří blok If Else, který přečte, zda objekt AIVision2 existuje, a poté se jede vpřed, jinak se jízda zastaví.

Například zde bude robot neustále pořizovat snímky pomocí senzoru AI Vision Sensor. Pokud identifikuje jakýkoli objekt s „modrou“ barevnou charakteristikou, bude se pohybovat vpřed.


Pokud jakýkoli snímek nemá „modrou“ barevnou signaturu , robot se zastaví.


Počet objektů

Blok počtu objektů VEXcode EXP, který čte počet objektů AIVision1. K dispozici je rozbalovací nabídka pro výběr senzoru AI Vision.

Použití bloku Object count vám umožní zjistit, kolik objektů určitého Color Signature dokáže AI Vision Sensor vidět na svém posledním snímku. 

Je zobrazen senzor AI Vision, který sleduje dvě modré kostky. Kostky mají kolem sebe sledovací obdélníky a jedna je mnohem blíže k fotoaparátu.

Zde vidíme, že senzor AI Vision má nakonfigurovanou barvu barevnou signaturu „Modrá“ a detekuje dva objekty.

Projekt VEXcode Blocks, ve kterém robot vypíše počet detekovaných modrých objektů do tiskové konzole. Projekt začíná blokem When started a smyčkou Forever. Zbytek projektu je uvnitř smyčky Forever. Nejprve si v AIVision2 pořiďte snímek modré, vymažte všechny řádky v konzoli a poté nastavte kurzor na další řádek v konzoli. Dalším blokem je If, ​​který čte, zda objekt AIVision2 existuje, poté vypíše počet objektů AIVision2 do konzole a nastaví kurzor na další řádek. Mimo blok If se nachází blok Wait, který čeká 2 sekundy.Výstup konzole pro tisk z předchozího projektu VEXcode Blocks s vytištěnou zprávou s číslem 2.

V tomto kódu by senzor AI Vision Sensor pořídil snímek a na konzoli VEXcode vypsal „2“, protože detekuje pouze dva „modré“ barevné podpisy .


Objekt

Blok objektu AI Vision ve formátu VEXcode EXP, který čte šířku objektu AIVision1. K dispozici je rozbalovací nabídka pro výběr senzoru AI Vision a otevřená rozbalovací nabídka pro výběr atributu objektu pro snímání. Seznam možností zní šířka, výška, střed X, střed Y, úhel, původ X, původ Y, ID značky a skóre.

BlokObject umožňuje nahlásit vlastnost vámi zadaného objektu. To vám umožní použít libovolná dostupná data z naposledy pořízeného snímku.

Vlastnosti objektů, které lze načíst z pořízených snímků, jsou:

  • šířka
  • výška
  • centrumX
  • centrumY
  • úhel
  • původX
  • původY
  • ID značky
  • skóre

Další informace o těchto vlastnostech naleznete v části „Data pořízená ze snímku“ tohoto článku.


Detekovaný AprilTag je

Detekováno EXP VEXcode AprilTag je blok, který čte AIVision1. Bylo detekováno, že AprilTag je 1? K dispozici je rozbalovací nabídka pro výběr senzoru AI Vision.

BlokDetected AprilTag is je k
pouze tehdy, když je zapnut režim detekce AprilTag
Tento blok bude hlásit hodnotu True nebo False v závislosti na tom, zda je zadaný objekt určitým AprilTag.

Nástroj AI Vision Utility sleduje tři AprilTagy. Každá značka je identifikována, umístěna a ohraničena, což naznačuje, že ji systém sleduje. ID AprilTag v tomto příkladu mají hodnoty 0, 3 a 9.

Pokud je v jednom snímku detekováno více značek AprilTag, jsou v poli uspořádány na základě identifikovaného ID, nikoli podle velikosti
Na tomto obrázku jsou detekovány tři AprilTagy s ID
, 3 a 9. V poli budou uspořádány vzestupně podle svého ID. Objekt na indexu 1 by odpovídal značce AprilTag s ID 0, na indexu 2 značce AprilTag s ID 3 a na indexu 3 značce AprilTag s ID 9.

Více informací o tom, co jsou AprilTags a jak povolit jejich detekci pomocí AI Vision Sensor, naleznete v tomto článku.


Klasifikace umělé inteligence je

VEXcode EXP AI Classification je blok, který čte AIVision1 AI classification je BlueBall? K dispozici je rozbalovací nabídka pro výběr senzoru AI Vision a další rozbalovací nabídka pro výběr cílového objektu klasifikace AI.

BlokKlasifikace AI je je k dispozici pouze tehdy, když je zapnut režim detekce klasifikace.

 

Tento blok bude hlásit hodnotu True nebo False v závislosti na tom, zda je zadaný objekt určitou klasifikací AI.

Klasifikace umělé inteligence, které dokáže senzor s umělou inteligencí detekovat, se liší v závislosti na používaném modelu. Více informací o dostupných klasifikacích umělé inteligence a o tom, jak povolit jejich detekci pomocí senzoru AI Vision Sensor, naleznete v tomto článku.

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

Last Updated: