Indholdsfortegnelse:

Sipeed MaiX Bit OpenMV -demonstrationer - Computer Vision: 3 trin
Sipeed MaiX Bit OpenMV -demonstrationer - Computer Vision: 3 trin

Video: Sipeed MaiX Bit OpenMV -demonstrationer - Computer Vision: 3 trin

Video: Sipeed MaiX Bit OpenMV -demonstrationer - Computer Vision: 3 trin
Video: Sipeed Maix-II SoM and Devboard for AI/IoT/Machine Learning running Linux - Jetson Nano alternative? 2024, Juli
Anonim
Image
Image

Dette er den anden artikel i serien om Sipeed AI på Edge -mikrokontrollerplatformen. Denne gang vil jeg skrive om MaiX Bit (link til Seeed Studio Shop), et mindre udviklingsbræt, der er klar til brødbræt. Dens specifikationer ligner meget MaiX Dock, kortet jeg brugte til sidste tutorial, da de bruger den samme chip, Kendryte K210.

Vi kommer til at bruge micropython -firmware til at prøve nogle OpenMV -demoer. Her er beskrivelsen fra OpenMV -startsiden:

OpenMV-projektet handler om at skabe billige, udvidelige, Python-drevne, maskinsynmoduler og har til formål at blive "Arduino of Machine Vision".… Python gør arbejdet med maskinvisioner algoritmer meget lettere. For eksempel finder metoden find_blobs () i koden farveklatter og returnerer en liste med objekter med 8 værdier, der repræsenterer hver fundet farveblade. I Python gentages let gennem listen over objekter, der returneres af find_blobs () og tegner et rektangel omkring hver farveklat med kun to linjer kode.

Så trods MaiX Bit har dedikeret neuralt netværksaccelerator, kan det nogle gange være lettere at bare bruge OpenMV hårdkodede algoritmer til at udføre jobbet eller bruge dem sammen med hinanden.

Nogle brugssager, jeg tænker på, er:

1) Linjedetektering for linjefolger bot

2) Registrering af trafiklys med cirkel- og farvedetektion

3) Brug af ansigtsregistrering til at finde ansigter til ansigtsgenkendelse (med DNN)

Github -lager til denne artikel

Trin 1: Flash Micropython -firmware

Opret forbindelse til MaiX Bit
Opret forbindelse til MaiX Bit

Først og fremmest skal vi blinke micropython -firmware til vores bord. En forudkompileret binær er inkluderet i github -opbevaringsstedet for denne artikel sammen med kflash.py (et flash -værktøj). Hvis du ønsker at kompilere firmwaren fra kildekoden, skal du blot downloade kildekoden fra https://github.com/sipeed/MaixPy, installere værktøjskæden og kompilere kildekoden i maixpy.bin -filen. Detaljerede byggeinstruktioner kan findes her.

Flash den binære fil med

sudo python3 kflash.py kpu.bin

Efter vellykket blinkning skal du gå videre til næste trin.

Trin 2: Opret forbindelse til MaiX Bit

Nu skal vores MaiX Bit være tilgængelig via en seriel USB -forbindelse med baudrate 115200. Du kan bruge din yndlingssoftware til seriel kommunikation eller bare kat- og ekkokommandoer, hvad der passer til dine behov. Jeg brugte skærmen til seriel kommunikation og synes det var meget praktisk.

Kommandoen til oprettelse af en seriel kommunikationssession med skærm er

sudo skærm /dev /ttyUSB0 115200

hvor /dev /ttyUSB0 er adressen på din enhed.

Du skal muligvis trykke på nulstillingsknappen på din mikrokontroller for at se hilsenen og python -fortolkerprompten.

Trin 3: Kør demoerne

Nu kan du få adgang til kopieringstilstand ved at trykke på Ctrl+E og kopiere og indsætte demokoderne. For at køre dem skal du trykke på Ctrl+D i kopieringstilstand.

Hvis du ikke vil optage videoerne, skal du kommentere videooptagelseslinjerne. Ellers vil koden kaste en undtagelse, hvis der ikke er indsat et SD -kort

Her er korte beskrivelser af hver demo:

Find cirkler - bruger funktionen find_circles fra OpenMV. Har brug for flere justeringer til din specifikke applikation, især tærskelværdi (styrer, hvilke cirkler der registreres fra transformationen. Kun cirkler med en størrelse større end eller lig med tærskel returneres) og r_min, r_max værdier.

Find rektangler - bruger funktionen find_rects fra OpenMV. Du kan lege med tærskelværdi, men den værdi, jeg har i demo, fungerer ganske godt til at finde rektangler.

Find ansigter, find øjne - bruger funktionen find_features med Haar Cascades til at registrere øjne og ansigt foran i billedet. Du kan lege med tærskel- og skalaværdier til den rigtige afvejning af hastighedsnøjagtighed.

Find uendelige linjer - bruger funktionen find_lines til at finde alle uendelige linjer i billedet ved hjælp af transformationen.

Find farve - bruger funktionen get_statistics til at opnå percentilobjekt og konverterer derefter middelværdier for LAB -tupel til RGB -værdier tuple. Jeg har selv skrevet dette eksempel, og det fungerer ganske godt, men husk, at resultaterne af farvedetektering påvirkes af omgivende lysforhold.

Du kan finde mange flere interessante demoer i OpenMV github -depot! De er for det meste kompatible med MaiX Bit micropython, det eneste du skal huske er at tilføje sensor.run (1) efter indstilling af pixformat og framesize.

Glade eksperimenter med OpenMV -kode. Hvis du har spørgsmål eller vil dele nogle af dine interessante resultater, tøv ikke med at kontakte mig på Youtube eller LinkedIn. Undskyld, jeg skal lave nogle robotter!

Anbefalede: