Sadržaj:

Sipeed MaiX Bit OpenMV Demos - Računalni vid: 3 koraka
Sipeed MaiX Bit OpenMV Demos - Računalni vid: 3 koraka

Video: Sipeed MaiX Bit OpenMV Demos - Računalni vid: 3 koraka

Video: Sipeed MaiX Bit OpenMV Demos - Računalni vid: 3 koraka
Video: The Choice is Ours (2016) Official Full Version 2024, Juli
Anonim
Image
Image

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

Povežite se na MaiX Bit
Povežite se na MaiX Bit

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!

Preporučuje se: