Cuprins:
Video: Sipeed MaiX Bit OpenMV Demos - Computer Vision: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
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
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:
Detectarea obiectelor cu plăci Sipeed MaiX (Kendryte K210): 6 pași
Detectarea obiectelor cu plăcile Sipeed MaiX (Kendryte K210): Ca o continuare a articolului meu anterior despre recunoașterea imaginilor cu plăcile Sipeed MaiX, am decis să scriu un alt tutorial, concentrându-mă pe detectarea obiectelor. Recent a apărut un hardware interesant cu cipul Kendryte K210, inclusiv S
Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Accelerometru digital Tutorial: 4 pași
Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Accelerometru digital Tutorial: MMA8452Q este un accelerometru inteligent, de mică putere, cu trei axe, capacitiv, micromachined, cu 12 biți de rezoluție. Opțiuni flexibile programabile de utilizator sunt furnizate cu ajutorul funcțiilor încorporate în accelerometru, configurabile pentru două întreruperi
Cum se rulează motoare servo folosind Moto: bit Cu Micro: bit: 7 pași (cu imagini)
Cum se rulează motoare servo folosind Moto: bit Cu Micro: bit: O modalitate de a extinde funcționalitatea micro: bit este de a utiliza o placă numită moto: bit de SparkFun Electronics (aproximativ 15-20 USD). Arată complicat și are multe caracteristici, dar nu este greu să rulezi servo-motoare de pe acesta. Moto: bit vă permite să
Rucsacul nr. 1: Camera OpenMV: 7 pași
Rucsacul nr. 1: Camera OpenMV: Rucsacurile SPIKE Prime sunt extensii pentru LEGO Education SPIKE Prime. Camera Open MV este creierul pentru Rucsacul camerei care vă permite să integrați procesarea imaginilor și capacitățile de viziune automată ale camerei Open MV la LEGO SPIKE Prime. Noi
Programarea unui micro: Bit Robot & Joystick: Bit Controller cu MicroPython: 11 pași
Programarea unui Micro: Bit Robot & Joystick: Bit Controller With MicroPython: Pentru Robocamp 2019, tabăra noastră de robotică de vară, tinerii cu vârste între 10-13 ani lipesc, programează și construiesc un „robot antweight” bazat pe micro: bit BBC, precum și programează un micro: bit de utilizat ca telecomandă. Dacă vă aflați în prezent la Robocamp, schiați