OpenMV
Scudi
Lente
Robotica
Libro
Video
Scaricamento
Documenti
Foro
OpenMV.io
GithubNell'aprile dello scorso anno, il nostro nuovo prodotto OpenMV4 H7 Plus è stato lanciato sul mercato. Oggi vi presenterò la nuova funzionalità di OpenMV4 H7 Plus: utilizzare il sito web online EdgeImpulse per addestrare autonomamente reti neurali al fine di eseguire classificazione e riconoscimento.
In questo tutorial, utilizzerai l'apprendimento automatico per costruire un sistema di riconoscimento che, tramite la telecamera intelligente OpenMV4 H7 Plus, può identificare se una persona indossa una maschera, realizzando così la classificazione delle immagini.

EdgeImpulse è un sito web che fornisce servizi di addestramento online di modelli di reti neurali per dispositivi embedded. È un partner di OpenMV e entrambi sono partner ufficiali di STMicroelectronics. Attualmente, EdgeImpulse è gratuito per gli utenti di OpenMV, consentendo loro di utilizzare la piattaforma per addestrare online modelli di reti neurali compatibili con OpenMV.
L'aggiunta di reti neurali al dispositivo embedded OpenMV consente funzionalità come distinguere bracconieri ed elefanti, eseguire il controllo qualità nelle linee di produzione e permettere a modellini radiocomandati di guidare autonomamente.
In questo tutorial, imparerai come raccogliere immagini per costruire un dataset di alta qualità, come applicare il trasferimento di apprendimento per addestrare una rete neurale e come implementare il sistema su OpenMV.
Inoltre, abbiamo fornito un tutorial video che può essere visualizzato sul sito ufficiale cercando "OpenMV4 Plus: Addestramento della rete neurale per il riconoscimento delle mascherine".
È possibile consultare l'intero contenuto del progetto, inclusi tutti i codici e i modelli, al seguente indirizzo: https://book.openmv.cc/project/mask.html
L'addestramento online di modelli di rete neurale per OpenMV utilizzando EdgeImpulse si articola principalmente nelle seguenti quattro fasi: raccolta del set di dati, caricamento, addestramento e distribuzione.
01、Raccolta del set di dati
In questo tutorial, costruiremo un modello in grado di distinguere se una persona indossa o meno una mascherina. Naturalmente, puoi anche scegliere di classificare altri oggetti. Per far funzionare il modello di apprendimento automatico, è necessario raccogliere un gran numero di immagini di esempio di volti con e senza mascherina. Durante l'addestramento, queste immagini di esempio vengono utilizzate per esercitare il modello nella distinzione.
Dobbiamo utilizzare OpenMV IDE per raccogliere il nostro set di dati. I passaggi per acquisire le immagini sono i seguenti:
Creare due categorie:
Aprire "Strumenti" nella barra dei menu di OpenMV IDE, selezionare "Editor set di dati", fare clic su "Nuovo set di dati", quindi creare una nuova cartella e aprirla. All'interno del set di dati, creare altre due cartelle denominate rispettivamente mask (per salvare foto di volti con mascherina) e face (per salvare foto di volti senza mascherina).


Acquisizione di immagini con OpenMV
Per prima cosa colleghiamo OpenMV, clicchiamo su "Connetti" nell'IDE, quindi su "Esegui". Nel buffer dei fotogrammi possiamo vedere l'immagine in tempo reale di OpenMV. Cliccando sul pulsante della fotografia nella barra dei menu a sinistra, OpenMV salverà automaticamente questa immagine, che rappresenta un dato all'interno del set di dati.
Innanzitutto, dobbiamo salvare i volti delle persone che indossano mascherine. Cliccando sul pulsante della fotocamera, l'IDE scatta un'immagine nella parte inferiore, che viene automaticamente denominata 00000, seguita da 00001 per la successiva, e così via.
Utilizzando OpenMV, acquisire separatamente 200 fotografie di volti con mascherina (100 maschili e 100 femminili) e 200 fotografie di volti senza mascherina (100 maschili e 100 femminili).


Nota: Assicurarsi di acquisire foto da varie angolazioni per garantire la diversità del nostro addestramento e apprendimento.
Se durante la raccolta si scopre che un'immagine non è stata acquisita in modo ottimale, è possibile fare clic con il tasto destro su di essa e selezionare "Elimina".
02、Caricamento
Dopo aver acquisito le immagini con OpenMV, è necessario registrare un account e accedere al sito ufficiale di EdgeImpulse (https://edgeimpulse.com/) per iniziare a caricare le immagini. I passaggi per il caricamento delle immagini sono i seguenti:
Creare un nuovo progetto su EdgeImpulse, fare clic su "keys", selezionare "API Key" e copiare la "API Key". Utilizzare la API Key per stabilire la connessione tra OpenMV IDE e Edge Impulse.

Selezionare "Strumenti" nella barra dei menu superiore di OpenMV IDE, poi "Editor di dati", "Esporta", "Carica", "Carica tramite chiave API", copiare la "Chiave API" e caricare.
Durante il caricamento, i dati verranno automaticamente suddivisi in set di addestramento e set di test. È sufficiente selezionare la proporzione predefinita "80% e 20%". Abbiamo raccolto oltre 400 immagini di volti, di cui l'80% dei Training Date indica che l'80% dei dati viene utilizzato per l'addestramento, mentre il restante 20% viene utilizzato come set di test.


03、Set di dati di addestramento
Il set di dati è pronto, ora puoi addestrare il set di dati nell'interfaccia del sito web di EdgeImpulse.
Modulo di elaborazione della configurazione:
Innanzitutto selezionare "Impulse Design", configurare il modulo di elaborazione:
Impostare le dimensioni predefinite dell'immagine su "96 x 96".
Seleziona il modulo "Immagini" per indicare che stiamo addestrando la classificazione delle immagini (puoi anche utilizzare EdgeImpulse per classificare suoni, video, ecc.).
* Selezionare "Apprendimento per trasferimento (immagini) Transfer Learning (Images)", impostare il modello di apprendimento;
Selezionare "Salva impulso Save", se viene visualizzato "Successfully" significa che la configurazione è stata completata con successo.

Pre-elaborazione delle immagini:
Fare clic su "Immagine" nel menu a sinistra, imposta il formato colore su "RGB", quindi clicca su "Salva".

Successivamente, selezionare "Genera caratteristiche" per avviare il processo, che eseguirà la pre-elaborazione delle immagini su oltre 400 dati, e a destra verrà visualizzata la visualizzazione 3D del set di dati completo.

Configurare il modello di trasferimento dell'apprendimento
Cliccare su "Apprendimento per trasferimento Transfer learning" nel menu a sinistra, selezionare tutti i parametri predefiniti per le impostazioni, oppure modificarli in base alle esigenze:
1. Impostare il numero di cicli di addestramento Number of training cycles su 10 come valore predefinito
2. Impostare il tasso di apprendimento Learning rate a 0,0005
3. È possibile selezionare o meno "Data augmentation
4. Impostare la valutazione di confidenza minima Minimum confidence rating predefinita a 0.8.
Clicca su "Inizia l'allenamento Start training", il processo di allenamento dura circa 4-5 minuti.
Dopo il completamento dell'addestramento del modello, è possibile visualizzare l'accuratezza, la matrice di confusione e le prestazioni attese del dispositivo.

Test del modello:
Dopo il completamento dell'addestramento, utilizzeremo i dati di test per verificare il modello.
Selezionare "Test del modello Model testing", spuntare la casella accanto a "Nome del campione Sample name", fare clic su "Classifica selezionati Classify selected". L'accuratezza mostrata qui raggiunge il 97%, il che è notevole per un modello con dati così limitati.

La scoperta mostra che questa immagine in rosso è incerta. Cliccando sui tre punti a destra dell'immagine e selezionando "Mostra classificazione Show classification", si accederà all'interfaccia "Classificazione in tempo reale", che contiene maggiori dettagli sul file. Questa interfaccia ti aiuterà a determinare il motivo della classificazione errata dell'immagine.

Se i dati si trovano al di fuori di tutti i cluster noti (con o senza mascherina), potrebbero non corrispondere a nessuna categoria precedentemente osservata, forse a causa di capelli che coprono gran parte del volto.
04. Eseguire il modello su OpenMV
Dopo aver completato le fasi di progettazione dell'addestramento, addestramento del modello e validazione del modello, puoi esportare questo modello nel tuo OpenMV. Seleziona "OpenMV", scegli "Build" per la generazione, e verranno automaticamente creati tre file:
trained.tflite modello di rete neurale addestrato
* labels.txt due etichette di classificazione (face e mask)
* ei_image_classification.py è il codice da eseguire su OpenMV

Collegati a OpenMV IDE e salva questi tre file nella memoria Flash integrata di OpenMV. Apri il file ei_image_classification.py in OpenMV IDE per visualizzare il codice generato in EdgeImpulse. Fai clic su Esegui e i risultati dell'esecuzione verranno visualizzati nel terminale seriale.


Bene, hai aggiunto con successo la funzionalità di addestramento autonomo della rete neurale a OpenMV.
Attendo con ansia i tuoi risultati!

Sentinella AI basata su OpenMV: avviso automatico in caso di mancata chiusura di luoghi critici
Rileva automaticamente se la porta di un luogo critico rimane aperta per un periodo prolungato e ne fornisce tempestivamente un avviso.

Allarme in caso di superamento dei confini da parte delle persone; OpenMV interpreta il «senso di sicurezza dei confini»
Rilevamento del superamento di persone o attrezzature oltre una linea di allerta virtuale.

Arriva il «Sistema di gestione urbana basato sull’intelligenza artificiale»: sistema automatico di riconoscimento degli operatori commerciali che occupano abusivamente la strada, realizzato sulla piattaforma OpenMV
Riconoscimento automatico delle attività commerciali che occupano il suolo pubblico, per supportare la gestione quotidiana della città.

Cilindri del gas posizionati in modo non sicuro? Utilizzare OpenMV per attivare automaticamente un avviso di pericolo
Rilevazione automatica delle posizioni non conformi di collocazione delle bombole del gas, al fine di identificare in anticipo i potenziali rischi per la sicurezza del gas.

Lavoro sotto tensione senza guanti isolanti? OpenMV emette immediatamente un allarme!
Riconoscimento automatico dell’indossamento dei guanti isolanti da parte degli operatori, per supportare operazioni sicure.

Utilizzo della telecamera intelligente OpenMV per l’identificazione in tempo reale dei difetti sulla superficie delle lastre di alluminio
Riconoscimento in tempo reale di difetti quali graffi e ammaccature sulla superficie delle lamiere di alluminio, per supportare il controllo della qualità.