Satura rādītājs:
- Piegādes
- 1. darbība: shēmas shēma
- 2. darbība. Datu kopas izveide klepus noteikšanas mašīnai
- 3. darbība: izveidojiet savienojumu ar mobilo tālruni
- 4. solis:
- 5. solis: modeļa apmācība un koda pielāgošana
- 6. darbība
- 7. solis: kods
Video: Kabatas izmēra klepus detektors: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Covid19 patiešām ir vēsturiska pandēmija, kas ļoti slikti ietekmē visu pasauli, un cilvēki veido daudz jaunu ierīču, lai ar to cīnītos. Mēs esam izveidojuši arī automātisku dezinfekcijas mašīnu un termisko pistoli bezkontakta temperatūras pārbaudei. Šodien mēs izveidosim vēl vienu ierīci cīņai ar koronavīrusu. Tā ir klepus noteikšanas sistēma, kas var atšķirt troksni un klepus skaņu un var palīdzēt atrast aizdomās turēto par koronavīrusu. Tam tiks izmantotas mašīnmācīšanās metodes.
Šajā apmācībā mēs izveidosim klepus noteikšanas sistēmu, izmantojot Arduino 33 BLE Sense un Edge Impulse Studio. Tas var atšķirt parasto fona troksni un klepu reālā laika audio. Mēs izmantojām Edge Impulse Studio, lai apmācītu klepus un fona trokšņa paraugu datu kopu un izveidotu ļoti optimizētu TInyML modeli, kas reālā laikā var noteikt klepus skaņu.
Piegādes
Aparatūra
- Arduino 33 BLE Sense
- LEDJumper
- Vadi
Programmatūra
- Edge Impulse Studio
- Arduino IDE
1. darbība: shēmas shēma
Ķēdes shēma klepus noteikšanai, izmantojot Arduino 33 BLE Sense, ir dota iepriekš. Arduino 33 BLE putojošā daļa nebija pieejama, tāpēc es izmantoju Arduino Nano, jo abiem ir vienāda tapas.
Gaismas diodes pozitīvais vads ir savienots ar Arduino 33 BLE sensoru 4. ciparu tapu, un negatīvais vads ir pievienots Arduino GND tapai.
2. darbība. Datu kopas izveide klepus noteikšanas mašīnai
Kā minēts iepriekš, mēs izmantojam Edge Impulse Studio, lai apmācītu savu klepus noteikšanas modeli. Šim nolūkam mums ir jāapkopo datu kopa, kurā ir datu paraugi, kurus mēs vēlētos atpazīt savā Arduino. Tā kā mērķis ir atklāt klepu, jums ir jāapkopo daži tā paraugi un daži citi paraugi trokšņa dēļ, lai varētu atšķirt klepu un citus trokšņus. Mēs izveidosim datu kopu ar divām klasēm “klepus” un “troksnis”. Lai izveidotu datu kopu, izveidojiet Edge Impulse kontu, pārbaudiet savu kontu un pēc tam sāciet jaunu projektu. Jūs varat ielādēt paraugus, izmantojot savu mobilo tālruni, savu Arduino dēli vai importēt datu kopu savā malas impulsa kontā. Vienkāršākais veids, kā ievietot paraugus savā kontā, ir izmantot mobilo tālruni. Lai to izdarītu, mobilais tālrunis ir jāsavieno ar Edge Impulse. Lai savienotu savu mobilo tālruni, noklikšķiniet uz “Ierīces” un pēc tam noklikšķiniet uz “Savienot jaunu ierīci”.
3. darbība: izveidojiet savienojumu ar mobilo tālruni
Tagad nākamajā logā noklikšķiniet uz “Izmantot savu mobilo tālruni”, un parādīsies QR kods. Skenējiet QR kodu ar savu mobilo tālruni, izmantojot Google Lens vai citu QR kodu skenera lietotni.
Tādējādi tālrunis tiks savienots ar Edge Impulse studio.
Kad tālrunis ir savienots ar Edge Impulse Studio, tagad varat ielādēt savus paraugus. Lai ielādētu paraugus, noklikšķiniet uz “Datu iegūšana”. Tagad lapā Datu iegūšana ievadiet etiķetes nosaukumu, atlasiet mikrofonu kā sensoru un ievadiet parauga garumu. Noklikšķiniet uz “Sākt paraugu ņemšanu”, lai sāktu 40 sek parauga paraugu ņemšanu. Tā vietā, lai piespiestu sevi klepus, varat izmantot dažāda garuma tiešsaistes klepus paraugus. Ierakstiet kopā 10 līdz 12 dažāda garuma klepus paraugus.
4. solis:
Pēc klepus paraugu augšupielādes iestatiet etiķeti uz “troksnis” un savāc vēl 10 līdz 12 trokšņa paraugus.
Šie paraugi ir paredzēti moduļa apmācībai, nākamajos soļos mēs apkoposim testa datus. Pārbaudes datiem jābūt vismaz 30% no apmācības datiem, tāpēc savāciet trīs “trokšņa” un 4–5 “klepus” paraugus. Tā vietā, lai apkopotu savus datus, varat importēt mūsu datu kopu savā Edge Impulse kontā, izmantojot Edge Impulsu CLI augšupielādētājs. Lai instalētu CLI augšupielādētāju, vispirms lejupielādējiet un instalējiet Node.js savā klēpjdatorā. Pēc tam atveriet komandu uzvedni un ievadiet zemāk esošo komandu:
npm instalēt -g edge-impulse-cli
Tagad lejupielādējiet datu kopu (datu kopas saite) un izvelciet failu savā projekta mapē. Atveriet komandu uzvedni un dodieties uz datu kopas atrašanās vietu un palaidiet tālāk norādītās komandas.
malas impulsa augšupielādētājs-tīrīšanas-impulsa augšupielādētājs-kategorijas apmācība/*. json
malas impulsu augšupielādētājs-kategorijas apmācība/*. cbor
malas impulsa augšupielādētājs-kategorijas testēšana/*. json edge-impulse-uploader-kategorijas testēšana/*. cbor
5. solis: modeļa apmācība un koda pielāgošana
Tā kā datu kopa ir gatava, tagad mēs radīsim impulsu datiem. Lai to izdarītu, dodieties uz lapu “Izveidot impulsu”.
Tagad lapā “Izveidot impulsu” noklikšķiniet uz “Pievienot apstrādes bloku”. Nākamajā logā atlasiet audio (MFCC) bloku. Pēc tam noklikšķiniet uz “Pievienot mācību bloku” un atlasiet neironu tīkla (Keras) bloku. Pēc tam noklikšķiniet uz “Saglabāt impulsu”.
Nākamajā solī dodieties uz MFCC lapu un pēc tam noklikšķiniet uz “Ģenerēt funkcijas”. Tas ģenerēs MFCC blokus visiem mūsu audio logiem.
Pēc tam dodieties uz lapu “NN klasifikators” un noklikšķiniet uz trim punktiem “Neironu tīkla iestatījumu” augšējā labajā stūrī un atlasiet “Pārslēgties uz Keras (ekspertu) režīmu”.
Nomainiet oriģinālu ar šādu kodu un mainiet “Minimālais ticamības vērtējums” uz “0,70”. Pēc tam noklikšķiniet uz pogas “Sākt apmācību”. Tas sāks apmācīt jūsu modeli.
importēt tensorflow kā tffor tensorflow.keras.models importēt secīgi no tensorflow.keras.layers importēt blīvus, InputLayer, Dropout, Flatten, Reshape, BatchNormalization, Conv2D, MaxPooling2D, AveragePooling2D no tensorflow.keras.optimimizers importēt no MaxNorm # modeļa arhitektūras modelis = Secīga () 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, aktivizēšana = 'relu', polsterējums = 'tas pats', kernel_constraint = MaxNorm (3)))) model.add (AveragePooling2D (pool_size = 2, padding = 'same')) model.add (Conv2D (5, kernel_size = 5, aktivizācija = 'relu', padding = 'same', kernel_constraint = MaxNorm (3))]) model.add (AveragePooling2D (pool_size = 2, padding = 'same')) model.add (Flatten ()) model.add (Blīvs (klases, aktivizēšana = 'softmax', name = 'y_pred', kernel_constraint = MaxNorm) (3))) # tas kontrolē mācīšanās ātruma izvēli = Ādams (lr = 0,005, beta_ 1 = 0,9, beta_2 = 0,999) # apmācīt neironu tīkla modeli. Apkopot (zudums = 'kategoriska_crossentropija', optimizētājs = izvēlēties, metrika = ['precizitāte']) model.fit (X_train, Y_train, batch_size = 32, epochs = 9, validation_data = (X_test, Y_test), detalizēts = 2)
6. darbība
Pēc modeļa apmācības tas parādīs mācību sniegumu. Manuprāt, precizitāte bija 96,5%, bet zaudējums - 0,10, tāpēc ir labi turpināt.
Tagad, kad mūsu klepus noteikšanas modelis ir gatavs, mēs šo modeli izmantosim kā Arduino bibliotēku. Pirms modeļa lejupielādes kā bibliotēkas varat pārbaudīt veiktspēju, dodoties uz lapu “Live Classification”. Dodieties uz lapu “Izvietošana” un atlasiet “Arduino bibliotēka”. Tagad ritiniet uz leju un noklikšķiniet uz “Veidot”, lai sāktu procesu. Tas jūsu projektam izveidos Arduino bibliotēku.
Tagad pievienojiet bibliotēku savā Arduino IDE. Lai to izdarītu, atveriet Arduino IDE un pēc tam noklikšķiniet uz Skice> Iekļaut bibliotēku> Pievienot. ZIP bibliotēka. Pēc tam ielādējiet piemēru, dodoties uz Fails> Piemēri> Jūsu projekta nosaukums - Edge Impulse> nano_ble33_sense_microphone. Mēs veiksim dažas izmaiņas kodā, lai mēs varētu brīdināt, kad Arduino atklāj klepu. Šim nolūkam skaņas signāls ir savienots ar Arduino un, kad tas atklāj klepu, gaismas diode mirgos trīs reizes. Izmaiņas tiek veiktas void loop () funkcijās, kurās tiek drukātas trokšņa un klepus vērtības. Sākotnējā kodā tas drukā gan etiķetes, gan to vērtības kopā. par (size_t ix = 0; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {ei_printf (" %s: %.5f / n", result.classification [ix].label, result.classification [ix].value); } Mēs saglabāsim gan trokšņa, gan klepus vērtības dažādos mainīgos un salīdzināsim trokšņa vērtības. Ja trokšņa vērtība ir zemāka par 0,50, tas nozīmē, ka klepus vērtība ir lielāka par 0,50, un tā radīs skaņu. Aizstājiet cilpas () koda oriģinālu ar šādu: for (size_t ix = 1; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {Serial.print (result.classification [ix].value); float Data = result.classification [ix].value; ja (dati <0,50) {Serial.print ("Atklāts klepus"); modinātājs (); }} Pēc izmaiņu veikšanas augšupielādējiet kodu savā Arduino. Atveriet seriālo monitoru ar 115200 bodu.
Tātad šādā veidā var izveidot klepus noteikšanas mašīnu, tā nav ļoti efektīva metode, lai atrastu aizdomās turēto par Covid19, taču tā var labi darboties dažās pārpildītās vietās.
7. solis: kods
Lūdzu atrodiet pievienoto failu, Un, ja jums tas patika, neaizmirstiet nobalsot par mani zemāk esošajā konkursā.
Ieteicams:
DIY kabatas izmēra līdzstrāvas sprieguma mērītājs: 5 soļi
DIY kabatas izmēra līdzstrāvas sprieguma mērītājs: šajā pamācībā es parādīšu, kā pats izgatavot kabatas izmēra līdzstrāvas sprieguma mērītāju ar pjezo skaņas signālu, lai pats pārbaudītu ķēdi. Viss, kas jums nepieciešams, ir pamatzināšanas elektronikā un nedaudz laika. Ja jums ir kādi jautājumi vai problēmas, varat
DIY kabatas izmēra pretaizdzīšanas signalizācija!: 3 soļi
DIY kabatas izmēra pretaizdzīšanas signalizācija!: Vai kāds saspiež jūsu lietas un jūs nevarat atrast, kas tas ir? Nezināt, kas ir kāds? šajā pamācībā es jums parādīšu, kā izveidot kabatas izmēra iebrucēja trauksmi
Kabatas izmēra skaļrunis: 3 soļi
Kabatas izmēra skaļrunis: nēsājiet to jebkurā vietā! Mūzika ceļā! Sveiki visiem šajā pamācībā (kas ir mana pirmā). Es jums parādīšu, kā es izveidoju šo kabatas skaļruni
Kabatas izmēra CO (oglekļa monoksīda) detektors: 5 soļi
Kabatas izmēra CO (oglekļa monoksīda) detektors: Kā norāda nosaukums, tas ir kabatas izmēra CO detektors, ko izmanto, lai noteiktu oglekļa monoksīdu gaisā, mūsu mērķis bija padarīt šo ierīci pārnēsājamu un ietilptu kabatas izmērā. Tagad mēs saskaramies ar dienām Gaisa piesārņojuma problēma industrializācijas dēļ
Stilīgākais USB L.E.D. Kabatas izmēra gaisma (kabatas izmēra ieraksts): 6 soļi
Stilīgākais USB L.E.D. Kabatas izmēra gaisma (kabatas izmēra ieraksts): šajā pamācībā es parādīšu, kā izveidot ar USB darbināmu L.E.D. gaisma, kas var salocīties X-it Mints skārda lielumā un viegli ievietot kabatā. Ja jums patīk, noteikti atzīmējiet to ar + un balsojiet par mani konkursā! Materiāli un