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í senzoru AI Vision ve VEXcode V5
- Konfigurace barevných kódů pomocí senzoru AI Vision ve VEXcode V5
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:
- Použití klasifikací umělé inteligence se senzorem AI Vision
- Používání AprilTags se senzorem AI Vision
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 ai_vision_1.
pořídit_snímek
Metoda take_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:
- 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:
ai_vision_1__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:
-
AI AiVision.ALL_AIOBJS
-
dubenŠtítky-
AiVision.VŠECHNY_ŠTÍTKY
Pořízením snímku se vytvoří n-tice 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 byla vložena do n-tice.
V tomto příkladu proměnná vision_objects ukládá n-tici obsahující detekované barevné podpisy „fialové“barvy ze senzoru AI Vision s názvem ai_vision_1. Zobrazuje počet detekovaných objektů a každých 0,5 sekundy pořizuje nový snímek.
while True:
# Získání snímku všech fialových barevných podpisů a jeho uložení do vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Purple)
# Před načtením dat zkontrolujeme, zda byl ve snímku detekován objekt.
pokud vision_objects[0].exists == True
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Počet objektů:", len(vision_objects))
wait(0,5, SEKUND)
Vlastnosti objektu
Každý objekt ze snímku má různé vlastnosti, které lze použít k hlášení informací o daném objektu. 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
- skóre
- existuje
Pro přístup k vlastnosti objektu použijte název proměnné, která ukládá n-tici, následovaný 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 uvnitř proměnné vision_objects by bylo: vision_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 dubnTagy a Klasifikace 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 AI Vision Sensor 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ání snímku všech modrých barevných podpisů a jeho uložení do vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Před načtením dat zkontrolujeme, zda byl ve snímku detekován objekt.
pokud vision_objects[0].exists == True
# Zkontroluje, zda se objekt nenachází ve středu pohledu AI Vision Sensor.
if vision_objects[0].centerX > 150 and 170 > vision_objects[0].centerX:
# Pokračujte v otáčení doprava, dokud se objekt nedostane do středu pohledu.
drivetrain.turn(DOPRAVA)
jinak:
drivetrain.stop()
wait(5, MSEC)
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čující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ání snímku všech modrých barevných podpisů a jeho uložení do vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Před načtením dat zkontrolujeme, zda byl ve snímku detekován objekt.
pokud vision_objects[0].exists == True
# Zkontroluje, zda se největší objekt nachází blízko senzoru AI Vision, změřením jeho šířky.
if vision_objects[0].width < 250:
# Přibližte se k objektu, dokud nebude širší než 250 pixelů.
drivetrain.drive(VPŘED)
jinak:
drivetrain.stop()
wait(5, MSEC)
úhel
Vlastnost úhlu je k dispozici pouze probarevné kódy a, AprilTagsa
.
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.