Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Diagram ng Circuit
- Hakbang 2: Paglikha ng Dataset para sa Cough Detection Machine
- Hakbang 3: Kumonekta sa Mobile Phone
- Hakbang 4:
- Hakbang 5: Pagsasanay sa Modelo at Pagbabago ng Code
- Hakbang 6:
- Hakbang 7: Code
Video: Detalye ng Laki ng Saku sa Pocket: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Ang COVID19 ay talagang isang makasaysayang pandemikong nakakaapekto sa buong mundo nang masama at ang mga tao ay nagtatayo ng maraming mga bagong aparato upang makipaglaban dito. Nakagawa rin kami ng isang awtomatikong sanitization machine at Thermal Gun para sa screening ng temperatura na Walang contact. Ngayon ay magtatayo kami ng isa pang aparato upang matulungan ang pakikipaglaban sa Coronavirus. Ito ay isang sistema ng pagtuklas ng ubo, na makikilala sa pagitan ng ingay at tunog ng ubo at makakatulong sa paghanap ng hinala ni Corona. Gumagamit ito ng mga diskarte sa pag-aaral ng machine para doon.
Sa tutorial na ito, magtatayo kami ng isang sistema ng Pagtuklas ng Cough gamit ang Arduino 33 BLE Sense at Edge Impulse Studio. Maaari nitong makilala ang pagitan ng normal na ingay sa background at pag-ubo sa real-time na audio. Ginamit namin ang Edge Impulse Studio upang sanayin ang isang dataset ng pag-ubo at mga sample ng ingay sa background at bumuo ng isang lubos na na-optimize na modelo ng TInyML, na makakakita ng tunog ng Ubo sa real-time.
Mga gamit
Hardware
- Arduino 33 BLE Sense
- LEDJumper
- Mga wire
Software
- Edge Impulse Studio
- Arduino IDE
Hakbang 1: Diagram ng Circuit
Circuit Diagram para sa Pagtuklas ng Cough Gamit ang Arduino 33 BLE Sense ay ibinibigay sa itaas. Hindi magagamit ang fritzing part para sa Arduino 33 BLE, kaya ginamit ko ang Arduino Nano na pareho ang parehong pin-out.
Ang Positibong tingga ng LED ay konektado sa digital pin 4 ng Arduino 33 BLE sense at Negatibong tingga ay konektado sa GND pin ng Arduino.
Hakbang 2: Paglikha ng Dataset para sa Cough Detection Machine
Tulad ng nabanggit kanina, gumagamit kami ng Edge Impulse Studio upang sanayin ang aming modelo ng pagtuklas ng ubo. Para doon, kailangan naming kolektahin ang isang dataset na may mga sample ng data na nais naming makilala sa aming Arduino. Dahil ang layunin ay upang makita ang ubo, kakailanganin mong kolektahin ang ilang mga sample ng iyon at ilang iba pang mga sample para sa ingay, upang makilala nito ang pagitan ng Ubo at iba pang mga Ingay. Lilikha kami ng isang dataset na may dalawang klase na "ubo" at "ingay". Upang lumikha ng isang dataset, lumikha ng isang Edge Impulse account, i-verify ang iyong account at pagkatapos ay magsimula ng isang bagong proyekto. Maaari mong mai-load ang mga sample sa pamamagitan ng paggamit ng iyong mobile, iyong Arduino board o maaari kang mag-import ng isang dataset sa iyong edge na salpok na account. Ang pinakamadaling paraan upang mai-load ang mga sample sa iyong account ay sa pamamagitan ng paggamit ng iyong mobile phone. Para doon, kailangan mong ikonekta ang iyong mobile sa Edge Impulse. Upang ikonekta ang iyong Mobile phone, mag-click sa 'Mga Device' at pagkatapos ay mag-click sa 'Kumonekta ng isang Bagong Device'.
Hakbang 3: Kumonekta sa Mobile Phone
Ngayon sa susunod na window, mag-click sa 'Gamitin ang iyong Mobile Phone', at lilitaw ang isang QR code. I-scan ang QR code gamit ang iyong Mobile Phone gamit ang Google Lens o iba pang QR code scanner app.
Ikonekta nito ang iyong telepono sa Edge Impulse studio.
Sa iyong telepono na konektado sa Edge Impulse Studio, maaari mo na ngayong mai-load ang iyong mga sample. Upang mai-load ang mga sample, mag-click sa 'Pagkuha ng data'. Ngayon sa pahina ng Pagkuha ng data, ipasok ang pangalan ng label, piliin ang mikropono bilang isang sensor, at ipasok ang haba ng sample. Mag-click sa 'Simulang sampling', upang simulan ang pag-sample ng isang 40 sec sample. Sa halip na pilitin ang iyong sarili na umubo, maaari kang gumamit ng mga sample ng online na ubo na may iba't ibang haba. Itala ang isang kabuuang 10 hanggang 12 mga sample ng ubo na magkakaiba ang haba.
Hakbang 4:
Matapos i-upload ang mga sample ng ubo, itakda ngayon ang label sa 'ingay' at mangolekta ng isa pang 10 hanggang 12 mga sample ng ingay.
Ang mga sample na ito ay para sa Pagsasanay ng module, sa mga susunod na hakbang, kokolektahin namin ang Data ng Pagsubok. Ang data ng pagsubok ay dapat na hindi bababa sa 30% ng data ng pagsasanay, kaya kolektahin ang 3 mga sample ng 'ingay' at 4 hanggang 5 mga sample ng 'ubo'. Sa halip na kolektahin ang iyong data, maaari mong mai-import ang aming dataset sa iyong Edge Impulse account gamit ang Edge Impulse CLI Uploader. Upang mai-install ang CLI Uploader, una, mag-download at mag-install ng Node.js sa iyong laptop. Pagkatapos nito buksan ang prompt ng utos at ipasok ang utos sa ibaba:
npm install -g edge-impulse-kliyente
Ngayon i-download ang dataset (Link ng Dataset) at i-extract ang file sa iyong folder ng proyekto. Buksan ang prompt ng utos at mag-navigate sa lokasyon ng dataset at patakbuhin ang mga utos sa ibaba:
edge-impulse-uploader --cleanedge-impulse-uploader --category training training / *. json
edge-impulse-uploader - pagsasanay sa pagsasanay sa kategorya / *. cbor
edge-impulse-uploader --category testing test / *. json edge-impulse-uploader --category testing test / *. cbor
Hakbang 5: Pagsasanay sa Modelo at Pagbabago ng Code
Habang handa ang dataset, ngayon lilikha kami ng isang salpok para sa data. Para doon pumunta sa pahina na 'Lumikha ng salpok'.
Ngayon sa pahina ng 'Lumikha ng salpok', mag-click sa 'Magdagdag ng isang block ng pagproseso'. Sa susunod na window, piliin ang Audio (MFCC) block. Matapos ang pag-click sa 'Magdagdag ng isang bloke ng pag-aaral' at piliin ang bloke ng Neural Network (Keras). Pagkatapos mag-click sa 'I-save ang Impulse'.
Sa susunod na hakbang, pumunta sa pahina ng MFCC at pagkatapos ay mag-click sa 'Bumuo ng Mga Tampok'. Lilikha ito ng mga bloke ng MFCC para sa lahat ng aming windows ng audio.
Pagkatapos nito pumunta sa pahina ng 'NN Classifier' at mag-click sa tatlong mga tuldok sa kanang sulok sa itaas ng 'Mga setting ng Neural Network' at piliin ang mode na 'Lumipat sa Keras (dalubhasa)'.
Palitan ang orihinal ng sumusunod na code at palitan ang 'Minimum na rating ng kumpiyansa' sa '0.70'. Pagkatapos mag-click sa pindutang 'Magsimula sa pagsasanay'. Magsisimula itong sanayin ang iyong modelo.
i-import ang tensorflow bilang tffrom tensorflow.keras.models import Sequential mula sa tensorflow.keras.layers import Dense, InputLayer, Dropout, Flatten, Reshape, BatchNormalization, Conv2D, MaxPooling2D, AveragePooling2D mula sa tensorflow.keras.optimizers import si Adam mula sa tensorflowintsker Modelong arkitektura ng MaxNorm # 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, activation = 'relu', padding = 'pareho', kernel_constraint = MaxNorm (3))) model.add (AveragePooling2D (pool_size = 2, padding = 'pareho')) model.add (Conv2D (5, kernel_size = 5, activation = 'relu', padding = 'pareho', kernel_constraint = MaxNorm (3))) model.add (AveragePooling2D (pool_size = 2, padding = 'pareho')) model.add (Flatten ()) model.add (Dense (mga klase, pag-activate = 'softmax', pangalan = 'y_pred', kernel_constraint = MaxNorm (3))) # kinokontrol nito ang rate ng pag-aaral na opt = Adam (lr = 0.005, beta_ 1 = 0.9, beta_2 = 0.999) # sanayin ang neural network model.compile (loss = 'categorical_crossentropy', optimizer = opt, mga sukatan = ['kawastuhan']) modelo. Mod (X_train, Y_train, batch_size = 32, epochs = 9, validation_data = (X_test, Y_test), verbose = 2)
Hakbang 6:
Pagkatapos ng pagsasanay sa modelo, ipapakita nito ang pagganap ng pagsasanay. Para sa akin, ang kawastuhan ay 96.5% at ang pagkawala ay 0.10 na mabuting magpatuloy.
Ngayon dahil handa na ang aming modelo ng pagtuklas ng ubo, ilalagay namin ang modelong ito bilang Arduino library. Bago i-download ang modelo bilang isang silid-aklatan, maaari mong subukan ang pagganap sa pamamagitan ng pagpunta sa pahina ng 'Live na Pag-uuri'. Pumunta sa pahina ng 'Pag-deploy' at piliin ang 'Arduino Library'. Ngayon mag-scroll pababa at mag-click sa 'Build' upang simulan ang proseso. Bumubuo ito ng isang Arduino library para sa iyong proyekto.
Idagdag ngayon ang library sa iyong Arduino IDE. Para doon buksan ang Arduino IDE at pagkatapos ay mag-click sa Sketch> Isama ang Library> Add. ZIP library. Pagkatapos, mag-load ng isang halimbawa sa pamamagitan ng pagpunta sa File> Mga Halimbawa> Ang iyong pangalan ng proyekto - Edge Impulse> nano_ble33_sense_microphone. Gumagawa kami ng ilang mga pagbabago sa code upang makagawa kami ng isang alerto na tunog kapag nakita ng Arduino ang ubo. Para doon, ang isang buzzer ay nakipag-interfaced sa Arduino at tuwing nakakakita ito ng ubo, ang LED ay kumikislap ng tatlong beses. Ang mga pagbabago ay ginawa sa void loop () na mga pagpapaandar kung saan ito ay nagpi-print ng mga halaga ng ingay at ubo. Sa orihinal na code, pini-print nito ang parehong mga label at kanilang mga halaga nang magkasama. para sa (size_t ix = 0; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {ei_printf ("% s:%.5f / n", resulta.classification [ix].label, resulta.classification [ix].value); } Kami ay magse-save ang parehong halaga ng ingay at ubo sa iba't ibang mga variable at ihambing ang mga halaga ng ingay. Kung ang halaga ng ingay ay napupunta sa ibaba 0.50 na nangangahulugang ang halaga ng ubo ay higit sa 0.50 at gagawa ito ng tunog. Palitan ang orihinal para sa loop () code ng ito: para sa (size_t ix = 1; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {Serial.print (result.classification [ix].value); float Data = resulta.classification [ix].value; kung (Data <0.50) {Serial.print ("Cough Detected"); alarma (); }} Matapos gawin ang mga pagbabago, i-upload ang code sa iyong Arduino. Buksan ang serial monitor sa 115200 baud.
Kaya't ito ay kung paano maitatayo ang isang machine ng pagtuklas ng ubo, hindi ito isang napaka mabisang pamamaraan upang makahanap ng anumang hinihinalang COVID19 ngunit maaari itong gumana nang maayos sa ilang lugar na masikip.
Hakbang 7: Code
Mangyaring hanapin ang nakalakip na file, At kung nagustuhan mo huwag kalimutan na iboto ako sa paligsahan sa ibaba.
Inirerekumendang:
Mga Detalye ng Mga Sintomas (Pseudo - Covid19): 5 Mga Hakbang
Mga Detalye ng Mga Sintomas (Pseudo - Covid19): *** Paglilinaw dahil hindi binabasa ng mga tao ang lahat ng artikulo !!! *** Ito ang aking pagsubok na tulungan, Ginawa ko ito upang magbigay inspirasyon at ibahagi ang aking ideya. gumagana lamang ito upang makita ang mga sintomas at HINDI ang covid19 mismo. Ang aking pangunahing problema ay at manatili - upang maiiba ang di
Pocket Flashlight Pinapagana ng 1 Laki ng Laki ng Baterya: 7 Mga Hakbang
Pocket Flashlight Pinapagana ng 1 Laki ng Laki ng AA: Ang pocket flashlight na ito ay gumagamit lamang ng 1 AA na laki ng baterya upang mapagana ang 2X 5mm puting LEDs (light emitting diode). Ang isang 1.5V na baterya ay walang sapat na mataas na boltahe upang mapalakas ang mga LED na iyon. Kailangan namin ng isang circuit upang mapalakas ang input boltahe sa pasulong na boltahe
Mga Detalye at Koneksyon ng I2C LCD Adapter: 5 Mga Hakbang
Mga Detalye at Koneksyon ng I2C LCD Adapter: I2C lcd adapter ay isang aparato na naglalaman ng isang micro-controller PCF8574 chip. Ang micro-controller na ito ay isang I / O expander, na nakikipag-usap sa iba pang micro-controller chip na may dalawang wire na komunikasyon na protocol. Gamit ang adapter na ito kahit sino ay maaaring makontrol ang isang 16x2
Laki ng Operasyon ng Laki ng Buhay: 14 Hakbang (na may Mga Larawan)
Laki ng Operasyon ng Laki ng Buhay: Bilang isang bata gustung-gusto ko ang laro ng Milton Bradley Operation, palaging kinakatakutan ako ng buzzer kapag ito ay nawala, ngunit masaya ito. Ang object ng laro ng Operation ay upang alisin ang isang bahagi ng katawan na hindi mahahawakan ang sipit sa mga gilid na metal na pumapalibot sa bagay
Paano Suriin ang Iyong Mga Detalye ng Computer Bago Bumili ng Mga Laro / software .: 6 Mga Hakbang
Paano Suriin ang Iyong Mga Detalye ng Computer Bago Bumili ng Mga Laro / software .: Sinasaklaw ng gabay na ito ang hinihiling ng lahat ng mga laro / software. Ipinapakita sa iyo ng gabay na ito kung paano suriin kung ang iyong computer ay maaaring magpatakbo at mag-install ng isang cd o dvd na inilagay mo sa iyong computer. Maaari mo ring suriin ang http://cyri.systemrequirementslab.com/srtest/ (mula sa gumagamit na Kweeni