সুচিপত্র:

মুখ সনাক্তকরণ এবং সনাক্তকরণ - OpenCV পাইথন এবং Arduino ব্যবহার করে Arduino ফেস আইডি: 6 ধাপ
মুখ সনাক্তকরণ এবং সনাক্তকরণ - OpenCV পাইথন এবং Arduino ব্যবহার করে Arduino ফেস আইডি: 6 ধাপ

ভিডিও: মুখ সনাক্তকরণ এবং সনাক্তকরণ - OpenCV পাইথন এবং Arduino ব্যবহার করে Arduino ফেস আইডি: 6 ধাপ

ভিডিও: মুখ সনাক্তকরণ এবং সনাক্তকরণ - OpenCV পাইথন এবং Arduino ব্যবহার করে Arduino ফেস আইডি: 6 ধাপ
ভিডিও: Leap Motion SDK 2024, জুন
Anonim
Image
Image

মুখের স্বীকৃতি AKA ফেস আইডি আজকাল মোবাইল ফোনের অন্যতম গুরুত্বপূর্ণ বৈশিষ্ট্য।

সুতরাং, আমার একটি প্রশ্ন ছিল "আমার আরডুইনো প্রকল্পের জন্য আমার কি ফেস আইডি থাকতে পারে" এবং উত্তরটি হ্যাঁ …

আমার যাত্রা নিম্নরূপ শুরু হয়েছিল:

ধাপ 1: ওয়েবক্যাম অ্যাক্সেস

পদক্ষেপ 2: মুখ সনাক্তকরণ

ধাপ 3: তথ্য সংগ্রহ

ধাপ 4: প্রশিক্ষণ

ধাপ 5: মুখ স্বীকৃতি

ধাপ 6: Arduino প্রোগ্রামিং

আমি নীচের সমস্ত পদক্ষেপ ব্যাখ্যা করব। আমি আশা করি এটি আপনাকে সাহায্য করবে।

ধাপ 1: ওয়েবক্যাম অ্যাক্সেস

ওয়েবক্যাম অ্যাক্সেস
ওয়েবক্যাম অ্যাক্সেস

মুখের স্বীকৃতির জন্য প্রথম ধাপটি ছিল একটি ক্যামেরা বা কম্পিউটার ভিশন অ্যাক্সেস করা। যেহেতু ভারত লকডাউনের অধীনে রয়েছে আমি খুঁজে পেয়েছি আমার কম্পিউটারের ওয়েবক্যাম ব্যবহার করা যা আমি ওপেনসিভি মডিউল ব্যবহার করে একটি পাইথন প্রোগ্রামের সাথে অ্যাক্সেস পেয়েছিলাম।

আপনি হয়তো ভাবছেন ওপেনসিভি কি, তাই না?

ওপেনসিভি (ওপেন সোর্স কম্পিউটার ভিশন লাইব্রেরি) একটি ওপেন সোর্স কম্পিউটার ভিশন এবং মেশিন লার্নিং সফটওয়্যার লাইব্রেরি। কম্পিউটার ভিশন অ্যাপ্লিকেশনগুলির জন্য একটি সাধারণ অবকাঠামো সরবরাহ এবং বাণিজ্যিক পণ্যগুলিতে মেশিন উপলব্ধির ব্যবহারকে ত্বরান্বিত করার জন্য ওপেনসিভি তৈরি করা হয়েছিল।

যদি আপনার কম্পিউটারে ওপেনসিভি ইনস্টল করা থাকে তাহলে আপনি যেতে ভাল। যদি না হয় তাহলে এই ধাপটি অনুসরণ করুন।

কমান্ড প্রম্পট খুলুন এবং "pip install opencv" টাইপ করুন।

সতর্কতা: আপনি একটি ত্রুটি পেতে পারেন কারণ "'পিপ' একটি অভ্যন্তরীণ বা বাহ্যিক কমান্ড হিসাবে স্বীকৃত নয়"। যার জন্য আপনাকে আপনার PIP সিস্টেম ভেরিয়েবলে আপনার পিপ ইনস্টলেশনের পথ যোগ করতে হবে। এই পোস্টটি পড়ুন এটি আপনাকে সাহায্য করতে পারে।

stackoverflow.com/questions/23708898/pip-i…

একবার OpenCV ইনস্টল হয়ে গেলে আমরা যেতে ভাল … এটি সঠিকভাবে ইনস্টল করা আছে কিনা তা পরীক্ষা করার জন্য আপনার পাইথন দোভাষী খুলুন এবং লাইব্রেরি আমদানি করুন। উপরের চিত্রটি দেখুন আপনার আউটপুট হওয়া উচিত।

পাইথন ফাইল "AccessTo_webcam.py" ডাউনলোড করুন এবং এটি চালান। আমি সেখানে সব প্রয়োজনীয় মন্তব্য প্রদান করেছি।

সেখানে আপনি যান, এখন আপনি ওয়েবক্যাম অ্যাক্সেস আছে। সাবাশ. আসুন ধাপ 2 এ এগিয়ে যাই।

ধাপ 2: মুখ সনাক্তকরণ

মুখ সনাক্তকরণ।
মুখ সনাক্তকরণ।

একই OpenCV মডিউলের সাহায্যে, ভিডিও স্ট্রীমে কোন মুখ আছে কিনা তা আমাদের চিহ্নিত করতে হবে।

ওপেনসিভি একটি প্রশিক্ষণ পদ্ধতি বা প্রাক-প্রশিক্ষিত মডেল সরবরাহ করে যা ক্যাসকেড ক্লাসিফায়ার নামে পরিচিত। পূর্ব-প্রশিক্ষিত মডেলগুলি ওপেনসিভি ইনস্টলেশনের ডেটা ফোল্ডারে অবস্থিত। আমি সেই ফাইলটি প্রদান করছি শুধু এটি ডাউনলোড করুন এবং আপনার প্রকল্প ফোল্ডারে রাখুন। যে ফোল্ডারে "AccessTo_webcam.py" ফাইলটি সংরক্ষিত আছে। যদি আপনি একটি তৈরি না করেন তাহলে এটি করুন।

"Haarcascade_frontalface_default" ডাউনলোড করুন এবং প্রধান প্রকল্প ফোল্ডারে রাখুন।

"Face_identification.py" ডাউনলোড করুন এবং এটি প্রধান প্রকল্প ফোল্ডারে রাখুন। সব ব্যাখ্যা এতে দেওয়া আছে।

এখন আপনি একটি ভিডিও স্ট্রীমে মুখগুলি সনাক্ত করতে পারেন। সুতরাং আসুন ধাপ 3 এ এগিয়ে যাই।

ধাপ 3: তথ্য সংগ্রহ

তথ্য সংগ্রহ
তথ্য সংগ্রহ

মুখগুলি চিনতে হলে আমাদের পাইথন প্রোগ্রামকে প্রশিক্ষণ দিতে হবে। যার জন্য আমাদের কিছু ডেটা দরকার।

ডেটা সংগ্রহ এই প্রকল্পের সবচেয়ে সহজ পদক্ষেপ। আপনার প্রধান প্রকল্প ফোল্ডারে "image_data" নামে একটি ফোল্ডার তৈরি করুন। "Image_data" ফোল্ডারের ভিতরে ব্যক্তির নাম সহ কিছু অতিরিক্ত ফোল্ডার তৈরি করুন, যেখানে আমরা ডেটা সংরক্ষণ করব। উদাহরণ স্বরূপ:

"Image_data" ফোল্ডারে আমি "HRK" এবং "Yahiya" নামে আরো দুটি ফোল্ডার তৈরি করেছি। উপরের ছবিতে দেখানো হয়েছে।

এখন আপনার নিজের ফোল্ডার তৈরি করুন এবং তাদের নাম দিন।

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

এটাই এখন 4 ধাপে এগিয়ে যাওয়া যাক।

ধাপ 4: প্রশিক্ষণ

সংক্ষেপে, আমরা "image_data" ফোল্ডারে উপস্থিত সমস্ত ফোল্ডার এবং চিত্রগুলি দিয়ে যাব এবং একটি অভিধান তৈরি করব যাতে লেবেল আইডি এবং সংশ্লিষ্ট নাম থাকবে। একই সাথে আমরা প্রতিটি ইমেজে মুখ সনাক্ত করার জন্য ছবিটি লোড করব যাকে আমরা "আগ্রহের অঞ্চল" বলি এবং একটি ".yml" ফাইল তৈরি করি যাতে সেই তথ্য থাকে।

ধরে নিচ্ছি যে আপনার কাছে X এবং Y ব্যক্তির জন্য তথ্য সংগ্রহ করা আছে।

আমরা ব্যক্তি X কে 1 হিসাবে চিহ্নিত করব যা তার লেবেল আইডি হবে এবং নাম নিজেই X হবে। আমরা ছবিটি লোড করি তার চেহারা অর্থাৎ আগ্রহের অঞ্চল খুঁজে পেতে এবং একটি তালিকাতে ডেটা যুক্ত করি।

ব্যক্তি Y- এর জন্য একই ধাপ অনুসরণ করা হবে এবং পরিশেষে, আমরা একটি ".yml" ফাইল তৈরি করব।

"Face_trainer.py" ফাইলটি ডাউনলোড করুন এবং প্রধান প্রকল্প ফোল্ডারে রাখুন। সমস্ত প্রয়োজনীয় ব্যাখ্যা সেই ফাইলটিতেই দেওয়া আছে।

যখন আপনি এই প্রোগ্রামটি চালাবেন তখন এটি সমস্ত চিত্রের মধ্য দিয়ে যাবে এবং "labels.pickle" এবং "trainner.yml" নামে দুটি ফাইল তৈরি করবে। এখন আপনি আপনার নিজের মডেল প্রশিক্ষণ দিয়েছেন। সুতরাং চলুন ধাপ 5 এ এগিয়ে যাই।

ধাপ 5: মুখ স্বীকৃতি

মুখ স্বীকৃতি
মুখ স্বীকৃতি

যদি আপনি সঠিকভাবে সমস্ত ধাপ অতিক্রম করে থাকেন তবে আপনি নিজের প্রশিক্ষিত ডেটা তৈরি করতে পারেন। এখন আমরা মুখ সনাক্তকরণের জন্য সেই ডেটা ব্যবহার করব।

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

"Face_recognise.py" ডাউনলোড করুন এবং এটি চালান। এতে প্রয়োজনীয় সব তথ্য দেওয়া আছে। এখন হয়তো আপনার চেহারা চিনতে পারা গেছে। যদি সঠিকতা ভাল না হয় তবে ডেটা আপডেট করার চেষ্টা করুন। যদি আপনি সবাই ভালো থাকেন তাহলে চলুন ধাপ 6/

ধাপ 6: Arduino প্রোগ্রামিং

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

আপনি যদি ভিডিওটি দেখে থাকেন তবে আমি আপনাকে কী করেছি তা আপনাকে ব্যাখ্যা করতে দিন। যখন আমার মুখটি স্বীকৃত হয় তখন প্রদত্ত লেবেল আইডি হল ২। একবার লেবেল আইডি 2 হলে আমি আমার আরডুইনোতে সিরিয়াল ডেটা হিসাবে '1' পাঠাব। যা আমার LED চেজার সার্কিট চালু করবে। যদি লেবেল আইডি 2 ছাড়া অন্য হয় তবে আমি সিরিয়াল ডেটা হিসাবে '0' পাঠাব, যা আমার LED চেজার সার্কিট বন্ধ করে দেবে।

"Ard_chaser.ino" ফাইলটি ডাউনলোড করুন। এটি একটি সাধারণ LED চেজার প্রোগ্রাম যা সিরিয়াল যোগাযোগ ব্যবহার করে।

সহজভাবে "face_recogniser1.py" ডাউনলোড করুন যা Arduino এবং python প্রোগ্রামের মধ্যে সিরিয়াল যোগাযোগ স্থাপন করবে।

এই নাও. আমি আশা করি আপনি নতুন কিছু শিখেছেন। পাইথন এবং আরডুইনো সম্পর্কিত আরও জিনিসের জন্য আমার ইউটিউব চ্যানেলটি সাবস্ক্রাইব করুন। ভালো লাগলে শেয়ার করুন। সমর্থন করতে থাকুন।

ধন্যবাদ.

প্রস্তাবিত: