في هذه المقالة سنعمل على مشروع اكتشاف نوم أعضاء البرلمان في مقر عملهم ، حيث يتم إرسال تنبيه لرئيس الجلسة أو يعمل منبه من أجل إنذارهم و إيقاضهم،حيث سيتم استعمال أنترنت الأشياء (internet of things) و الذكاء الإصطناعي و بالضبط computer vision أو رؤية الكمبيوتر ، قبل أن نشرح خطوات عمل هذا المشروع أو نعمل أي تطبيق ضروري يجب معرفة ما هو computer vision و ما هي أنترنت الأشياء و أيضا يجب معرفة لهاردور و سافتور الذي سنحتاجهم .
computer vision أو رؤية الكمبيوتر هي فئة فرعية من الذكاء الاصطناعي تركز على بناء واستخدام الأنظمة الرقمية لمعالجة البيانات المرئية وتحليلها وتفسيرها. الهدف من رؤية الكمبيوتر هو تمكين أجهزة الحوسبة من التعرف بشكل صحيح على كائن أو شخص في صورة رقمية واتخاذ الإجراء المناسب.
تستخدم رؤية الكمبيوتر الشبكات العصبية التلافيفية (CNN) لمعالجة البيانات المرئية على مستوى البكسل والتعلم العميق للشبكة العصبية المتكررة (RNN) لفهم كيفية ارتباط بكسل واحد بآخر.
CNN و RNN هما نوع من أنواع الشبكات العصبية ، سنعمل فيديو خاص بهم على قناتنا في اليوتيوب مستقبلا إن شاء الله
إنترنت الأشياء ، أو internet of things ، هو نظام من أجهزة الحوسبة المترابطة ، والآلات الميكانيكية والرقمية ، والأشياء ، والحيوانات أو الأشخاص التي يتم تزويدها بمعرفات فريدة (ID) ، لها القدرة على نقل البيانات عبر الشبكة دون الحاجة إلى التفاعل بين الإنسان و الكمبيوتر.
بالنسبة لخطوات عمل هاد المشروع،
أولا يجب أن تكتشف الكاميرا نوم أحد أعضاء البرلمان عن طريق computer vision ،ثم بعدها يتم إرسال المعلومات المراد إرسالها من Raspberry pi إلى كلاود (سحابة إلكترونية) عن طريق الأنترنت ، ثم بعدها يتم إرسال ذلك المعلومات من السحابة الإلكترونية إلى التطبيق الخاص برئيس الجلسة . بالنسبة للسحابة الإلكترونية ممكن أن نعمل ب PUSHBULLET التي تسمح لنا بربط و إيصال أجهزتنا و نقل بعض المعلومات بينهم من خلال سكريبت بايثون الخاص بنا.
بالنسبة لخطوات اكتشاف نوم شخص معين ، أول شيء نحدد موقع الوجه و الكشف عن الهياكل الأساسية للوجه (معالم الوجه) عن طريق مكتبة ضليب التي تسمح لنا بالتحكم في كل نقطة من هذه النقط
ثم بعدها يتم استخراج النقط الخاصة بالعيون فقط ، ثم يتم حساب نسبة عرض إلى ارتفاع العين أو eye aspect ratio ، لمعرفة هل العين مغمضة أم لا ، و من طبيعة الحال سيكون أيضا عداد لحساب كم من الوقت و العين مغمضة ، لأن إذا كانت العين مغمضة لا يعني أن الشخص نائم ، ممكن يكون سبب ثاني ، و لكن إذا كانت العين مغمضة مدة معينة فهذا يعني أن الشخص نائم .
بالنسبة للهاردور الذي سنحتاجه :
Raspberrypi3 ، card_SD ، CAMERA_V2
و بالنسبة لسافتور الذي سنحتاجه :
opencv
و Dlib لتحديد موقع الوجه و التحكم في معالم الوجه ثم اكتشاف نوم الشخص
picamera للتحكم في كاميرا راسبيريبي من خلال سكريبت بايثون .
في هذا المشروع سنعمل تطبيق للجزء الخاص ب computer vision فقط لأننا لا نتوفر على لهاردور لتطبيق أنترنت الأشياء أوIOT، و أيضا لأن جزء computer vision هو الذي يحتاج الكثير من العمل .
كما نعلم ، أن الفيديو مكون من مجموعة من الصور ، إذن سنعمل أولا على صورة معينة فقط و بعدها سنعمل فقط تغييرات خفيفة في سكريبت لتطبيقه على فيديو .
ستجدوا هنا الأكواد الخاصة بالمشروع على GitHub 💻:
https://github.com/AyoubAllali1/Parliament_members_Sleeping_Detection
