Obsah:

Sipeed MaiX Bit OpenMV Demos - počítačové vidění: 3 kroky
Sipeed MaiX Bit OpenMV Demos - počítačové vidění: 3 kroky

Video: Sipeed MaiX Bit OpenMV Demos - počítačové vidění: 3 kroky

Video: Sipeed MaiX Bit OpenMV Demos - počítačové vidění: 3 kroky
Video: Testing Sipeed MAIX-II Dock - Deep Learning AI+IOT Linux 1080P Vision Development Board Kit 2024, Červenec
Anonim
Image
Image

Toto je druhý článek ze série o Sipeed AI na platformě mikrokontrolérů Edge. Tentokrát budu psát o MaiX Bit (odkaz na Seeed Studio Shop), menší vývojové desce připravené na breadboard. Jeho specifikace jsou velmi podobné MaiX Dock, desce, kterou jsem použil v minulém tutoriálu, protože používají stejný čip Kendryte K210.

K vyzkoušení některých ukázek OpenMV použijeme firmware mikropythonu. Zde je popis z domovské stránky OpenMV:

Projekt OpenMV je o vytváření levných, rozšiřitelných modulů strojového vidění poháněných Pythonem a jeho cílem je stát se „Arduino of Machine Vision“. … Python výrazně usnadňuje práci s algoritmy strojových vizí. Metoda find_blobs () v kódu například najde barevné objekty BLOB a vrátí seznam 8 hodnotných objektů představujících každý nalezený barevný blob. V Pythonu lze procházení seznamu objektů vrácených find_blobs () a kreslení obdélníku kolem každého barevného blobu snadno provést pouze ve dvou řádcích kódu.

Navzdory tomu, že funkce MaiX Bit obsahuje vyhrazený akcelerátor neuronových sítí, někdy může být jednodušší použít k provedení práce pevně zakódované algoritmy OpenMV nebo je použít vedle sebe.

Napadají mě některé případy použití:

1) Detekce linky pro robota sledujícího linku

2) Detekce semaforů s detekcí kruhu a barev

3) Použití detekce obličejů k vyhledání obličejů pro rozpoznávání obličejů (s DNN)

Úložiště Github pro tento článek

Krok 1: Firmware Flash Micropython

Připojte se k MaiX Bit
Připojte se k MaiX Bit

Nejprve budeme muset flashovat mikropython firmware na naši desku. Předkompilovaný binární soubor je součástí úložiště github pro tento článek spolu s kflash.py (nástroj pro flash). Pokud si přejete zkompilovat firmware ze zdrojového kódu, stáhněte si zdrojový kód z https://github.com/sipeed/MaixPy, nainstalujte řetězec nástrojů a zkompilujte zdrojový kód do souboru maixpy.bin. Podrobné pokyny k sestavení naleznete zde.

Flashujte binární soubor pomocí

sudo python3 kflash.py kpu.bin

Po úspěšném blikání pokračujte dalším krokem.

Krok 2: Připojte se k MaiX Bit

Nyní by náš bit MaiX měl být přístupný prostřednictvím sériového připojení USB s přenosovou rychlostí 115200. Svůj oblíbený software můžete použít pro sériovou komunikaci nebo pouze příkazy kočka a echo, cokoli vyhovuje vašim potřebám. Používal jsem obrazovku pro sériovou komunikaci a bylo to velmi pohodlné.

Příkaz pro navázání relace sériové komunikace s obrazovkou je

obrazovka sudo /dev /ttyUSB0 115200

kde /dev /ttyUSB0 je adresa vašeho zařízení.

Možná budete muset stisknout tlačítko reset na mikrokontroléru, aby se zobrazila uvítací zpráva a výzva pro překladače pythonu.

Krok 3: Spusťte ukázky

Nyní můžete vstoupit do režimu kopírování stisknutím Ctrl+E a zkopírovat a vložit demo kódy. Chcete -li je spustit, stiskněte Ctrl+D v režimu kopírování.

Pokud si nepřejete nahrávat videa, musíte okomentovat řádky pro nahrávání videa. Jinak kód vyvolá výjimku, pokud není vložena žádná karta SD

Zde jsou krátké popisy každé ukázky:

Najít kruhy - používá funkci find_circles z OpenMV. Vyžaduje více vylepšení pro vaši konkrétní aplikaci, zejména prahovou hodnotu (řídí, jaké kruhy jsou detekovány z transformace Hough. Jsou vráceny pouze kruhy s velikostí větší nebo rovnou prahové hodnotě) a hodnoty r_min, r_max.

Najít obdélníky - používá funkci find_rects z OpenMV. Můžete si pohrát s prahovou hodnotou, ale hodnota, kterou mám v ukázce, funguje docela dobře při hledání obdélníků.

Najít tváře, najít oči - používá funkci find_features s Haar Cascade pro detekci očí a čelní tváře na obrázku. Můžete si pohrát s prahovými hodnotami a hodnotami měřítka pro správný kompromis mezi přesností a rychlostí.

Najít nekonečné čáry - pomocí funkce find_lines najde všechny nekonečné čáry v obraze pomocí transformace Hough.

Detect color - používá funkci get_statistics k získání percentilového objektu a poté převádí průměrné hodnoty řazené kolekce LAB na řazené hodnoty RGB. Tento příklad jsem napsal sám a funguje docela dobře, ale mějte na paměti, že výsledky detekce barev budou ovlivněny okolními světelnými podmínkami.

Mnoho dalších zajímavých ukázek najdete v úložišti OpenMV github! Většinou jsou kompatibilní s mikropythonem MaiX Bit, jediné, co si musíte pamatovat, je přidat sensor.run (1) po nastavení pixformátu a velikosti rámce.

Šťastné experimentování s kódem OpenMV. Pokud máte nějaké dotazy nebo se chcete podělit o nějaké své zajímavé výsledky, neváhejte mě kontaktovat na Youtube nebo LinkedIn. Promiňte, půjdu udělat nějaké roboty!

Doporučuje: