- ضروری اجزاء
- سرکٹ ڈایاگرام
- کھانسی کا پتہ لگانے والی مشین کے لئے ڈیٹاسیٹ بنانا
- ماڈل کی تربیت اور کوڈ کو ٹوییک کرنا
COVID19 واقعی ایک تاریخی وبائی بیماری ہے جس نے پوری دنیا کو بہت بری طرح متاثر کیا ہے اور لوگ اس سے لڑنے کے لئے بہت سارے نئے آلات تیار کررہے ہیں۔ ہم نے کنٹیکٹ لیس درجہ حرارت کی اسکریننگ کے لئے خودکار سینیٹائزیشن مشین اور تھرمل گن بھی بنایا ہے۔ آج ہم کورونا وائرس سے لڑنے میں مدد کے لئے ایک اور ڈیوائس تیار کریں گے۔ یہ کھانسی کا پتہ لگانے کا نظام ہے ، جو شور اور کھانسی کی آواز کے درمیان فرق کرسکتا ہے اور کورونا کے مشتبہ افراد کی تلاش میں مدد کرسکتا ہے۔ اس کے لئے وہ مشین سیکھنے کی تکنیک استعمال کرے گا۔
اس ٹیوٹوریل میں ، ہم ارڈینو 33 BLE سینس اور ایج امپلس اسٹوڈیو کا استعمال کرتے ہوئے کھانسی کا پتہ لگانے کا نظام تیار کرنے جارہے ہیں ۔ یہ ریئل ٹائم آڈیو میں عام پس منظر کے شور اور کھانسی کے درمیان فرق کرسکتا ہے۔ ہم نے کھانسی اور پس منظر کے شور کے نمونوں کی ایک ڈیٹاسیٹ کی تربیت کرنے اور ایک اعلی حد درجہ بہتر TInyML ماڈل بنانے کے لئے ایج امپلس اسٹوڈیو کا استعمال کیا ، جو حقیقی وقت میں کھانسی کی آواز کا پتہ لگاسکتا ہے۔
ضروری اجزاء
ہارڈ ویئر
- اردوینو 33 BLE سینس
- ایل. ای. ڈی
- جمپر تاروں
سافٹ ویئر
- ایج امپلس اسٹوڈیو
- اردوینو IDE
ہم نے آرڈینو 33 BLE سینس کے بارے میں ایک تفصیلی سبق حاصل کیا ہے۔
سرکٹ ڈایاگرام
کھانسی کی کھوج کا پتہ لگانے کے لئے سرکٹ ڈایاگرام Ardino 33 BLE Sense کا استعمال ذیل میں دیا گیا ہے۔ اریڈینو 33 بی ایل ای کے لئے فرٹائزنگ حصہ دستیاب نہیں تھا ، لہذا میں نے ارڈینو نینو کا استعمال کیا کیونکہ دونوں میں ایک ہی پن آؤٹ ہوتا ہے۔
ایل ای ڈی کی مثبت برتری آرڈینو 33 بی ایل ای سینس کے ڈیجیٹل پن 4 سے منسلک ہے اور منفی لیڈ آردوینو کے جی این ڈی پن سے جڑی ہوئی ہے۔
کھانسی کا پتہ لگانے والی مشین کے لئے ڈیٹاسیٹ بنانا
جیسا کہ پہلے ذکر ہوا ہے ، ہم اپنے کھانسی کا پتہ لگانے کے ماڈل کو تربیت دینے کے لئے ایج امپلس اسٹوڈیو کا استعمال کررہے ہیں۔ اس کے لئے ، ہمیں ایک ڈیٹاسیٹ جمع کرنا ہے جس میں اعداد و شمار کے نمونے موجود ہیں جسے ہم اپنے اردوینو پر پہچاننا چاہتے ہیں۔ چونکہ اس کا مقصد کھانسی کا پتہ لگانا ہے ، لہذا آپ کو شور کے ل that اس کے کچھ نمونے اور کچھ دوسرے نمونے اکٹھا کرنے کی ضرورت ہوگی ، لہذا یہ کھانسی اور دوسرے شور کے درمیان فرق کرسکتا ہے۔
ہم دو کلاس "کھانسی" اور "شور" کے ساتھ ایک ڈیٹاسیٹ بنائیں گے۔ ڈیٹاسیٹ بنانے کے ل an ، ایج امپلس اکاؤنٹ بنائیں ، اپنے اکاؤنٹ کی تصدیق کریں اور پھر ایک نیا پروجیکٹ شروع کریں۔ آپ اپنے موبائل ، اپنے ارڈینو بورڈ کا استعمال کرکے نمونے لوڈ کرسکتے ہیں یا آپ اپنے کنارے کے تسلسل کے کھاتے میں ڈیٹاسیٹ درآمد کرسکتے ہیں۔ اپنے اکاؤنٹ میں نمونوں کو لوڈ کرنے کا سب سے آسان طریقہ یہ ہے کہ آپ اپنا موبائل فون استعمال کریں۔ اس کے ل you ، آپ کو اپنا موبائل ایج امپلس کے ساتھ جوڑنا ہوگا۔
اپنے موبائل فون کو مربوط کرنے کے لئے ، ' ڈیوائسز ' پر کلک کریں اور پھر ' ایک نیا آلہ جوڑیں ' پر کلک کریں ۔
اب اگلی ونڈو میں ، ' اپنا موبائل فون استعمال کریں ' پر کلک کریں ، اور ایک QR کوڈ ظاہر ہوگا۔ گوگل لینس یا دیگر کیو آر کوڈ سکینر ایپ کا استعمال کرکے اپنے موبائل فون سے کیو آر کوڈ اسکین کریں۔
یہ آپ کے فون کو ایج امپلس اسٹوڈیو کے ساتھ مربوط کرے گا۔
آپ کے فون کو ایج امپلس اسٹوڈیو سے منسلک کرنے کے ساتھ ، اب آپ اپنے نمونے لوڈ کرسکتے ہیں۔ نمونے لوڈ کرنے کے لئے ، ' ڈیٹا حصول' پر کلک کریں ۔ اب ڈیٹا کے حصول کے صفحے پر ، لیبل کا نام درج کریں ، مائیکروفون کو بطور سینسر منتخب کریں ، اور نمونے کی لمبائی درج کریں۔ 40 سیکنڈ کے نمونے نمونے لینے شروع کرنے کے لئے ' اسٹار سیمپلنگ' پر کلک کریں ۔ خود کو کھانسی پر مجبور کرنے کے بجائے ، آپ مختلف لمبائی کے آن لائن کھانسی کے نمونے استعمال کرسکتے ہیں۔ مختلف لمبائی کے 10 سے 12 کھانسی کے نمونے ریکارڈ کریں۔
کھانسی کے نمونے اپ لوڈ کرنے کے بعد ، اب 'شور' پر لیبل لگائیں اور 10 سے 12 شور کے نمونے اکٹھا کریں۔
یہ نمونے ماڈیول کی تربیت کے لئے ہیں ، اگلے مراحل میں ، ہم ٹیسٹ ڈیٹا اکٹھا کریں گے۔ ٹیسٹ کے اعداد و شمار میں کم سے کم 30 data ڈیٹا ہونا چاہئے ، لہذا 'شور' کے 3 نمونے اور 'کھانسی' کے 4 سے 5 نمونے اکٹھا کریں۔
اپنے ڈیٹا کو جمع کرنے کے بجائے ، آپ اپنا ڈیٹاسیٹ ایج امپلس اکاؤنٹ میں ایج امپلس سی ایل آئی اپلوڈر کا استعمال کرکے درآمد کرسکتے ہیں۔
سی ایل آئی اپلوڈر انسٹال کرنے کے لئے پہلے اپنے لیپ ٹاپ پر نوڈ. جے کو ڈاؤن لوڈ اور انسٹال کریں۔ اس کے بعد کمانڈ پرامپٹ کھولیں اور نیچے کا کمانڈ داخل کریں۔
این پی ایم انسٹال کریں-جی ایج - امپلس-کلائٹ
اب ڈیٹاسیٹ (ڈیٹاسیٹ لنک) ڈاؤن لوڈ کریں اور اپنے پروجیکٹ کے فولڈر میں فائل نکالیں۔ کمانڈ پرامپٹ کو کھولیں اور ڈیٹاسیٹ کے مقام پر تشریف لے جائیں اور نیچے دیئے گئے احکامات چلائیں:
کنارے کی تسلسل-اپ لوڈر-صاف کنارے تسلسل-اپ لوڈر --category تربیت تربیت / *. JSON کنارے تسلسل-اپ لوڈر --category تربیت تربیت / *. cbor کنارے تسلسل-اپ لوڈر --category ٹیسٹنگ ٹیسٹنگ / *. JSON ایج - تسلسل - اپ لوڈر - زمرہ جانچ کی جانچ / *. cbor
ماڈل کی تربیت اور کوڈ کو ٹوییک کرنا
چونکہ ڈیٹاسیٹ تیار ہے ، اب ہم اعداد و شمار کے لئے ایک تحریک تیار کریں گے۔ اس کے لئے ' تسلسل تخلیق کریں ' کے صفحے پر جائیں۔
اب ' امپلس بنائیں' کے صفحے پر ، ' ایک پروسیسنگ بلاک شامل کریں ' پر کلک کریں ۔ اگلی ونڈو میں ، آڈیو (ایم ایف سی سی) بلاک منتخب کریں ۔ اس کے بعد ' ایک لرننگ بلاک شامل کریں ' پر کلک کریں اور نیورل نیٹ ورک (کیراس) بلاک کو منتخب کریں ۔ پھر ' امپلس کو محفوظ کریں ' پر کلک کریں ۔
اگلے مرحلے میں ، ایم ایف سی سی کے صفحے پر جائیں اور پھر 'جنریٹ فیچرز' پر کلک کریں ۔ یہ آڈیو کے ہمارے تمام ونڈوز کے لئے ایم ایف سی سی بلاکس تیار کرے گا۔
اس کے بعد ' این این کلاسیفائر' صفحے پر جائیں اور ' نیورل نیٹ ورک کی ترتیبات' کے اوپری دائیں کونے میں موجود تین نقطوں پر کلک کریں اور ' سوئچ ٹو کیراس (ماہر) موڈ' کو منتخب کریں ۔
اصل کو مندرجہ ذیل کوڈ سے تبدیل کریں اور ' کم سے کم اعتماد کی درجہ بندی' کو '0.70' میں تبدیل کریں۔ پھر ' اسٹارٹ ٹریننگ' کے بٹن پر کلک کریں۔ یہ آپ کے ماڈل کی تربیت شروع کرے گا۔
tensorflow.keras.models سے tens کے طور پر tensor فلو درآمد کریں۔ امپورٹ نامی # ماڈل آرکیٹیکچر ماڈل = سیکوئینشل () ماڈل.add (ان پٹ لائر (ان پٹ_شائپ = (ایکس_ٹرین.شاپ ،) ، نام = 'x_input')) ماڈل. ایڈی ڈی (دوبارہ شکل ((int (X_train.shape / 13)) ، 13 ، 1) ، ان پٹ_شپی = (X_train. Shape ،))) Model.add (Conv2D (10 ، دانا__ سائز = 5 ، ایکٹیویشن = 'relu' ، بھرتی = 'ایک ہی' ، دانا_کونسٹرینٹ = میکس ہاروم (3)) ماڈل. ایڈی (اوسط پولنگ 2 ڈی (تالاب_ سائز = 2 ، بھرتی = 'ایک ہی')) ماڈل.add (Conv2D (5 ، دانا__ سائز = 5 ، ایکٹیویشن = 'relu' ، پیڈنگ = 'ایک ہی' ، دانا_کناسٹرینٹ = زیادہ سے زیادہ (3)) ماڈل. ایڈی (اوسط پولنگ 2 ڈی (پول_ سائز = 2 ،پیڈنگ = 'ایک ہی')) Model.add (فلیٹین ()) Model.add (گھنے (کلاسز ، ایکٹیویشن = 'سافٹ مینیکس' ، نام = 'y_pred' ، دانا_کناسٹرینٹ = میکس ہرم (3 فیصد)) # اس سے سیکھنے کی شرح آپٹ کو کنٹرول کرتی ہے = آدم (ایل آر = 0.005 ، بیٹا_1 = 0.9 ، بیٹا_2 = 0.999) # عصبی نیٹ ورک ماڈل ڈاٹ کام پائل (نقصان = 'زمرہ_کرسینٹروپی' ، آپٹائزر = آپٹ ، میٹرکس =) ماڈل.فٹ (ایکس_ٹرین ، وائی ٹرین ، بیچ_ سائز = 32 ، ایپوکس) کی تربیت حاصل کریں = 9 ، توثیق_ڈیٹا = (ایکس_سٹسٹ ، وائی_ٹیسٹ) ، وربوز = 2)فعل = 2)فعل = 2)
ماڈل کی تربیت کے بعد ، یہ تربیت کی کارکردگی کو ظاہر کرے گا۔ میرے لئے ، درستگی 96.5٪ تھی اور نقصان 0.10 تھا جو آگے بڑھنا اچھا ہے۔
اب چونکہ ہمارا کھانسی کا پتہ لگانے والا ماڈل تیار ہے ، ہم اس ماڈل کو ارڈینو لائبریری کے بطور تعینات کریں گے۔ ماڈل کو لائبریری کے بطور ڈاؤن لوڈ کرنے سے پہلے ، آپ ' لائیو درجہ بندی ' کے صفحے پر جاکر کارکردگی کو جانچ سکتے ہیں ۔
' تعیناتی ' کے صفحے پر جائیں اور ' ارڈینو لائبریری' منتخب کریں ۔ اب نیچے سکرول کریں اور عمل شروع کرنے کے لئے 'تعمیر' پر کلک کریں ۔ یہ آپ کے پروجیکٹ کے لئے ایک ارڈینو لائبریری بنائے گا۔
اب اپنے اردوینو IDE میں لائبریری شامل کریں۔ اس کے لئے آردوینو IDE کھولیں اور پھر خاکہ> شامل لائبریری> شامل کریں۔ زیڈ لائبریری پر کلک کریں۔
پھر ، فائل> مثال کے طور پر> آپ کے پروجیکٹ کا نام - ایج امپلس> نانو_بل 33_sense_microphone پر جاکر ایک مثال لوڈ کریں ۔
ہم کوڈ میں کچھ تبدیلیاں لائیں گے تاکہ جب اردوینو کھانسی کا پتہ لگائے تو ہم انتباہ کی آواز پیدا کرسکیں۔ اس کے ل a ، ایک بزر کو آرڈینو کے ساتھ انٹرفیس کیا جاتا ہے اور جب بھی اسے کھانسی کا پتہ چلتا ہے ، ایل ای ڈی تین بار پلک جھپکتی ہے۔
یہ تبدیلیاں باطل لوپ () افعال میں کی گئی ہیں جہاں وہ شور اور کھانسی کی اقدار پرنٹ کررہی ہے۔ اصل کوڈ میں ، یہ دونوں لیبل اور ان کی اقدار دونوں کو ایک ساتھ چھپارہا ہے۔
کے لئے (سائز_ٹ ix = 0؛ ix <EI_CLASSIFIER_LABEL_COUNT؛ ix ++) i ei_printf ("٪ s:٪.5f \ n"، نتیجہ.classifications.label، نتیجہ.classifications.value)؛ }
ہم شور اور کھانسی دونوں اقدار کو مختلف متغیر میں بچانے اور شور کی اقدار کا موازنہ کرنے جارہے ہیں۔ اگر شور کی قیمت 0.50 سے نیچے جاتی ہے اس کا مطلب ہے کھانسی کی قیمت 0.50 سے زیادہ ہے اور اس سے آواز ہوگی۔ اس کے ساتھ اصل کے لئے لوپ () کوڈ کو تبدیل کریں:
(سائز_ٹ ix = 1؛ ix <EI_CLASSIFIER_LABEL_COUNT؛ ix ++) کے لئے فلوٹ ڈیٹا = نتیجہ.classization.value؛ اگر (ڈیٹا <0.50) {سیریل.پرنٹ ("کھانسی کی کھوج")؛ الارم ()؛ }
تبدیلیاں کرنے کے بعد ، کوڈ کو اپنے آرڈینو میں اپ لوڈ کریں۔ سیریل مانیٹر کو 115200 پر کھولیں۔
لہذا اس طرح کھانسی کی کھوج کی مشین بنائی جاسکتی ہے ، کسی بھی COVID19 مشتبہ شخص کو تلاش کرنا یہ بہت موثر طریقہ نہیں ہے لیکن یہ کچھ بھیڑ والے علاقے میں اچھی طرح کام کرسکتا ہے۔
لائبریری اور کوڈ کے ساتھ ایک مکمل ورکنگ ویڈیو ذیل میں دیا گیا ہے: