Cuprins:

Sipeed MaiX Bit OpenMV Demos - Computer Vision: 3 pași
Sipeed MaiX Bit OpenMV Demos - Computer Vision: 3 pași

Video: Sipeed MaiX Bit OpenMV Demos - Computer Vision: 3 pași

Video: Sipeed MaiX Bit OpenMV Demos - Computer Vision: 3 pași
Video: Unpacking and OpenMV Demos Sipeed MaiX Bit 2024, Noiembrie
Anonim
Image
Image

Acesta este al doilea articol din serie despre Sipeed AI pe platforma de microcontroler Edge. De data aceasta voi scrie despre MaiX Bit (link către Seeed Studio Shop), o placă de dezvoltare mai mică, pregătită pentru panou. Specificațiile sale sunt foarte asemănătoare cu MaiX Dock, placa pe care am folosit-o pentru ultimul tutorial, deoarece folosesc același cip, Kendryte K210.

Vom folosi firmware-ul micropython pentru a încerca câteva demonstrații OpenMV. Iată descrierea de pe pagina de pornire OpenMV:

Proiectul OpenMV se referă la crearea de module de viziune automată, extensibile, Python, cu costuri reduse, care urmărește să devină „Arduino of Machine Vision“. … Python simplifică mult lucrul cu algoritmii de viziune a mașinilor. De exemplu, metoda find_blobs () din cod găsește bloburi de culoare și returnează o listă de obiecte cu 8 valori reprezentând fiecare blob de culoare găsit. În Python iterarea prin lista de obiecte returnate de find_blobs () și desenarea unui dreptunghi în jurul fiecărui blob de culoare se face cu ușurință în doar două linii de cod.

Deci, în ciuda faptului că MaiX Bit are accelerator de rețea neuronal dedicat, uneori ar putea fi mai ușor să folosiți doar algoritmi OpenMV codați pentru a face treaba sau să-i folosiți unul lângă celălalt.

Unele cazuri de utilizare care îmi vin în minte sunt:

1) Detectarea liniei pentru botul de linie

2) Detectarea semaforelor cu detectarea cercului și a culorii

3) Utilizarea detectării feței pentru a găsi fețele pentru recunoașterea feței (cu DNN)

Depozit Github pentru acest articol

Pasul 1: Firmware Flash Micropython

Conectați-vă la MaiX Bit
Conectați-vă la MaiX Bit

Mai întâi de toate, va trebui să blochăm firmware-ul micropython pe placa noastră. Un binar precompilat este inclus în depozitul github pentru acest articol, împreună cu kflash.py (un utilitar flash). Dacă doriți să compilați firmware-ul din codul sursă, descărcați codul sursă de la https://github.com/sipeed/MaixPy, instalați lanțul de instrumente și compilați codul sursă în fișierul maixpy.bin. Instrucțiuni detaliate de construcție pot fi găsite aici.

Flashează fișierul binar cu

sudo python3 kflash.py kpu.bin

După ce clipiți cu succes, treceți la pasul următor.

Pasul 2: Conectați-vă la MaiX Bit

Acum, Bit-ul nostru MaiX ar trebui să fie accesibil printr-o conexiune serială USB cu viteză de transfer 115200. Puteți utiliza software-ul dvs. preferat pentru comunicarea serială sau doar comenzi cat și ecou, indiferent de nevoile dvs. Foloseam ecranul pentru comunicarea în serie și mi se pare foarte convenabil.

Comanda pentru stabilirea unei sesiuni de comunicare în serie cu ecran este

sudo screen / dev / ttyUSB0 115200

unde / dev / ttyUSB0 este adresa dispozitivului dvs.

Este posibil să trebuiască să apăsați butonul de resetare a microcontrolerului pentru a vedea mesajul de întâmpinare și solicitarea interpretorului python.

Pasul 3: Rulați Demo-urile

Acum puteți accesa modul copiere apăsând Ctrl + E și copiați-lipiți codurile demo. Pentru a le rula, apăsați Ctrl + D în modul copiere.

Dacă nu doriți să înregistrați videoclipurile, trebuie să comentați liniile de înregistrare video. În caz contrar, codul va face o excepție dacă nu este introdus niciun card SD

Iată scurte descrieri ale fiecărei demonstrații:

Găsiți cercuri - folosește funcția find_circles din OpenMV. Necesită mai multe modificări pentru aplicația dvs. specifică, în special pragul (controlează ce cercuri sunt detectate din transformarea hough. Se returnează numai cercurile cu o magnitudine mai mare sau egală cu pragul) și valorile r_min, r_max.

Găsiți dreptunghiuri - folosește funcția find_rects din OpenMV. Puteți juca cu valoarea prag, dar valoarea pe care o am în demo funcționează destul de bine pentru a găsi dreptunghiuri.

Găsiți fețe, găsiți ochi - folosește funcția find_features cu Haar Cascades pentru detectarea ochilor și a feței frontale din imagine. Puteți juca cu valori de prag și scară pentru un compromis corect cu precizia vitezei.

Găsiți linii infinite - folosește funcția find_lines pentru a găsi toate liniile infinite din imagine folosind transformarea hough.

Detectează culoarea - folosește funcția get_statistics pentru a obține obiectul percentilă și apoi convertește valorile medii ale tuplului LAB în tuplul valorilor RGB. Am scris eu acest exemplu și funcționează destul de bine, dar rețineți că rezultatele detectării culorii vor fi afectate de condițiile de lumină ambientală.

Puteți găsi mai multe demonstrații interesante în depozitul github OpenMV! Acestea sunt în mare parte compatibile cu micropitonul MaiX Bit, singurul lucru pe care trebuie să-l amintiți este să adăugați senzor.run (1) după setarea pixformatului și a dimensiunii cadrului.

Experimentare fericită cu codul OpenMV. Dacă aveți întrebări sau doriți să împărtășiți unele dintre rezultatele dvs. interesante, nu ezitați să mă contactați pe Youtube sau LinkedIn. Acum, scuză-mă, mă duc să fac niște roboți!

Recomandat: