Sommario:
- Passaggio 1: firmware Flash Micropython
- Passaggio 2: Connetti a MaiX Bit
- Passaggio 3: esegui le demo
Video: Demo Sipeed MaiX Bit OpenMV - Visione artificiale: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Questo è il secondo articolo della serie su Sipeed AI sulla piattaforma di microcontrollori Edge. Questa volta scriverò di MaiX Bit (link a Seeed Studio Shop), una scheda di sviluppo più piccola e pronta per la breadboard. Le sue specifiche sono molto simili a MaiX Dock, la scheda che ho usato per l'ultimo tutorial, poiché usano lo stesso chip, Kendryte K210.
Useremo il firmware micropython per provare alcune demo OpenMV. Ecco la descrizione dalla homepage di OpenMV:
Il progetto OpenMV riguarda la creazione di moduli di visione artificiale a basso costo, estensibili, alimentati da Python e mira a diventare l'"Arduino della visione artificiale"…. Python rende molto più semplice lavorare con gli algoritmi di visione artificiale. Ad esempio, il metodo find_blobs() nel codice trova i blob di colore e restituisce un elenco di oggetti a 8 valori che rappresentano ogni blob di colore trovato. In Python l'iterazione attraverso l'elenco di oggetti restituiti da find_blobs() e il disegno di un rettangolo attorno a ciascun blob di colore è facilmente eseguibile in sole due righe di codice.
Quindi, nonostante MaiX Bit disponga di un acceleratore di rete neurale dedicato, a volte potrebbe essere più semplice utilizzare algoritmi hardcoded OpenMV per eseguire il lavoro o utilizzarli insieme.
Alcuni casi d'uso che mi vengono in mente sono:
1) Rilevamento della linea per il bot follower di linea
2) Rilevamento dei semafori con rilevamento del cerchio e del colore
3) Utilizzo del rilevamento del volto per trovare i volti per il riconoscimento del volto (con DNN)
Repository Github per questo articolo
Passaggio 1: firmware Flash Micropython
Prima di tutto avremo bisogno di flashare il firmware di micropython sulla nostra scheda. Un binario precompilato è incluso nel repository github per questo articolo, insieme a kflash.py (un'utilità flash). Se desideri compilare il firmware dal codice sorgente, scarica il codice sorgente da https://github.com/sipeed/MaixPy, installa la toolchain e compila il codice sorgente nel file maixpy.bin. Le istruzioni dettagliate per la costruzione possono essere trovate qui.
Flashare il file binario con
sudo python3 kflash.py kpu.bin
Dopo aver lampeggiato con successo, seguire il passaggio successivo.
Passaggio 2: Connetti a MaiX Bit
Ora il nostro MaiX Bit dovrebbe essere accessibile tramite una connessione seriale USB con baudrate 115200. Puoi usare il tuo software preferito per la comunicazione seriale o semplicemente i comandi cat ed echo, qualunque cosa si adatti alle tue esigenze. Stavo usando lo schermo per la comunicazione seriale e lo trovo molto conveniente.
Il comando per stabilire una sessione di comunicazione seriale con lo schermo è
sudo screen /dev/ttyUSB0 115200
dove /dev/ttyUSB0 è l'indirizzo del tuo dispositivo.
Potrebbe essere necessario premere il pulsante di ripristino sul microcontrollore per visualizzare il messaggio di saluto e il prompt dell'interprete Python.
Passaggio 3: esegui le demo
Ora puoi accedere alla modalità copia premendo Ctrl+E e copia e incolla i codici demo. Per eseguirli premi Ctrl+D in modalità copia.
Se non vuoi registrare i video, devi commentare le righe di registrazione video. Altrimenti il codice genererà un'eccezione se non è inserita alcuna scheda SD
Ecco una breve descrizione di ogni demo:
Trova cerchi: utilizza la funzione find_circles di OpenMV. Ha bisogno di ulteriori modifiche per la tua applicazione specifica, in particolare la soglia (controlla quali cerchi vengono rilevati dalla trasformazione di hough. Vengono restituiti solo i cerchi con una grandezza maggiore o uguale alla soglia) e i valori r_min, r_max.
Trova rettangoli: utilizza la funzione find_rects di OpenMV. Puoi giocare con il valore di soglia, ma il valore che ho nella demo funziona abbastanza bene per trovare i rettangoli.
Trova volti, trova occhi: utilizza la funzione find_features con Haar Cascades per rilevare gli occhi e la faccia frontale nell'immagine. Puoi giocare con i valori di soglia e di scala per il giusto compromesso tra velocità e precisione.
Trova linee infinite: usa la funzione find_lines per trovare tutte le linee infinite nell'immagine usando la trasformata di hough.
Rileva colore: utilizza la funzione get_statistics per ottenere l'oggetto percentile e quindi converte i valori medi della tupla LAB in tupla con valori RGB. Ho scritto questo esempio da solo e funziona abbastanza bene, ma tieni presente che i risultati del rilevamento del colore saranno influenzati dalle condizioni di luce ambientale.
Puoi trovare molte altre demo interessanti nel repository github di OpenMV! Sono per lo più compatibili con MaiX Bit micropython, l'unica cosa che devi ricordare è aggiungere sensor.run (1) dopo aver impostato il formato pix e la dimensione del fotogramma.
Buona sperimentazione con il codice OpenMV. Se hai domande o vuoi condividere alcuni dei tuoi risultati interessanti, non esitare a contattarmi su Youtube o LinkedIn. Ora, scusami, vado a fare dei robot!
Consigliato:
Rilevamento di oggetti con schede Sipeed MaiX (Kendryte K210): 6 passaggi
Rilevamento di oggetti con le schede Sipeed MaiX (Kendryte K210): come continuazione del mio precedente articolo sul riconoscimento delle immagini con le schede Sipeed MaiX, ho deciso di scrivere un altro tutorial, incentrato sul rilevamento di oggetti. Recentemente è apparso un hardware interessante con il chip Kendryte K210, incluso S
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: 6 passaggi (con immagini)
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: Ehi, come va, ragazzi! Akarsh qui da CETech. In questo progetto, daremo un'occhiata all'HuskyLens di DFRobot. È un modulo fotocamera basato sull'intelligenza artificiale in grado di eseguire diverse operazioni di intelligenza artificiale come Face Recognitio
L'intelligenza artificiale nel robot labirinto LEGO EV3: 13 passaggi
AI in LEGO EV3 Robot Maze-Driving: questo è un robot semplice e autonomo con una certa intelligenza artificiale. È progettato per esplorare un labirinto e quando viene riposto all'ingresso, per guidare fino all'uscita ed evitare i vicoli ciechi. È molto più complicato del mio progetto precedente, ma
Come creare un'intelligenza artificiale Parte 2: 9 passaggi
Come creare un'intelligenza artificiale Parte 2: Questa è la parte 2 sui passaggi che ho eseguito per creare un'intelligenza artificiale su un computer Windows, utilizzando un database gratuito, uno strumento di sviluppo della programmazione e il motore TTS integrato gratuito fornito con Windows. La parola "Windows" appartiene a Microsoft.La parola "Dra
Come creare un'intelligenza artificiale Parte 4: 3 passaggi
Come creare un'intelligenza artificiale Parte 4: L'altro giorno stavo parlando con la mia intelligenza artificiale e gli ho detto: "Sto andando di sopra a cena, stiamo mangiando BISTECCA". Tuttavia, il software di riconoscimento vocale (SR) ha interpretato questo come "… stiamo avendo STAKE "Mi sono imbattuto in un problema all'orecchio simile (ma diverso)