13.6. Edge Impulse

Edge Impulse è una piattaforma end-to-end per la creazione di modelli di machine learning eseguibili su microcontrollori: consente di raccogliere ed etichettare i dati, progettare e addestrare un modello nel browser e ottimizzarlo per adattarlo a un dispositivo con risorse misurate in kilobyte. Il deployment su OpenMV è immediato: con pochi clic un modello addestrato diventa un insieme di file pronti per essere eseguiti sulla camera. La documentazione di Edge Impulse approfondisce ogni passaggio.

13.6.1. Importazione dei dati

Un modello offre le prestazioni migliori sul tipo di immagini con cui è stato addestrato, quindi è bene acquisire il dataset con la stessa camera che lo eseguirà. L’editor di dataset dell’IDE (dataset editor) è pensato esattamente per questo: permette di creare cartelle di classi, acquisire immagini etichettate dal frame buffer in tempo reale e poi caricare il dataset direttamente in un progetto Edge Impulse dal sottomenu Export (è necessario aver effettuato prima l’accesso al proprio account). Da quel momento in poi si lavora in Edge Impulse Studio.

Vedi anche

La guida alla configurazione di OpenMV Cam di Edge Impulse spiega come installare gli strumenti e collegare la camera.

13.6.2. Addestramento

L’addestramento avviene interamente nel browser: si progetta un impulse (i blocchi di input, elaborazione e apprendimento), lo si addestra e si verifica l’accuratezza sui dati di test riservati.

Due tipi di modello sono adatti alla camera. Un classificatore di immagini produce un elenco di punteggi per classe, che si leggono direttamente dall’output del modello, senza bisogno di alcun post-processor. FOMO, un rilevatore di oggetti veloce progettato per microcontrollori, richiede un passaggio di decodifica, e la camera include un post-processor dedicato (ml.postprocessing.edgeimpulse), così anche questi modelli funzionano senza codice aggiuntivo.

13.6.3. Deployment sulla camera

Al termine dell’addestramento, apri la pagina Deployment del progetto, scegli il target OpenMV Library e fai clic su Build. Il download è un file zip che contiene il modello addestrato (trained.tflite), le sue etichette (labels.txt) e uno script di esempio. Il modello è quantizzato in interi. Edge Impulse illustra questo aspetto e l’alternativa con firmware personalizzato nella sua guida all’esecuzione su OpenMV.

Aggiungi il file .tflite alla camera con l’editor ROMFS dell’IDE (ROMFS editor), che lo converte per la NPU della scheda quando ne è dotata, e caricalo in uno script con ml.Model. I modelli possono anche essere eseguiti dall’unità flash della camera (basta copiare i file e indicare il percorso a ml.Model), ma ROMFS è la posizione migliore: i modelli lì vengono eseguiti direttamente dalla flash senza una copia in RAM.

Vedi anche

Il capitolo sul machine learning spiega come eseguire i modelli con il modulo ml: il caricamento, la pipeline di inferenza e la decodifica dell’output.