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:
- Konfigurace barevných podpisů pomocí AI Vision Signature ve VEXcode EXP
- Konfigurace barevných kódů pomocí signatury AI Vision ve VEXcode EXP
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:
- Klasifikace umělé inteligence s využitím senzoru AI Vision ve VEXcode EXP
- AprilTagy s AI Vision Sensor ve VEXcode EXP
Získejte vizuální data pomocí senzoru s umělou inteligencí
Každý příkaz senzoru AI Vision bude začínat názvem nakonfigurovaného senzoru AI Vision. Pro všechny příklady v tomto článku bude název použitého senzoru AI Vision Sensor AIVision.
poříditSnímek
Metoda takeSnapshot 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:
- ABarevný podpis neboBarevný kód
- Tyto vizuální podpisy začínají názvem senzoru AI Vision, dvojitým podtržítkem a poté názvem vizuálního podpisu, například:
AIVision1__Blue.
- Tyto vizuální podpisy začínají názvem senzoru AI Vision, dvojitým podtržítkem a poté názvem vizuálního podpisu, například:
-
Klasifikace AI -
aivision::ALL_AIOBJS -
dubenŠtítky-
aivision::ALL_TAGS
Pořízením snímku se vytvoří pole všech detekovaných objektů, které jste zadali. Například, pokud byste chtěli detekovat „modrou“ barevnou signaturu a senzor AI Vision Sensor detekoval 3 různé modré objekty, data ze všech tří by se vložila do pole.
V tomto příkladu je pořízen snímek „modré“ barevné signatury ze senzoru AI Vision s názvem AIVision1. Zobrazuje počet detekovaných objektů v poli a každých 0,5 sekundy pořizuje nový snímek.
while (true) {
// Získá snímek všech objektů modré barvy.
AIVision.takeSnapshot(AIVision1__Blue);
// Před načtením dat zkontrolujeme, zda byl ve snímku detekován objekt.
Pokud (AIVision.objectCount > 0) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print(AIVision1.objectCount);
}
wait(5, ms);
}
objekty
Každý objekt ze snímku má různé vlastnosti, které lze použít k hlášení informací o daném objektu. Metoda objects umožňuje přístup k těmto vlastnostem.
Dostupné vlastnosti jsou následující:
- identifikační číslo
- střed X a střed Y
- původX a původY
- šířka
- výška
- úhel
- existuje
- skóre
Pro přístup k vlastnosti objektu použijte název senzoru AI Vision, následovaný metodou objektu a nakonec indexem objektu.
Index objektu označuje vlastnost, kterou konkrétní objekt chcete načíst. Po pořízení snímku senzor AI Vision automaticky seřadí objekty podle velikosti. Největšímu objektu je přiřazen index 0, menší objekty dostávají vyšší indexová čísla.
Například volání šířky největšího objektu by bylo AIVision1.objects[0].width.
identifikační číslo
Vlastnost id je k dispozici pouze pro AprilTags a klasifikace AI.
ProAprilTagpředstavuje vlastnost id detekovanéidentifikační číslo AprilTag(s)
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.
Proklasifikací AIpředstavuje vlastnost id specifický typ detekované klasifikace AI.
Identifikace specifických Klasifikace umělé inteligenceumožňuje robotovi soustředit se pouze na konkrétní objekty, například se chtít pohybovat pouze směrem k červenému Buckyballu, nikoli k modrému.
Další informace o duben, štítcích a , klasifikacích AI a o tom, jak povolit jejich detekci v nástroji AI Vision Utility, naleznete v těchto článcích.
střed X a střed Y
Toto jsou středové souřadnice detekovaného objektu v pixelech.
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ů.
Vidíte, že objekt blíže k senzoru AI Vision bude mít nižší souřadnici CenterY než objekt, který je dále.
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ů.
while (true) {
// Získá snímek všech objektů modré barvy.
AIVision.takeSnapshot(AIVision__Blue);
// Před načtením dat zkontrolujeme, zda byl ve snímku detekován objekt.
pokud (AIVision.objectCount > 0) {
pokud (AIVision.objects[0].centerX > 150.0 && 170.0 > AIVision.objects[0].centerX) {
Pohon.zatáčení(vpravo);
} else {
Pohon.zastavení();
}
}
čekání(5, ms);
}
původX a původY
OriginX a OriginY jsou souřadnice v levém horním rohu detekovaného objektu v pixelech.
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.
šířka a výška
Toto je šířka nebo výška detekovaného objektu v pixelech.
Rozměry šířky a výšky pomáhají identifikovat různé objekty. Například Buckyball bude mít větší výšku než Ring.
Šíř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íž.
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í.
while (true) {
// Získá snímek všech objektů Blue.
AIVision.takeSnapshot(AIVision1__Blue);
// Před načtením dat zkontrolujeme, zda byl ve snímku detekován objekt.
pokud (AIVision.objectCount > 0) {
pokud (AIVision.objects[0].width < 250.0) {
Pohon.drive(vpřed);
} else {
Pohon.stop();
}
}
čekání(5, ms);
}
úhel
Vlastnost úhlu je k dispozici pouze probarevné kódy a, AprilTags
.
Toto představuje, zda je detekovaný barevný kód nebo AprilTag orientován odlišně.
Můžete vidět, zda je robot orientován odlišně vzhledem kBarevný kód neboAprilTag , a podle toho činit navigační rozhodnutí.
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.
skóre
Vlastnost skóre se používá při detekciklasifikací AI pomocí senzoru AI Vision.
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.
existuje
Vlastnost exists se používá k detekci
To vám umožní zkontrolovat, zda byly v předchozím snímku detekovány nějaké detekované objekty. Tato vlastnost vrátí hodnotu True, pokud objekt existuje, a hodnotu False, pokud objekt neexistuje.
Počet objektů
Metoda objectCount vrací počet detekovaných objektů v posledním snímku.
V tomto příkladu byly detekovány dva objekty sbarevnou charakteristikou „Modrá“. Oba budou vloženy do pole při použití metody takeSnapshot.
Tento úryvek kódu průběžně aktualizuje EXP Brain o počet detekovaných objektů. Na základě uvedeného příkladu bude opakovaně odesílat hodnotu 2, což znamená, že byly detekovány dva objekty.
while (true) {
// Získání snímku všech objektů Blue.
AIVision.takeSnapshot(AIVision__Blue);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Před načtením dat zkontrolujeme, zda byl ve snímku detekován objekt.
pokud (AIVision.objectCount > 0) {
Brain.Screen.print(AIVision1.objectCount);
}
wait(5, ms);
}