جدول المحتويات:
- الخطوة 1: الأشياء التي تحتاجها
- الخطوة 2: كود Python مع مجموعة بيانات توقع شكل العيون (إصدار الكمبيوتر الشخصي)
- الخطوة 3: إصدار Raspberry Pi
فيديو: نظام تنبيه النعاس: 3 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
كل عام يفقد الكثير من الناس حياتهم بسبب حوادث الطرق المميتة في جميع أنحاء العالم والقيادة بالنعاس هي أحد الأسباب الرئيسية لحوادث الطرق والوفاة. غالبًا ما يكون الإرهاق والنوم الجزئي عند أدوات التحكم في القيادة السبب الجذري للحوادث الخطيرة. ومع ذلك ، يمكن الكشف عن العلامات الأولية للإرهاق قبل ظهور موقف حرج ، وبالتالي فإن اكتشاف إرهاق السائق وإشاراته هو موضوع بحث مستمر. تعتمد معظم الطرق التقليدية للكشف عن النعاس على جوانب سلوكية في حين أن بعضها تدخلي وقد يشتت انتباه السائقين ، بينما يتطلب بعضها أجهزة استشعار باهظة الثمن. لذلك ، في هذا البحث ، تم تطوير وتنفيذ نظام للكشف عن النعاس للسائق في الوقت الفعلي خفيف الوزن ويتم تنفيذه على تطبيق Android. يسجل النظام مقاطع الفيديو ويكتشف وجه السائق في كل إطار باستخدام تقنيات معالجة الصور. النظام قادر على اكتشاف معالم الوجه ، وحساب نسبة ارتفاع العين (EAR) ونسبة إغلاق العين (ECR) لاكتشاف نعاس السائق بناءً على العتبة التكيفية. تم استخدام خوارزميات التعلم الآلي لاختبار فعالية النهج المقترح. تظهر النتائج التجريبية أن النموذج المقترح قادر على تحقيق دقة تصل إلى 84٪ باستخدام مصنف الغابة العشوائي.
الخطوة 1: الأشياء التي تحتاجها
1. RASPBERRY PI
2. WEBCAM (C270 HD WEB CAM للحصول على نتائج أفضل)
قد يحتاج إصدار الكمبيوتر إلى بعض التغييرات في الكود
الخطوة 2: كود Python مع مجموعة بيانات توقع شكل العيون (إصدار الكمبيوتر الشخصي)
لاكتشاف العيون بشكل فعال في فيديو في الوقت الفعلي ، يمكننا استخدام ملف dat هذا sbelow.
drive.google.com/open؟id=1UiSHe72L4TeN14VK…
قم بتنزيل ملف dat من الرابط أعلاه وقم بتشغيل كود python أدناه
كود بايثون
من scipy.spatial import بعد من imutils استيراد face_utils استيراد imutils استيراد dlib استيراد cv2
def eye_aspect_ratio (العين):
A = Distance.euclidean (العين [1] ، العين [5]) B = المسافة euclidean (العين [2] ، العين [4]) C = المسافة euclidean (العين [0] ، العين [3]) الأذن = (A + B) / (2.0 * C) عتبة الأذن العائدة = 0.25 frame_check = 20 اكتشاف = dlib.get_frontal_face_detector () توقع = dlib.shape_predictor (". / shape_predictor_68_face_landmarks.dat") # ملف Dat هو جوهر الكود
(lStart، lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["left_eye"]
(rStart، rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["right_eye"] cap = cv2. VideoCapture (0) flag = 0 بينما True: ret ، frame = cap.read () frame = imutils.resize (frame، width = 450) grey = cv2.cvtColor (frame، cv2. COLOR_BGR2GRAY) الموضوعات = اكتشاف (رمادي ، 0) للموضوع في الموضوعات: الشكل = توقع (رمادي ، الموضوع) الشكل = face_utils.shape_to_np (شكل) # التحويل إلى NumPy Array leftEye = الشكل [lStart: lEnd] rightEye = الشكل [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) rightEAR = eye_aspect_ratio (rightEye) ear = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2. drawContours (frame، [leftEyeHull]، -1، (0، 255، 0)، 1) cv2.drawContours (frame، [rightEyeHull]، -1، (0، 255، 0)، 1) if ear = frame_check: cv2.putText (frame، "****************** ALERT! ****************"، (10، 30)، cv2. FONT_HERSHEY_SIMPLEX، 0.7، (0، 0، 255)، 2) cv2.putText (frame، "**************** ALERT! *********** ***** "، (10، 325)، cv2. FONT_HERSHEY_SIMPLEX، 0.7، (0، 0، 255)، 2) #print (" Dro wsy ") else: flag = 0 cv2.imshow (" Frame "، frame) key = cv2.waitKey (1) & 0xFF if key == ord (" q "): break cv2.destroyAllWindows () cap.stop ()
الخطوة 3: إصدار Raspberry Pi
عندما يغلق الشخص عينيه ، سوف يعطيك التوت باي التنبيه
قم بتوصيل الجرس الخاص بك بالدبوس 23 (انظر الصورة)
من مسافة الاستيراد scipy.spatial
استيراد RPi. GPIO كـ GPIO
من وقت استيراد النوم
تحذيرات GPIO (خطأ)
GPIO.setmode (GPIO. BCM)
من imutils استيراد face_utils
استيراد imutils استيراد dlib استيراد cv2
الجرس = 23
GPIO.setup (الجرس ، GPIO. OUT)
def eye_aspect_ratio (العين):
A = Distance.euclidean (العين [1] ، العين [5]) B = المسافة euclidean (العين [2] ، العين [4]) C = المسافة euclidean (العين [0] ، العين [3]) الأذن = (A + B) / (2.0 * C) عتبة الأذن العائدة = 0.25 frame_check = 20 اكتشاف = dlib.get_frontal_face_detector () توقع = dlib.shape_predictor (". / shape_predictor_68_face_landmarks.dat") # ملف Dat هو جوهر الكود
(lStart، lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["left_eye"]
(rStart، rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["right_eye"] cap = cv2. VideoCapture (0) flag = 0 بينما True: ret ، frame = cap.read () frame = imutils.resize (frame، width = 450) grey = cv2.cvtColor (frame، cv2. COLOR_BGR2GRAY) الموضوعات = اكتشاف (رمادي ، 0) للموضوع في الموضوعات: الشكل = توقع (رمادي ، الموضوع) الشكل = face_utils.shape_to_np (شكل) # التحويل إلى NumPy Array leftEye = الشكل [lStart: lEnd] rightEye = الشكل [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) rightEAR = eye_aspect_ratio (rightEye) ear = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2. drawContours (frame، [leftEyeHull]، -1، (0، 255، 0)، 1) cv2.drawContours (frame، [rightEyeHull]، -1، (0، 255، 0)، 1) if ear = frame_check: cv2.putText (frame، "****************** ALERT! ****************"، (10، 30)، cv2. FONT_HERSHEY_SIMPLEX، 0.7، (0، 0، 255)، 2) cv2.putText (frame، "**************** ALERT! *********** ***** "، (10، 325)، cv2. FONT_HERSHEY_SIMPLEX، 0.7، (0، 0، 255)، 2) #print (" Dro Wsy ")
GPIO.output (الجرس ، GPIO. HIGH)
آخر: العلم = 0
GPIO.output (الجرس ، GPIO. LOW)
cv2.imshow ("Frame"، frame) key = cv2.waitKey (1) & 0xFF if key == ord ("q"): break cv2.destroyAllWindows () cap.stop ()
موصى به:
نظام ضوء تنبيه الطقس: 6 خطوات
نظام ضوء تنبيه الطقس: يقوم نظام إضاءة تنبيه الطقس بتغيير الإضاءة للإشارة إلى تحذيرات الطقس المختلفة أو الساعات. يستفيد هذا النظام من بيانات الطقس التي يمكن الوصول إليها مجانًا لإجراء تغيير في الإضاءة للإشارة إلى حالة الطقس. يتحقق التوت باي (عبر العقدة الحمراء) من
نظام تنبيه مستوى الضوضاء غير الآمن: 11 خطوة (بالصور)
نظام تنبيه مستوى الضوضاء غير الآمن: يعد مطبخ Oshman Engineering Design (OEDK) أكبر مساحة تصنيع في جامعة رايس ، حيث يوفر مساحة لجميع الطلاب لتصميم الحلول ووضع نماذج أولية لتحديات العالم الحقيقي. لخدمة هذا الغرض ، يضم OEDK عددًا من الأدوات الكهربائية
نظام تنبيه المطر: 4 خطوات
نظام تنبيه المطر: هذا نظام تنبيه للمطر ، التنبيه و LED سينشطون ويحذرون المستخدم من أنها ستمطر قريباً ، الجمهور المستهدف لهذا التطبيق هو لأولئك الأشخاص الذين يضعون ملابسهم لتجف في المنزل يعرفون ذلك يمكنهم الاحتفاظ بملابسهم معك
نظام تنبيه آذان المستذئب معيار ISO: 3 خطوات (بالصور)
نظام تنبيه آذان المستذئب معيار ISO: لا أحد يحب ذلك عندما يأتي شخص ما أو شيء ما من ورائك بشكل غير متوقع. نظرًا لأن معظم الناس لا يمتلكون حسًا دقيقًا ، أضف إلكترونيات لاكتشاف ما إذا كان هناك شيء يختبئ في الخلف. حماية الخاص بك ستة. لأن الجو بارد جدا
نظام تتبع الدراجة مع تنبيه الرجل الميت مع Sigfox: 7 خطوات (بالصور)
نظام تتبع الدراجة مع تنبيه الرجل الميت مع Sigfox: نظام أمان لراكبي الدراجات مع ميزات التتبع وإرسال التنبيه. في حالة وقوع حادث ، يتم إرسال إنذار مع وضع نظام تحديد المواقع العالمي (GPS). الأمن لراكبي الدراجات أمر لا بد منه ، مع وقوع حوادث الدراجات على الطرق أو الدراجات الجبلية وفي أقرب وقت طارئ ممكن لكل