ዝርዝር ሁኔታ:

የኪስ መጠን ያለው ሳል መመርመሪያ - 7 ደረጃዎች
የኪስ መጠን ያለው ሳል መመርመሪያ - 7 ደረጃዎች

ቪዲዮ: የኪስ መጠን ያለው ሳል መመርመሪያ - 7 ደረጃዎች

ቪዲዮ: የኪስ መጠን ያለው ሳል መመርመሪያ - 7 ደረጃዎች
ቪዲዮ: Ethiopia: ለስኳር በሽታ አደገኛ የሆኑ 10 ምግቦች | | 10 Dangerous Foods for Diabetes 2024, ታህሳስ
Anonim
የኪስ መጠን ያለው ሳል መመርመሪያ
የኪስ መጠን ያለው ሳል መመርመሪያ

COVID19 በእውነቱ መላውን ዓለም በጣም የሚጎዳ ታሪካዊ ወረርሽኝ ነው እናም ሰዎች ከእሱ ጋር ለመዋጋት ብዙ አዳዲስ መሳሪያዎችን እየገነቡ ነው። እንዲሁም ለንክኪ -አልባ የሙቀት ማጣሪያ አውቶማቲክ የማፅጃ ማሽን እና Thermal Gun ን ገንብተናል። ዛሬ ከኮሮቫቫይረስ ጋር ለመዋጋት የሚረዳ አንድ ተጨማሪ መሣሪያ እንገነባለን። እሱ በጩኸት እና በሳል ድምፅ መካከል የሚለይ እና የኮሮና ተጠርጣሪን ለማግኘት የሚረዳ የሳል ማወቂያ ስርዓት ነው። ለዚህም የማሽን መማሪያ ዘዴዎችን ይጠቀማል።

በዚህ መማሪያ ውስጥ አርዱዲኖ 33 BLE Sense እና Edge Impulse Studio ን በመጠቀም የሳል መመርመሪያ ስርዓትን እንገነባለን። በእውነተኛ-ጊዜ ድምጽ ውስጥ በመደበኛ የጀርባ ጫጫታ እና በሳል መካከል መለየት ይችላል። የሳል እና የጀርባ ጫጫታ ናሙናዎችን የውሂብ ስብስብ ለማሰልጠን እና የሳል ድምፅን በእውነተኛ ጊዜ መለየት የሚችል እጅግ በጣም የተመቻቸ TInyML ሞዴልን ለመገንባት የ Edge Impulse Studio ን እንጠቀም ነበር።

አቅርቦቶች

ሃርድዌር

  • አርዱዲኖ 33 BLE ስሜት
  • LEDJumper
  • ሽቦዎች

ሶፍትዌር

  • የ Edge Impulse ስቱዲዮ
  • አርዱዲኖ አይዲኢ

ደረጃ 1 የወረዳ ዲያግራም

የወረዳ ዲያግራም
የወረዳ ዲያግራም
የወረዳ ዲያግራም
የወረዳ ዲያግራም

Arduino 33 BLE Sense ን በመጠቀም ለሳል ምርመራ የወረዳ ዲያግራም ከላይ ተሰጥቷል። ለ Arduino 33 BLE የማብሰያ ክፍል አልተገኘም ፣ ስለሆነም ሁለቱም ተመሳሳይ ፒን-ውጭ ስላላቸው አርዱዲኖ ናኖን እጠቀም ነበር።

የ LED አዎንታዊ መሪ ከ Arduino 33 BLE ስሜት ከዲጂታል ፒን 4 ጋር የተገናኘ እና አሉታዊ መሪ ከአርዱዲኖ GND ፒን ጋር ተገናኝቷል።

ደረጃ 2 - ለሳል ማወቂያ ማሽን የመረጃ ቋቱን መፍጠር

ለሳል ማወቂያ ማሽን የመረጃ ቋቱን መፍጠር
ለሳል ማወቂያ ማሽን የመረጃ ቋቱን መፍጠር

ቀደም ሲል እንደጠቀስነው የሳል ማወቂያ ሞዴላችንን ለማሰልጠን Edge Impulse Studio ን እየተጠቀምን ነው። ለዚያ ፣ በእኛ አርዱinoኖ ላይ ልናውቃቸው የምንፈልጋቸውን የውሂብ ናሙናዎች የያዘ የውሂብ ስብስብ መሰብሰብ አለብን። ግቡ ሳል መለየት ስለሆነ የዛን እና አንዳንድ ሌሎች ናሙናዎችን ለጩኸት መሰብሰብ ያስፈልግዎታል ፣ ስለዚህ በሳል እና በሌሎች ጩኸቶች መካከል መለየት ይችላል። በሁለት ክፍሎች “ሳል” እና “ጫጫታ” የውሂብ ስብስብ እንፈጥራለን። የውሂብ ስብስብ ለመፍጠር ፣ የ Edge Impulse መለያ ይፍጠሩ ፣ መለያዎን ያረጋግጡ እና ከዚያ አዲስ ፕሮጀክት ይጀምሩ። የሞባይልዎን ፣ የአርዲኖዎን ሰሌዳ በመጠቀም ናሙናዎቹን መጫን ይችላሉ ወይም የውሂብ ስብስብን ወደ ጠርዝ ግፊት ግፊት መለያዎ ማስመጣት ይችላሉ። ናሙናዎችን ወደ መለያዎ ለመጫን ቀላሉ መንገድ የሞባይል ስልክዎን በመጠቀም ነው። ለዚያ ፣ ሞባይልዎን ከ Edge Impulse ጋር ማገናኘት አለብዎት። የሞባይል ስልክዎን ለማገናኘት “መሣሪያዎች” ላይ ጠቅ ያድርጉ እና ከዚያ “አዲስ መሣሪያ ያገናኙ” ላይ ጠቅ ያድርጉ።

ደረጃ 3 - ከተንቀሳቃሽ ስልክ ጋር ይገናኙ

ከተንቀሳቃሽ ስልክ ጋር ይገናኙ
ከተንቀሳቃሽ ስልክ ጋር ይገናኙ

አሁን በሚቀጥለው መስኮት ውስጥ ‹ሞባይል ስልክዎን ይጠቀሙ› ላይ ጠቅ ያድርጉ እና የ QR ኮድ ይታያል። ጉግል ሌንስን ወይም ሌላ የ QR ኮድ ስካነር መተግበሪያን በመጠቀም በሞባይል ስልክዎ የ QR ኮዱን ይቃኙ።

ይህ ስልክዎን ከ Edge Impulse ስቱዲዮ ጋር ያገናኘዋል።

ስልክዎ ከ Edge Impulse Studio ጋር በተገናኘ ፣ አሁን ናሙናዎችዎን መጫን ይችላሉ። ናሙናዎቹን ለመጫን ‹የውሂብ ማግኛ› ላይ ጠቅ ያድርጉ። አሁን በመረጃ ማግኛ ገጽ ላይ የመለያውን ስም ያስገቡ ፣ ማይክሮፎኑን እንደ ዳሳሽ ይምረጡ እና የናሙናውን ርዝመት ያስገቡ። የ 40 ሰከንድ ናሙና ናሙና ለመጀመር “ናሙና ይጀምሩ” ላይ ጠቅ ያድርጉ። እራስዎን ሳል ከማስገደድ ይልቅ ፣ የተለያየ ርዝመት ያላቸውን የመስመር ላይ ሳል ናሙናዎችን መጠቀም ይችላሉ። የተለያየ ርዝመት ያላቸው በአጠቃላይ ከ 10 እስከ 12 ሳል ናሙናዎችን ይመዝግቡ።

ደረጃ 4

ምስል
ምስል
ምስል
ምስል

የሳል ናሙናዎችን ከሰቀሉ በኋላ አሁን መለያውን ወደ ‹ጫጫታ› ያዘጋጁ እና ከ 10 እስከ 12 የድምፅ ናሙናዎችን ይሰብስቡ።

እነዚህ ናሙናዎች ሞጁሉን ለማሠልጠን ነው ፣ በሚቀጥሉት ደረጃዎች የሙከራ ውሂቡን እንሰበስባለን። የሙከራ ውሂብ ቢያንስ የሥልጠና ውሂብ 30% መሆን አለበት ፣ ስለዚህ 3 ቱን የ “ጫጫታ” ናሙናዎችን እና ከ 4 እስከ 5 የ “ሳል” ናሙናዎችን ይሰብስቡ። ውሂብዎን ከመሰብሰብ ይልቅ ፣ ጠርዙን በመጠቀም የእኛን የውሂብ ስብስብ ወደ የ Edge Impulse መለያዎ ማስመጣት ይችላሉ። Impulse CLI Uploader። የ CLI ሰቀላውን ለመጫን በመጀመሪያ ፣ በላፕቶፕዎ ላይ Node.js ን ያውርዱ እና ይጫኑ። ከዚያ በኋላ የትእዛዝ ጥያቄውን ይክፈቱ እና የሚከተለውን ትዕዛዝ ያስገቡ

npm ጫን -g ጠርዝ-ግፊት-ክሊ

አሁን የውሂብ ስብስቡን (የውሂብ ስብስብ አገናኝ) ያውርዱ እና ፋይሉን በፕሮጀክት አቃፊዎ ውስጥ ያውጡ። የትእዛዝ ጥያቄውን ይክፈቱ እና ወደ የውሂብ ስብስብ ቦታ ይሂዱ እና የሚከተሉትን ትዕዛዞች ያሂዱ

የጠርዝ-ግፊል-ሰቃዩ-የፅዳት-ተነሳሽነት-ሰቃዩ-የምድብ ሥልጠና ሥልጠና/*. json

የጠርዝ-ግፊት-ሰካሪ-የምድብ ሥልጠና ሥልጠና/*. cbor

የጠርዝ-ግፊት-ሰካሪ-የምድብ ሙከራ ሙከራ/*። json edge-impulse-uploader-ምድብ ሙከራ ሙከራ/*.

ደረጃ 5 ሞዴሉን ማሰልጠን እና ኮዱን ማበላሸት

የውሂብ ስብስቡ ዝግጁ እንደመሆኑ መጠን አሁን የውሂብ ግፊትን እንፈጥራለን። ለዚህም ወደ ‹ግፊትን ፍጠር› ገጽ ይሂዱ።

አሁን በ ‹ግፊትን ይፍጠሩ› ገጽ ላይ ‹የማቀናበሪያ ማገጃ አክል› ላይ ጠቅ ያድርጉ። በሚቀጥለው መስኮት የኦዲዮ (ኤምኤፍሲሲ) ብሎክን ይምረጡ። ከዚያ በኋላ ‹የመማሪያ ማገጃ አክል› ላይ ጠቅ ያድርጉ እና የነርቭ አውታረ መረብ (ኬራስ) ብሎክን ይምረጡ። ከዚያ ‹ግፊትን አስቀምጥ› ላይ ጠቅ ያድርጉ።

በሚቀጥለው ደረጃ ወደ ኤምኤፍሲሲ ገጽ ይሂዱ እና ከዚያ ‹ባህሪያትን ይፍጠሩ› ላይ ጠቅ ያድርጉ። ለሁሉም የኦዲዮ መስኮቶቻችን የ MFCC ብሎኮችን ያመነጫል።

ከዚያ በኋላ ወደ ‹NN Classifier ›ገጽ ይሂዱ እና በ‹ ነርቭ አውታረ መረብ ቅንብሮች ›የላይኛው ቀኝ ጥግ ላይ ያሉትን ሶስት ነጥቦች ላይ ጠቅ ያድርጉ እና‹ ወደ ኬራስ ቀይር (ኤክስፐርት) ሞድ ›የሚለውን ይምረጡ።

በሚከተለው ኮድ ዋናውን ይተኩ እና ‹አነስተኛውን የመተማመን ደረጃ› ወደ ‹0.70› ይለውጡ። ከዚያ ‹ሥልጠና ጀምር› ቁልፍን ጠቅ ያድርጉ። የእርስዎን ሞዴል ማሰልጠን ይጀምራል።

tensorflow ን እንደ tffrom tensorflow.keras.models ማስመጣት ቅደም ተከተል ከ tensorflow.keras.layers ማስመጣት ጥቅጥቅ ፣ InputLayer ፣ Dropout ፣ Flatten ፣ Reshape ፣ BatchNormalization ፣ Conv2D ፣ MaxPooling2D ፣ AveragePooling2D from tensorflow.keras.optimizers. MaxNorm # model architecture model = Sequential () model.add (InputLayer (input_shape = (X_train.shape [1],), name = 'x_input')) model.add (Rehape ((int (X_train.shape [1] / 13) ፣ 13 ፣ 1) ፣ input_shape = (X_train.shape [1] ፣))) model.add (Conv2D (10 ፣ kernel_size = 5 ፣ activation = ‘relu’ ፣ padding = ‘same’) ፣ kernel_constraint = MaxNorm (3))) ሞዴል.)) ሞዴል። (3))) # ይህ የመማሪያ ተመን ኦፕቲ = አደም (lr = 0.005 ፣ beta_) ይቆጣጠራል 1 = 0.9 ፣ beta_2 = 0.999) # የነርቭ አውታረ መረብ ሞዴሉን ያሠለጥኑ ።.compile (ኪሳራ = 'categorical_crossentropy', optimizer = opt, metrics = ['ትክክለኝነት']) model.fit (X_train, Y_train, batch_size = 32, epochs = 9, validation_data = (X_test ፣ Y_test) ፣ verbose = 2)

ደረጃ 6

ሞዴሉን ካሠለጠነ በኋላ የስልጠናውን አፈፃፀም ያሳያል። ለእኔ ትክክለኝነት 96.5% እና ኪሳራ 0.10 ነበር ለመቀጠል ጥሩ ነው።

አሁን የሳል ማወቂያ ሞዴላችን ዝግጁ ሆኖ ይህንን ሞዴል እንደ አርዱዲኖ ቤተመጽሐፍት እናሰማራለን። ሞዴሉን እንደ ቤተ -መጽሐፍት ከማውረድዎ በፊት ወደ ‹ቀጥታ ምደባ› ገጽ በመሄድ አፈፃፀሙን መሞከር ይችላሉ። ወደ ‹ማሰማራት› ገጽ ይሂዱ እና ‹አርዱዲኖ ቤተ -መጽሐፍት› ን ይምረጡ። አሁን ወደ ታች ይሸብልሉ እና ሂደቱን ለመጀመር ‹ግንባታ› ላይ ጠቅ ያድርጉ። ይህ ለፕሮጀክትዎ የአርዱዲኖ ቤተ -መጽሐፍት ይገነባል።

አሁን በአርዱዲኖ አይዲኢ ውስጥ ቤተ -መጽሐፍቱን ያክሉ። ለዚያ የ Arduino IDE ን ይክፈቱ እና ከዚያ በ Sketch> ቤተ -መጽሐፍትን ያካትቱ> Add. ZIP ቤተ -መጽሐፍት ላይ ጠቅ ያድርጉ። ከዚያ ወደ ፋይል> ምሳሌዎች> የፕሮጀክትዎ ስም - የ Edge Impulse> nano_ble33_sense_microphone በመሄድ አንድ ምሳሌ ይጫኑ። አርዱinoኖ ሳል ሲያውቅ የማንቂያ ድምጽ ማሰማት እንድንችል በኮዱ ውስጥ አንዳንድ ለውጦችን እናደርጋለን። ለዚያ ፣ ጫጫታ ከአርዱዲኖ ጋር ተገናኝቷል እና ሳል ባገኘ ቁጥር ፣ ኤልኢዲ ሶስት ጊዜ ብልጭ ድርግም ይላል። ለውጦቹ የጩኸት እና የሳል እሴቶችን በሚታተምበት ባዶ (ሉፕ) ተግባራት ውስጥ የተደረጉ ናቸው። በመጀመሪያው ኮድ ውስጥ ሁለቱንም ስያሜዎችን እና እሴቶቻቸውን በአንድ ላይ እያተመ ነው። ለ (size_t ix = 0; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {ei_printf (" %s: %.5f / n" ፣ result.classification [ix].label ፣ result.classification [ix].value); } ሁለቱንም የጩኸት እና የሳል እሴቶችን በተለያዩ ተለዋዋጮች ውስጥ እናስቀምጥ እና የድምፅ እሴቶችን እናወዳድራለን። የጩኸቱ ዋጋ ከ 0.50 በታች ከሆነ ይህ ማለት ሳል ዋጋ ከ 0.50 በላይ ነው እናም ድምፁን ያሰማል ማለት ነው። ለ loop () ኮድ ዋናውን በዚህ ይተኩ - ለ (size_t ix = 1; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {Serial.print (result.classification [ix].value) ፤ ተንሳፋፊ Data = result.classification [ix].value; ከሆነ (ውሂብ <0.50) {Serial.print (“ሳል ተገኝቷል”); ማንቂያ (); }} ለውጦቹን ካደረጉ በኋላ ኮዱን ወደ አርዱinoኖ ይስቀሉ። ተከታታይ ማሳያውን በ 115200 ባውድ ይክፈቱ።

ስለዚህ የሳል ማወቂያ ማሽን እንዴት ሊገነባ ይችላል ፣ ማንኛውንም COVID19 ተጠርጣሪ ለማግኘት በጣም ውጤታማ ዘዴ አይደለም ነገር ግን በአንዳንድ በተጨናነቀ አካባቢ በጥሩ ሁኔታ ሊሠራ ይችላል።

ደረጃ 7 ኮድ

እባክዎ የተያያዘውን ፋይል ያግኙ ፣

እና ከወደዱት ከዚህ በታች ባለው ውድድር ውስጥ እኔን መምረጥዎን አይርሱ።

የሚመከር: