Sommario:

Demo Sipeed MaiX Bit OpenMV - Visione artificiale: 3 passaggi
Demo Sipeed MaiX Bit OpenMV - Visione artificiale: 3 passaggi

Video: Demo Sipeed MaiX Bit OpenMV - Visione artificiale: 3 passaggi

Video: Demo Sipeed MaiX Bit OpenMV - Visione artificiale: 3 passaggi
Video: Приложение No Code Edge AI Tool: демонстрация безопасности склада 2024, Luglio
Anonim
Image
Image

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

Connetti a MaiX Bit
Connetti a MaiX Bit

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: