সুচিপত্র:

পকেট সাইজের কাশি আবিষ্কারক: 7 টি ধাপ
পকেট সাইজের কাশি আবিষ্কারক: 7 টি ধাপ

ভিডিও: পকেট সাইজের কাশি আবিষ্কারক: 7 টি ধাপ

ভিডিও: পকেট সাইজের কাশি আবিষ্কারক: 7 টি ধাপ
ভিডিও: 1লা ডিসেম্বর, 2023 পডকাস্ট: নাইট টাইম লাইভস্ট্রিম? কি??? 2024, নভেম্বর
Anonim
পকেট সাইজের কাশি আবিষ্কারক
পকেট সাইজের কাশি আবিষ্কারক

COVID19 সত্যিই একটি historicতিহাসিক মহামারী যা পুরো বিশ্বকে খুব খারাপভাবে প্রভাবিত করছে এবং মানুষ এর সাথে লড়াই করার জন্য অনেক নতুন ডিভাইস তৈরি করছে। আমরা একটি স্বয়ংক্রিয় স্যানিটাইজেশন মেশিন এবং কন্টাক্টলেস তাপমাত্রা স্ক্রীনিংয়ের জন্য থার্মাল গানও তৈরি করেছি। আজ আমরা করোনাভাইরাসের বিরুদ্ধে লড়াইয়ে সাহায্য করার জন্য আরও একটি ডিভাইস তৈরি করব। এটি একটি কাশি সনাক্তকরণ ব্যবস্থা, যা গোলমাল এবং কাশি শব্দের মধ্যে পার্থক্য করতে পারে এবং করোনা সন্দেহভাজনকে খুঁজে পেতে সাহায্য করতে পারে। এটি এর জন্য মেশিন লার্নিং কৌশল ব্যবহার করবে।

এই টিউটোরিয়ালে, আমরা Arduino 33 BLE Sense এবং Edge Impulse Studio ব্যবহার করে একটি কাশি সনাক্তকরণ ব্যবস্থা তৈরি করতে যাচ্ছি। এটি রিয়েল-টাইম অডিওতে স্বাভাবিক ব্যাকগ্রাউন্ড গোলমাল এবং কাশির মধ্যে পার্থক্য করতে পারে। আমরা কাশি এবং পটভূমির শব্দ নমুনার একটি ডেটাসেট প্রশিক্ষণের জন্য এজ ইমপালস স্টুডিও ব্যবহার করেছি এবং একটি অত্যন্ত অপ্টিমাইজড টিআইএনএমএল মডেল তৈরি করেছি, যা রিয়েল-টাইমে কাশির শব্দ সনাক্ত করতে পারে।

সরবরাহ

হার্ডওয়্যার

  • Arduino 33 BLE সেন্স
  • LEDJumper
  • তারের

সফটওয়্যার

  • এজ ইমপালস স্টুডিও
  • Arduino IDE

ধাপ 1: সার্কিট ডায়াগ্রাম

বর্তনী চিত্র
বর্তনী চিত্র
বর্তনী চিত্র
বর্তনী চিত্র

Arduino 33 BLE সেন্স ব্যবহার করে কাশি সনাক্তকরণের সার্কিট ডায়াগ্রাম উপরে দেওয়া আছে। Arduino 33 BLE এর জন্য ফ্রিজিং অংশ পাওয়া যায় না, তাই আমি Arduino Nano ব্যবহার করেছি কারণ উভয়েরই একই পিন-আউট আছে।

LED এর পজিটিভ লিডটি Arduino 33 BLE সেন্সের ডিজিটাল পিন 4 এর সাথে সংযুক্ত এবং নেগেটিভ লিড Arduino এর GND পিনের সাথে সংযুক্ত।

ধাপ 2: কাশি শনাক্তকরণ মেশিনের জন্য ডেটাসেট তৈরি করা

কাশি শনাক্তকরণ যন্ত্রের জন্য ডেটাসেট তৈরি করা হচ্ছে
কাশি শনাক্তকরণ যন্ত্রের জন্য ডেটাসেট তৈরি করা হচ্ছে

আগেই উল্লেখ করা হয়েছে, আমরা আমাদের কাশি সনাক্তকরণের মডেল প্রশিক্ষণের জন্য এজ ইমপালস স্টুডিও ব্যবহার করছি। তার জন্য, আমাদের এমন একটি ডেটাসেট সংগ্রহ করতে হবে যাতে ডেটার নমুনা থাকে যা আমরা আমাদের Arduino তে চিনতে সক্ষম হতে চাই। যেহেতু লক্ষ্যটি কাশি সনাক্ত করা, তাই আপনাকে এর কিছু নমুনা এবং গোলমালের জন্য অন্য কিছু নমুনা সংগ্রহ করতে হবে, যাতে এটি কাশি এবং অন্যান্য শব্দগুলির মধ্যে পার্থক্য করতে পারে। আমরা দুটি শ্রেণী "কাশি" এবং "শব্দ" দিয়ে একটি ডেটাসেট তৈরি করব। একটি ডেটাসেট তৈরি করতে, একটি এজ ইমপালস অ্যাকাউন্ট তৈরি করুন, আপনার অ্যাকাউন্ট যাচাই করুন এবং তারপরে একটি নতুন প্রকল্প শুরু করুন। আপনি আপনার মোবাইল, আপনার Arduino বোর্ড ব্যবহার করে নমুনা লোড করতে পারেন অথবা আপনি আপনার এজ ইমালস অ্যাকাউন্টে একটি ডেটাসেট আমদানি করতে পারেন। আপনার অ্যাকাউন্টে নমুনা লোড করার সবচেয়ে সহজ উপায় হল আপনার মোবাইল ফোন ব্যবহার করা। তার জন্য, আপনাকে আপনার মোবাইলকে Edge Impulse এর সাথে সংযুক্ত করতে হবে। আপনার মোবাইল ফোন সংযোগ করতে, 'ডিভাইস' এ ক্লিক করুন এবং তারপর 'একটি নতুন ডিভাইস সংযুক্ত করুন' এ ক্লিক করুন।

ধাপ 3: মোবাইল ফোনের সাথে সংযুক্ত করুন

মোবাইল ফোনে সংযোগ করুন
মোবাইল ফোনে সংযোগ করুন

এখন পরবর্তী উইন্ডোতে, 'আপনার মোবাইল ফোন ব্যবহার করুন' এ ক্লিক করুন, এবং একটি QR কোড উপস্থিত হবে। গুগল লেন্স বা অন্যান্য কিউআর কোড স্ক্যানার অ্যাপ ব্যবহার করে আপনার মোবাইল ফোনের সাথে কিউআর কোড স্ক্যান করুন।

এটি আপনার ফোনকে এজ ইমপালস স্টুডিওর সাথে সংযুক্ত করবে।

এজ ইমপালস স্টুডিওর সাথে আপনার ফোনের সাথে সংযুক্ত, আপনি এখন আপনার নমুনা লোড করতে পারেন। নমুনা লোড করতে, 'ডেটা অধিগ্রহণ' এ ক্লিক করুন। এখন ডেটা অর্জনের পৃষ্ঠায়, লেবেলের নাম লিখুন, একটি সেন্সর হিসাবে মাইক্রোফোন নির্বাচন করুন এবং নমুনার দৈর্ঘ্য লিখুন। 40 সেকেন্ডের নমুনার নমুনা শুরু করতে 'নমুনা শুরু করুন' এ ক্লিক করুন। নিজেকে কাশিতে বাধ্য করার পরিবর্তে, আপনি বিভিন্ন দৈর্ঘ্যের অনলাইন কাশির নমুনা ব্যবহার করতে পারেন। বিভিন্ন দৈর্ঘ্যের মোট 10 থেকে 12 কাশির নমুনা রেকর্ড করুন।

ধাপ 4:

ছবি
ছবি
ছবি
ছবি

কাশির নমুনা আপলোড করার পর, এখন 'গোলমাল' লেবেল সেট করুন এবং আরও 10 থেকে 12 শব্দ নমুনা সংগ্রহ করুন।

এই নমুনাগুলি মডিউল প্রশিক্ষণের জন্য, পরবর্তী ধাপে, আমরা পরীক্ষার ডেটা সংগ্রহ করব। পরীক্ষার ডেটা কমপক্ষে 30% প্রশিক্ষণ উপাত্ত হতে হবে, তাই 'গোলমালের 3 টি নমুনা এবং' কাশি'র 4 থেকে 5 টি নমুনা সংগ্রহ করুন। আপনার ডেটা সংগ্রহের পরিবর্তে, আপনি এজ ব্যবহার করে আমাদের এজ ইমপালস অ্যাকাউন্টে আমাদের ডেটাসেট আমদানি করতে পারেন ইমপালস সিএলআই আপলোডার। CLI আপলোডার ইনস্টল করার জন্য প্রথমে আপনার ল্যাপটপে Node.js ডাউনলোড করে ইনস্টল করুন। তারপরে কমান্ড প্রম্পটটি খুলুন এবং নীচের কমান্ডটি প্রবেশ করুন:

npm install -g edge-impulse-cli

এখন ডেটাসেট (ডেটাসেট লিঙ্ক) ডাউনলোড করুন এবং আপনার প্রকল্প ফোল্ডারে ফাইলটি বের করুন। কমান্ড প্রম্পট খুলুন এবং ডেটাসেট অবস্থানে নেভিগেট করুন এবং নীচের কমান্ডগুলি চালান:

এজ-ইমপালস-আপলোডার-ক্লিনেড-ইমপালস-আপলোডার-ক্যাটাগরি ট্রেনিং ট্রেনিং/*।

এজ-ইমপালস-আপলোডার-বিভাগ প্রশিক্ষণ প্রশিক্ষণ/*

এজ-ইমপালস-আপলোডার-ক্যাটাগরি টেস্টিং টেস্টিং/*।

ধাপ 5: মডেল প্রশিক্ষণ এবং কোড পরিবর্তন

যেহেতু ডেটাসেট প্রস্তুত, এখন আমরা ডেটার জন্য একটি আবেগ তৈরি করব। এর জন্য 'ইমপালস তৈরি করুন' পৃষ্ঠায় যান।

এখন 'ইমপালস তৈরি করুন' পৃষ্ঠায়, 'একটি প্রসেসিং ব্লক যুক্ত করুন' এ ক্লিক করুন। পরবর্তী উইন্ডোতে, অডিও (MFCC) ব্লক নির্বাচন করুন। এর পরে 'একটি লার্নিং ব্লক যোগ করুন' এ ক্লিক করুন এবং নিউরাল নেটওয়ার্ক (কেরাস) ব্লকটি নির্বাচন করুন। তারপর 'সেভ ইমপালস' এ ক্লিক করুন।

পরবর্তী ধাপে, এমএফসিসি পৃষ্ঠায় যান এবং তারপরে 'জেনারেট বৈশিষ্ট্য' এ ক্লিক করুন। এটি আমাদের সকল অডিও উইন্ডোজের জন্য MFCC ব্লক তৈরি করবে।

তারপরে 'এনএন ক্লাসিফায়ার' পৃষ্ঠায় যান এবং 'নিউরাল নেটওয়ার্ক সেটিংস' এর উপরের ডানদিকে তিনটি বিন্দুতে ক্লিক করুন এবং 'কেরাস (বিশেষজ্ঞ) মোডে যান' নির্বাচন করুন।

নিম্নলিখিত কোডটি দিয়ে আসলটি প্রতিস্থাপন করুন এবং 'ন্যূনতম আস্থা রেটিং' কে '0.70' এ পরিবর্তন করুন। তারপরে 'প্রশিক্ষণ শুরু করুন' বোতামে ক্লিক করুন। এটি আপনার মডেলকে প্রশিক্ষণ দিতে শুরু করবে।

tensromflow.keras.models থেকে tensorflow আমদানি করুন tensorflow.keras.layers থেকে ক্রমানুসারে আমদানি করুন ঘন, ইনপুট লেয়ার, ড্রপআউট, ফ্ল্যাটেন, রিসেপ, ব্যাচ নরমালাইজেশন, কনভ 2 ডি, ম্যাক্সপুলিং 2 ডি, এভারেজপুলিং 2 ডি টেন্সরফ্লো থেকে। MaxNorm # মডেল আর্কিটেকচার মডেল = ক্রমিক () model.add (InputLayer (input_shape = (X_train.shape [1],), name = 'x_input')) model.add 13), 13, 1), input_shape = (X_train.shape [1],))) model.add (Conv2D (10, kernel_size = 5, activation = 'relu', padding = 'same', kernel_constraint = MaxNorm (3))) model.add (AveragePooling2D (pool_size = 2, padding = 'same')) model.add (Conv2D (5, kernel_size = 5, activation = 'relu', padding = 'same', kernel_constraint = MaxNorm (3))) model.add (AveragePooling2D (pool_size = 2, padding = 'same')) model.add (Flatten ()) model.add (Dense (classes, activation = 'softmax', name = 'y_pred', kernel_constraint = MaxNorm (3))) # এটি শেখার হার নিয়ন্ত্রণ করে opt = Adam (lr = 0.005, beta_ 1 = 0.9, beta_2 = 0.999) # নিউরাল নেটওয়ার্ক model.compile (ক্ষতি = 'ক্যাটাগরিয়াল_ক্রোসেন্ট্রপি', অপটিমাইজার = অপ্ট, মেট্রিক্স = ['নির্ভুলতা']) মডেল প্রশিক্ষণ করুন।, validation_data = (X_test, Y_test), verbose = 2)

ধাপ 6:

মডেল প্রশিক্ষণ পরে, এটি প্রশিক্ষণ কর্মক্ষমতা প্রদর্শন করবে। আমার জন্য, নির্ভুলতা ছিল 96.5% এবং ক্ষতি ছিল 0.10 যা এগিয়ে যাওয়া ভাল।

এখন যেহেতু আমাদের কাশি শনাক্তকরণ মডেল প্রস্তুত, আমরা এই মডেলটিকে আরডুইনো লাইব্রেরি হিসেবে স্থাপন করব। লাইব্রেরি হিসাবে মডেলটি ডাউনলোড করার আগে, আপনি 'লাইভ ক্লাসিফিকেশন' পৃষ্ঠায় গিয়ে পারফরম্যান্স পরীক্ষা করতে পারেন। 'স্থাপনা' পৃষ্ঠায় যান এবং 'আরডুইনো লাইব্রেরি' নির্বাচন করুন। এখন নীচে স্ক্রোল করুন এবং প্রক্রিয়াটি শুরু করতে 'বিল্ড' এ ক্লিক করুন। এটি আপনার প্রকল্পের জন্য একটি Arduino লাইব্রেরি তৈরি করবে।

এখন আপনার Arduino IDE তে লাইব্রেরি যোগ করুন। এর জন্য Arduino IDE খুলুন এবং তারপর Sketch> Include Library> Add. ZIP Library এ ক্লিক করুন। তারপরে, ফাইল> উদাহরণ> আপনার প্রকল্পের নাম - এজ ইমপালস> nano_ble33_sense_microphone এ গিয়ে একটি উদাহরণ লোড করুন। আমরা কোডে কিছু পরিবর্তন করব যাতে Arduino কাশি সনাক্ত করলে আমরা একটি সতর্ক শব্দ করতে পারি। এর জন্য, একটি বুজার আরডুইনো দিয়ে ইন্টারফেস করা হয় এবং যখনই এটি কাশি সনাক্ত করে, LED তিনবার জ্বলজ্বল করবে। পরিবর্তনগুলি অকার্যকর লুপ () ফাংশনে করা হয় যেখানে এটি শব্দ এবং কাশির মান মুদ্রণ করে। মূল কোডে, এটি উভয় লেবেল এবং তাদের মান একসাথে মুদ্রণ করছে। জন্য (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 এর বেশি এবং এটি শব্দ করবে। এর সাথে লুপ () কোডের মূলটি প্রতিস্থাপন করুন: for (size_t ix = 1; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {Serial.print (result.classification [ix].value); float data = result.classification [ix].value; যদি (ডেটা <0.50) {সিরিয়াল.প্রিন্ট ("কাশি সনাক্ত"); এলার্ম (); }} পরিবর্তন করার পরে, কোডটি আপনার Arduino এ আপলোড করুন। 115200 বডিতে সিরিয়াল মনিটর খুলুন।

সুতরাং এভাবেই কাশি শনাক্তকরণ মেশিন তৈরি করা যায়, কোন COVID19 সন্দেহভাজনকে খুঁজে বের করার জন্য এটি খুব কার্যকর পদ্ধতি নয় কিন্তু এটি কিছু জনাকীর্ণ এলাকায় সুন্দরভাবে কাজ করতে পারে।

ধাপ 7: কোড

সংযুক্ত ফাইল খুঁজে বের করুন, এবং যদি আপনি এটি পছন্দ করেন তবে নীচের প্রতিযোগিতায় আমাকে ভোট দিতে ভুলবেন না।

প্রস্তাবিত: