Sommario:

Rilevatore di tosse tascabile: 7 passaggi
Rilevatore di tosse tascabile: 7 passaggi

Video: Rilevatore di tosse tascabile: 7 passaggi

Video: Rilevatore di tosse tascabile: 7 passaggi
Video: Maranza cerca di prendermi la moto 2024, Novembre
Anonim
Rilevatore di tosse tascabile
Rilevatore di tosse tascabile

Il COVID19 è davvero una pandemia storica che colpisce molto gravemente il mondo intero e le persone stanno costruendo molti nuovi dispositivi per combatterla. Abbiamo inoltre realizzato una macchina di sanificazione automatica e una Pistola Termica per lo screening della temperatura Contactless. Oggi costruiremo un altro dispositivo per aiutare a combattere il Coronavirus. È un sistema di rilevamento della tosse, che può distinguere tra rumore e suono della tosse e può aiutare a trovare il sospetto di Corona. Userà tecniche di apprendimento automatico per questo.

In questo tutorial, costruiremo un sistema di rilevamento della tosse utilizzando Arduino 33 BLE Sense e Edge Impulse Studio. È in grado di distinguere tra il normale rumore di fondo e la tosse nell'audio in tempo reale. Abbiamo utilizzato Edge Impulse Studio per addestrare un set di dati di campioni di tosse e rumore di fondo e creare un modello TInyML altamente ottimizzato, in grado di rilevare un suono di tosse in tempo reale.

Forniture

Hardware

  • Arduino 33 BLE Sense
  • LEDJumper
  • fili

Software

  • Edge Impulse Studio
  • Arduino IDE

Passaggio 1: Schema del circuito

Schema elettrico
Schema elettrico
Schema elettrico
Schema elettrico

Lo schema circuitale per il rilevamento della tosse utilizzando Arduino 33 BLE Sense è riportato sopra. La parte Fritzing per Arduino 33 BLE non era disponibile, quindi ho usato Arduino Nano poiché entrambi hanno lo stesso pin-out.

Il cavo positivo del LED è collegato al pin digitale 4 di Arduino 33 BLE sense e il cavo negativo è collegato al pin GND di Arduino.

Passaggio 2: creazione del set di dati per la macchina per il rilevamento della tosse

Creazione del set di dati per la macchina per il rilevamento della tosse
Creazione del set di dati per la macchina per il rilevamento della tosse

Come accennato in precedenza, stiamo utilizzando Edge Impulse Studio per addestrare il nostro modello di rilevamento della tosse. Per questo, dobbiamo raccogliere un set di dati che ha i campioni di dati che vorremmo essere in grado di riconoscere sul nostro Arduino. Poiché l'obiettivo è rilevare la tosse, dovrai raccogliere alcuni campioni di quella e altri campioni per il rumore, in modo che possa distinguere tra tosse e altri rumori. Creeremo un set di dati con due classi "tosse" e "rumore". Per creare un set di dati, crea un account Edge Impulse, verifica il tuo account e quindi avvia un nuovo progetto. Puoi caricare i campioni utilizzando il tuo cellulare, la tua scheda Arduino o puoi importare un set di dati nel tuo account edge pulse. Il modo più semplice per caricare i campioni nel tuo account è utilizzare il tuo telefono cellulare. Per questo, devi connettere il tuo cellulare con Edge Impulse. Per connettere il tuo telefono cellulare, fai clic su "Dispositivi" e quindi su "Connetti un nuovo dispositivo".

Passaggio 3: connettersi al telefono cellulare

Connetti al cellulare
Connetti al cellulare

Ora nella finestra successiva, fai clic su "Usa il tuo telefono cellulare" e apparirà un codice QR. Scansiona il codice QR con il tuo telefono cellulare utilizzando Google Lens o un'altra app per scanner di codici QR.

Questo collegherà il tuo telefono con Edge Impulse Studio.

Con il telefono connesso a Edge Impulse Studio, ora puoi caricare i tuoi campioni. Per caricare i campioni, fare clic su "Acquisizione dati". Ora nella pagina Acquisizione dati, inserisci il nome dell'etichetta, seleziona il microfono come sensore e inserisci la lunghezza del campione. Fare clic su "Avvia campionamento" per avviare il campionamento di un campione di 40 Sec. Invece di costringerti a tossire, puoi usare campioni di tosse online di diverse lunghezze. Registrare un totale di 10-12 campioni di tosse di diverse lunghezze.

Passaggio 4:

Immagine
Immagine
Immagine
Immagine

Dopo aver caricato i campioni di tosse, ora imposta l'etichetta su "rumore" e raccogli altri 10-12 campioni di rumore.

Questi campioni sono per l'addestramento del modulo, nei passaggi successivi raccoglieremo i dati del test. I dati del test dovrebbero essere almeno il 30% dei dati di allenamento, quindi raccogli i 3 campioni di "rumore" e da 4 a 5 campioni di "tosse". Invece di raccogliere i tuoi dati, puoi importare il nostro set di dati nel tuo account Edge Impulse utilizzando Edge Caricatore CLI di impulso. Per installare CLI Uploader, innanzitutto scarica e installa Node.js sul tuo laptop. Successivamente, apri il prompt dei comandi e inserisci il comando seguente:

npm install -g edge-impulse-cli

Ora scarica il set di dati (Dataset Link) ed estrai il file nella cartella del tuo progetto. Apri il prompt dei comandi e vai alla posizione del set di dati ed esegui i comandi seguenti:

edge-impulse-uploader --cleanedge-impulse-uploader --category training training/*.json

edge-impulse-uploader --categoria training training/*.cbor

edge-impulse-uploader --category testing testing/*.json edge-impulse-uploader --category testing testing/*.cbor

Passaggio 5: addestrare il modello e modificare il codice

Quando il set di dati è pronto, ora creeremo un impulso per i dati. Per questo vai alla pagina "Crea impulso".

Ora nella pagina "Crea impulso", fai clic su "Aggiungi un blocco di elaborazione". Nella finestra successiva, seleziona il blocco Audio (MFCC). Successivamente, fai clic su "Aggiungi un blocco di apprendimento" e seleziona il blocco Rete neurale (Keras). Quindi fare clic su "Salva impulso".

Nel passaggio successivo, vai alla pagina MFCC e quindi fai clic su "Genera funzionalità". Genererà blocchi MFCC per tutte le nostre finestre di audio.

Successivamente, vai alla pagina "Classificatore NN" e fai clic sui tre punti nell'angolo in alto a destra delle "Impostazioni della rete neurale" e seleziona "Passa alla modalità Keras (esperto)".

Sostituisci l'originale con il seguente codice e modifica la "Valutazione di confidenza minima" in "0,70". Quindi fare clic sul pulsante "Inizia formazione". Inizierà ad addestrare il tuo modello.

import tensorflow as tffrom tensorflow.keras.models import Sequential da tensorflow.keras.layers import Dense, InputLayer, Dropout, Flatten, Reshape, BatchNormalization, Conv2D, MaxPooling2D, AveragePooling2D da tensorflow.keras.optimizers import Adam da tensorflow.keras. MaxNorm # architettura del modello model = Sequential() model.add(InputLayer(input_shape=(X_train.shape[1],), name='x_input')) model.add(Reshape((int(X_train.shape[1] / 13), 13, 1), input_shape=(X_train.shape[1],))) model.add(Conv2D(10, kernel_size=5, attivazione='relu', padding='same', kernel_constraint=MaxNorm(3))) model.add(AveragePooling2D(pool_size=2, padding='same')) model.add(Conv2D(5, kernel_size=5,activate='relu', padding='same', kernel_constraint=MaxNorm(3))) model.add(AveragePooling2D(pool_size=2, padding='same')) model.add(Flatten()) model.add(Dense(classes,activate='softmax', name='y_pred', kernel_constraint=MaxNorm (3))) # controlla il tasso di apprendimento opt = Adam(lr=0.005, beta_ 1=0.9, beta_2=0.999) # addestra la rete neurale model.compile(loss='categorical_crossentropy', Optimizer=opt, metrics=['accuracy']) model.fit(X_train, Y_train, batch_size=32, epochs=9, validation_data=(X_test, Y_test), verbose=2)

Passaggio 6:

Dopo aver addestrato il modello, mostrerà le prestazioni di addestramento. Per me, la precisione era del 96,5% e la perdita era di 0,10, quindi è bene procedere.

Ora che il nostro modello di rilevamento della tosse è pronto, implementeremo questo modello come libreria Arduino. Prima di scaricare il modello come libreria, puoi testare le prestazioni andando alla pagina "Classificazione in tempo reale". Vai alla pagina "Distribuzione" e seleziona "Libreria Arduino". Ora scorri verso il basso e fai clic su "Crea" per avviare il processo. Questo creerà una libreria Arduino per il tuo progetto.

Ora aggiungi la libreria nel tuo IDE Arduino. Per questo apri l'IDE di Arduino e quindi fai clic su Schizzo> Includi libreria> Aggiungi libreria ZIP. Quindi, carica un esempio andando su File > Esempi > Nome del tuo progetto - Edge Impulse > nano_ble33_sense_microphone. Apportiamo alcune modifiche al codice in modo da poter emettere un suono di avviso quando Arduino rileva la tosse. Per questo, un cicalino è interfacciato con Arduino e ogni volta che rileva la tosse, il LED lampeggerà tre volte. Le modifiche vengono apportate nelle funzioni void loop() dove stampa i valori di rumore e tosse. Nel codice originale, stampa insieme sia le etichette che i loro valori. for (size_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) { ei_printf(" %s: %.5f\n", risultato.classificazione[ix].label, risultato.classificazione[ix].valore); }Salveremo i valori del rumore e della tosse in diverse variabili e confronteremo i valori del rumore. Se il valore del rumore scende sotto 0,50 significa che il valore della tosse è maggiore di 0,50 e farà il suono. Sostituisci il codice for loop() originale con questo: for (size_t ix = 1; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) { Serial.print(result.classification[ix].value); float Dati = risultato.classificazione[ix].valore; if (Dati < 0,50){ Serial.print("Rilevata tosse"); allarme(); } }Dopo aver apportato le modifiche, carica il codice nel tuo Arduino. Aprire il monitor seriale a 115200 baud.

Quindi è così che può essere costruita una macchina per il rilevamento della tosse, non è un metodo molto efficace per trovare qualsiasi sospetto COVID19 ma può funzionare bene in alcune aree affollate.

Passaggio 7: codice

Si prega di trovare il file allegato, E se ti è piaciuto non dimenticare di votarmi nel contest qui sotto.

Consigliato: