جدول المحتويات:

التعرف على الوجوه والتعرف عليها - Arduino Face ID باستخدام OpenCV Python و Arduino: 6 خطوات
التعرف على الوجوه والتعرف عليها - Arduino Face ID باستخدام OpenCV Python و Arduino: 6 خطوات

فيديو: التعرف على الوجوه والتعرف عليها - Arduino Face ID باستخدام OpenCV Python و Arduino: 6 خطوات

فيديو: التعرف على الوجوه والتعرف عليها - Arduino Face ID باستخدام OpenCV Python و Arduino: 6 خطوات
فيديو: التعرف على اليد باستخدام بايثون | Hand Tracking python opencv 2024, سبتمبر
Anonim
Image
Image

التعرف على الوجه AKA Face ID هي واحدة من أهم الميزات على الهواتف المحمولة في الوقت الحاضر.

لذلك ، كان لدي سؤال "هل يمكنني الحصول على معرف وجه لمشروع Arduino الخاص بي" والإجابة هي نعم …

بدأت رحلتي على النحو التالي:

الخطوة 1: الوصول إلى كاميرا الويب

الخطوة 2: التعرف على الوجه.

الخطوة 3: جمع البيانات

الخطوة 4: التدريب

الخطوة 5: التعرف على الوجوه

الخطوة 6: برمجة اردوينو

سأشرح جميع الخطوات أدناه. آمل أن يساعدك هذا.

الخطوة 1: الوصول إلى كاميرا الويب

الوصول إلى كاميرا الويب
الوصول إلى كاميرا الويب

كانت الخطوة الأولى للتعرف على الوجه هي الوصول إلى الكاميرا أو رؤية الكمبيوتر. نظرًا لأن الهند قيد الإغلاق ، كان الحل الأرخص الذي وجدته هو استخدام كاميرا الويب الخاصة بجهاز الكمبيوتر والتي تمكنت من الوصول إليها باستخدام برنامج python باستخدام وحدة openCV.

قد تفكر في ما هو OpenCV ، أليس كذلك؟

OpenCV (مكتبة رؤية الكمبيوتر مفتوحة المصدر) هي مكتبة برمجيات رؤية الكمبيوتر والتعلم الآلي مفتوحة المصدر. تم بناء OpenCV لتوفير بنية تحتية مشتركة لتطبيقات رؤية الكمبيوتر ولتسريع استخدام تصور الآلة في المنتجات التجارية.

إذا تم تثبيت Opencv على جهاز الكمبيوتر الخاص بك ، فأنت على ما يرام. إذا لم يكن كذلك ، فاتبع هذه الخطوة.

افتح موجه الأوامر واكتب "pip install opencv".

تحذير: قد تحصل على خطأ لأن "النقطة" لم يتم التعرف عليها كأمر داخلي أو خارجي ". التي تحتاج إلى إضافة مسار تثبيت النقطة إلى متغير نظام PATH. انتقل من خلال هذا المنشور قد يساعدك.

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

بمجرد تثبيت OpenCV ، من الجيد أن نبدأ … للتحقق مما إذا كان مثبتًا بشكل صحيح ، افتح مترجم Python واستورد المكتبة. انظر إلى الصورة أعلاه التي يجب أن تكون ناتجك.

قم بتنزيل ملف python "AccessTo_webcam.py" وتشغيله. لقد قدمت كل التعليقات اللازمة هناك.

ها أنت ذا ، الآن يمكنك الوصول إلى كاميرا الويب. أحسنت. دعنا ننتقل إلى الخطوة 2.

الخطوة الثانية: تحديد الوجه

تحديد الوجه
تحديد الوجه

بمساعدة نفس وحدة OpenCV ، علينا تحديد ما إذا كان هناك وجه في دفق الفيديو أم لا.

يوفر OpenCV طريقة تدريب أو نماذج مدربة مسبقًا تسمى Cascade Classifier. توجد النماذج المدربة مسبقًا في مجلد البيانات في تثبيت OpenCV. أقدم هذا الملف فقط قم بتنزيله ووضعه في مجلد مشروعك. المجلد حيث يتم تخزين ملف "AccessTo_webcam.py". إذا لم تقم بإنشاء واحدة ، فافعلها.

قم بتنزيل "haarcascade_frontalface_default" وضعه في مجلد المشروع الرئيسي.

قم بتنزيل "Face_identification.py" وضعه في مجلد المشروع الرئيسي. يتم توفير كل الشرح فيه.

الآن يمكنك التعرف على الوجوه في دفق الفيديو. لذلك دعنا ننتقل إلى الخطوة 3.

الخطوة 3: جمع البيانات

جمع البيانات
جمع البيانات

للتعرف على الوجوه ، نحتاج إلى تدريب برنامج بيثون الخاص بنا. التي نحتاج إلى بعض البيانات.

جمع البيانات هو بالأحرى أسهل خطوة في هذا المشروع. قم بإنشاء مجلد باسم "image_data" في مجلد مشروعك الرئيسي. داخل مجلد "image_data" ، أنشئ بعض المجلدات الإضافية باسم الشخص ، حيث سنقوم بتخزين البيانات. على سبيل المثال:

في مجلد "image_data" قمت بإنشاء مجلدين آخرين باسم "HRK" و "يحيى". كما هو موضح في الصورة أعلاه.

الآن قم بإنشاء مجلداتك الخاصة وقم بتسميتها.

بمجرد إنشاء المجلدات ، ابدأ في جمع الصور لهذا الشخص المحدد. أوصي بجمع ما يقرب من 20 صورة لكل شخص. يمكنك أيضًا إضافة المزيد من الصور ولكن مع التأكد من أن البيانات التي تم جمعها لجميع الأشخاص تحتوي على نفس عدد الصور. يساعد على توفير الدقة.

هذا كل شيء الآن دعنا ننتقل إلى الخطوة 4.

الخطوة 4: التدريب

باختصار ، سوف نتصفح جميع المجلدات والصور الموجودة في مجلد "image_data" وننشئ قاموسًا يحتوي على معرف التسمية والاسم المقابل. في نفس الوقت سنقوم بتحميل الصورة لاكتشاف الوجه في كل صورة والتي نسميها "منطقة الاهتمام" وإنشاء ملف ".yml" الذي يحتوي على تلك المعلومات.

بافتراض أن لديك بيانات مجمعة عن الشخص X و Y.

سنقوم بتصنيف الشخص X على أنه 1 والذي سيكون معرف التسمية الخاص به والاسم سيكون X نفسه. نقوم بتحميل الصورة للعثور على وجهه ، أي منطقة الاهتمام وإلحاق البيانات بقائمة.

سيتم اتباع خطوات مماثلة للشخص Y. وأخيرًا ، سننشئ ملف ".yml".

قم بتنزيل ملف "face_trainer.py" وضعه في مجلد المشروع الرئيسي. يتم توفير جميع التفسيرات اللازمة في هذا الملف نفسه.

عند تشغيل هذا البرنامج سوف يمر بجميع الصور ويقوم بإنشاء ملفين باسم "labels.pickle" و "trainner.yml". الآن قمت بتدريب نموذجك الخاص. لذلك دعنا ننتقل إلى الخطوة 5.

الخطوة 5: التعرف على الوجه

تمييز الوجوه
تمييز الوجوه

إذا كنت قد نفذت جميع الخطوات بشكل صحيح ، فربما تكون قد أنشأت بياناتك المدربة. الآن سوف نستخدم هذه البيانات للتعرف على الوجوه.

سنقوم أساسًا بتحميل نماذجنا المدربة في ملف python ، والوصول إلى كاميرا الويب الخاصة بنا ، وتحديد الوجوه في دفق الفيديو وإجراء مقارنة أو توقع بين الوجه الحالي المحدد في دفق الفيديو ، والنموذج الذي تم تدريبه. إذا كانت البيانات متطابقة ، فنحن نقول أنه يتم التعرف على الشخص ، فالأمر بهذه البساطة …

قم بتنزيل "face_recognise.py" وتشغيله. يتم توفير جميع المعلومات اللازمة فيه. الآن ربما تم التعرف على وجهك. إذا لم تكن الدقة جيدة ، فحاول تحديث البيانات. إذا كنت على ما يرام ، فدعنا ننتقل إلى الخطوة 6 /

الخطوة السادسة: برمجة اردوينو

الخطوة الأخيرة والأخيرة هي برمجة Arduino ، ولتوفير طريقة اتصال بين Python و Arduino. للتواصل ، استخدمت "الاتصال التسلسلي". قم بالمرور على مقطع الفيديو الذي قمت بربطه أعلاه لمعرفة كيفية عمل Serial Communication وإنشاء واحد ، وستجد جميع الملفات المطلوبة في وصف الفيديو.

إذا كنت قد شاهدت الفيديو ، دعني أشرح لك ما فعلته. عندما يتم التعرف على وجهي ، يكون معرف الملصق المقدم هو 2. بمجرد أن يصبح معرف الملصق 2 ، سأرسل "1" كبيانات تسلسلية إلى Arduino. والتي ستعمل على دارة مطارد LED الخاصة بي. إذا كان معرّف الملصق غير 2 ، فسأرسل "0" كبيانات تسلسلية ، مما سيؤدي إلى إيقاف تشغيل دائرة مطارد LED.

قم بتنزيل ملف "ard_chaser.ino". إنه برنامج مطارد LED بسيط يستخدم الاتصال التسلسلي.

قم بتنزيل "face_recogniser1.py" بشكل متزامن والذي سيؤسس الاتصال التسلسلي بين Arduino وبرنامج python.

ها أنت ذا. أتمنى أن تكون قد تعلمت شيئًا جديدًا. اشترك في قناة يوتيوب الخاصة بي لمزيد من الأشياء المتعلقة ببيثون واردوينو. شارك هذا اذا اعجبك استمر في الدعم.

شكرا لك.

موصى به: