Sommario:
- Forniture
- Passaggio 1: Schema del circuito
- Passaggio 2: creazione del set di dati per la macchina per il rilevamento della tosse
- Passaggio 3: connettersi al telefono cellulare
- Passaggio 4:
- Passaggio 5: addestrare il modello e modificare il codice
- Passaggio 6:
- Passaggio 7: codice
Video: Rilevatore di tosse tascabile: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
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
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
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
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:
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:
Misuratore di tensione CC tascabile fai-da-te: 5 passaggi
Misuratore di tensione CC tascabile fai da te: in questo tutorial ti mostrerò come realizzare un voltmetro CC tascabile fai-da-te con cicalino piezoelettrico per il controllo del circuito da solo. Tutto ciò di cui hai bisogno è una conoscenza di base in elettronica e un po' di tempo. Se hai domande o problemi puoi c
Visualizzatore di segnali tascabile (oscilloscopio tascabile): 10 passaggi (con immagini)
Pocket Signal Visualizer (oscilloscopio tascabile): Ciao a tutti, stiamo facendo così tante cose ogni giorno. Per ogni lavoro c'è bisogno di alcuni strumenti. Questo è per fare, misurare, rifinire ecc. Quindi per i lavoratori elettronici, hanno bisogno di strumenti come saldatore, multimetro, oscilloscopio, ecc
Rilevatore tascabile di CO (monossido di carbonio): 5 passaggi
Rilevatore di CO tascabile (monossido di carbonio): come dice il nome, questo è un rilevatore di CO tascabile che viene utilizzato per rilevare il monossido di carbonio nell'aria, il nostro obiettivo era quello di rendere questo dispositivo portatile e che si adattasse alle dimensioni tascabili. problema dell'inquinamento atmosferico dovuto all'industrializzazione ev
Rilevatore di fumo IOT: aggiorna il rilevatore di fumo esistente con IOT: 6 passaggi (con immagini)
Rilevatore di fumo IOT: aggiorna il rilevatore di fumo esistente con IOT: elenco dei contributori, Inventore: Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Supervisore: Dr Chia Kim Seng Dipartimento di ingegneria meccatronica e robotica, Facoltà di ingegneria elettrica ed elettronica, Universiti Tun Hussein Onn Malaysia.Distribuzione
Il LED USB più cool Luce tascabile (ingresso tascabile): 6 passaggi
Il LED USB più cool Luce tascabile (ingresso tascabile): in questo Instructable, ti mostrerò come realizzare un LED alimentato tramite USB. leggero che può essere ripiegato nelle dimensioni di una lattina di X-it Mints e può stare facilmente in tasca. Se ti piace, assicurati di + e votami per il concorso! I materiali e