Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 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 do Seeed Studio Shop -a), manjoj razvojnoj ploči spremnoj za izradu matične ploče. Njegove specifikacije su 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 firmver za isprobavanje nekih OpenMV demonstracija. Evo opisa sa OpenMV početne stranice:
Projekt OpenMV govori o stvaranju jeftinih, proširivih, Python-ovih modula za mašinski vid, s ciljem da postane „Arduino of Machine Vision“.… Python čini rad s algoritmima strojne vizije mnogo lakšim. 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 vrši u samo dva reda 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 upotrebe koji mi padaju na pamet su:
1) Otkrivanje linije za bot pratioca linije
2) Otkrivanje semafora sa detekcijom 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 firmver na našu ploču. Predkompilirana binarna datoteka uključena je u github spremište za ovaj članak, zajedno sa kflash.py (pomoćni program za flash). Ako želite kompajlirati firmver iz izvornog koda, samo preuzmite izvorni kod sa https://github.com/sipeed/MaixPy, instalirajte lanac alata i kompajlirajte izvorni kod u datoteku maixpy.bin. Detaljna uputstva za izgradnju mogu se pronaći ovdje.
Umetnite binarnu datoteku sa
sudo python3 kflash.py kpu.bin
Nakon uspješnog treptanja slijedite sljedeći korak.
Korak 2: Povežite se na MaiX Bit
Sada bi naš MaiX bit trebao biti dostupan putem USB serijske veze s baudrate 115200. Možete koristiti svoj omiljeni softver za serijsku komunikaciju ili samo naredbe cat i echo, sve što odgovara vašim potrebama. Koristio sam ekran za serijsku komunikaciju i bilo mi je vrlo zgodno.
Naredba za uspostavljanje serijske komunikacijske sesije sa ekranom je
sudo screen /dev /ttyUSB0 115200
gdje je /dev /ttyUSB0 adresa vašeg uređaja.
Možda ćete morati pritisnuti tipku za poništavanje na mikrokontroleru da vidite pozdravnu poruku i upit za tumač pythona.
Korak 3: Pokrenite demo verziju
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 video zapise, morate komentirati redove za snimanje videozapisa. U suprotnom će kôd izuzeti 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 koji krugovi se detektiraju iz Hough transformacije. Vraćaju se samo krugovi veličine veće ili jednake pragu) i vrijednosti r_min, r_max.
Pronađi pravokutnike - koristi funkciju find_rects iz OpenMV -a. Možete se igrati s graničnom vrijednošću, ali vrijednost koju imam u demonstracijama radi prilično dobro za pronalaženje pravokutnika.
Pronađi lica, pronađi oči - koristi funkciju find_features sa Haar kaskadama za otkrivanje očiju i frontalnog lica na slici. Možete se igrati sa vrijednostima praga i skale za pravi kompromis brzine i tač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 primjer sam napisao sam i radi prilično dobro, ali imajte na umu da će na rezultate detekcije boja utjecati uvjeti ambijentalnog osvjetljenja.
U OpenMV github spremištu možete pronaći još mnogo zanimljivih demonstracija! Uglavnom su kompatibilni s MaiX Bit mikropitonom, jedino čega se morate sjetiti je da dodate senzor.run (1) nakon postavljanja pixformata i veličine 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!