2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Ovo je drugi članak u nizu o Sipeed AI -u na platformi Edge mikrokontrolera. Ovaj put ću pisati o MaiX Bit -u (veza na Seeed Studio Shop), manjoj razvojnoj ploči spremnoj za izradu matične ploče. Njegove su specifikacije vrlo slične MaiX Docku, ploči koju sam koristio u prošlom vodiču, budući da koriste isti čip, Kendryte K210.
Koristit ćemo mikropython firmware za isprobavanje nekih OpenMV demonstracija. Evo opisa s početne stranice OpenMV -a:
Projekt OpenMV govori o stvaranju jeftinih, proširivih, Python-ovih modula za strojni vid, s ciljem da postane „Arduino of Machine Vision“.… Python znatno olakšava rad s algoritmima strojne vizije. Na primjer, metoda find_blobs () u kodu pronalazi mrlje u boji i vraća popis objekata s 8 vrijednosti koji predstavljaju svaku pronađenu mrlju u boji. U Pythonu ponavljanje popisa objekata koje vraća find_blobs () i crtanje pravokutnika oko svake mrlje u boji lako se izvodi u samo dva retka koda.
Dakle, unatoč MaiX Bit značajkama namjenskog akceleratora neuronske mreže, ponekad bi moglo biti lakše samo koristiti OpenMV hard-code algoritme za obavljanje posla ili ih koristiti jedan uz drugog.
Neki slučajevi korištenja koji mi padaju na pamet su:
1) Otkrivanje linije za bota sljedbenika linije
2) Otkrivanje semafora s otkrivanjem krugova i boja
3) Korištenje detekcije lica za pronalaženje lica za prepoznavanje lica (s DNN)
Github spremište za ovaj članak
Korak 1: Flash Micropython firmver
Prije svega, trebat ćemo prenijeti mikropython firmware na našu ploču. Predkompilirana binarna datoteka uključena je u github spremište za ovaj članak, zajedno s kflash.py (pomoćni program za flash). Ako želite kompajlirati firmver iz izvornog koda, samo preuzmite izvorni kod s https://github.com/sipeed/MaixPy, instalirajte alatni lanac i prevedite izvorni kod u datoteku maixpy.bin. Detaljne upute za izgradnju mogu se pronaći ovdje.
Bljeskajte binarnu datoteku s
sudo python3 kflash.py kpu.bin
Nakon uspješnog bljeskanja slijedite sljedeći korak.
Korak 2: Spojite se na MaiX Bit
Sada bi naš MaiX bit trebao biti dostupan putem USB serijske veze s baudrateom 115200. Možete koristiti svoj omiljeni softver za serijsku komunikaciju ili samo naredbe cat i echo, što god odgovara vašim potrebama. Koristio sam zaslon za serijsku komunikaciju i bilo mi je zgodno.
Naredba za uspostavljanje serijske komunikacijske sesije s zaslonom je
sudo zaslon /dev /ttyUSB0 115200
gdje je /dev /ttyUSB0 adresa vašeg uređaja.
Možda ćete morati pritisnuti gumb za poništavanje na mikrokontroleru da vidite pozdravnu poruku i upit prevoditelja pythona.
Korak 3: Pokrenite Demo
Sada možete pristupiti načinu kopiranja pritiskom na Ctrl+E i kopirati-zalijepiti demo kodove. Da biste ih pokrenuli, pritisnite Ctrl+D u načinu kopiranja.
Ako ne želite snimati videozapise, morate komentirati redove za snimanje videozapisa. U protivnom će kôd izazvati iznimku ako nema umetnute SD kartice
Evo kratkih opisa svake demonstracije:
Pronađi krugove - koristi funkciju find_circles iz OpenMV -a. Potrebno je dodatno podešavanje za vašu određenu aplikaciju, posebno prag (kontrolira koje krugove detektira Hough -ova transformacija. Vraćaju se samo krugovi veličine veće od ili jednake pragu) i vrijednosti r_min, r_max.
Pronađi pravokutnike - koristi funkciju find_rects iz OpenMV -a. Možete se igrati s vrijednošću praga, ali vrijednost koju imam u demonstracijama prilično je dobra za pronalaženje pravokutnika.
Pronađi lica, pronađi oči - koristi funkciju find_features s Haar kaskadama za otkrivanje očiju i frontalnog lica na slici. Možete se poigrati s vrijednostima praga i ljestvice za pravi kompromis brzine i točnosti.
Find beskonačne linije - koristi funkciju find_lines za pronalaženje svih beskonačnih linija na slici pomoću Hough transformacije.
Otkrivanje boje - koristi funkciju get_statistics za dobivanje percentilnog objekta, a zatim pretvara srednje vrijednosti LAB -a u RGB vrijednosti. Ovaj sam primjer napisao sam i radi prilično dobro, ali imajte na umu da će na rezultate otkrivanja boja utjecati uvjeti ambijentalnog osvjetljenja.
U OpenMV github spremištu možete pronaći još mnogo zanimljivih demonstracija! Uglavnom su kompatibilni s mikropitonom MaiX Bit, jedino što trebate zapamtiti je dodavanje sensor.run (1) nakon postavljanja formata pixformata i okvira.
Sretno eksperimentiranje s OpenMV kodom. Ako imate pitanja ili želite podijeliti neke od svojih zanimljivih rezultata, ne ustručavajte se kontaktirati me na Youtube ili LinkedIn. Oprostite, idem napraviti robote!