תוכן עניינים:
- שלב 1: דברים שאתה צריך
- שלב 2: קוד פיתון עם מערך נתונים של חזות עיניים (גרסת מחשב)
- שלב 3: גרסת פטל פטל
וִידֵאוֹ: מערכת התראה על נמנום: 3 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
מדי שנה אנשים רבים מאבדים את חייהם בגלל תאונות דרכים קטלניות ברחבי העולם ונהיגה מנומנמת היא אחד הגורמים העיקריים לתאונות דרכים ומוות. עייפות ושינה מיקרו בפקדי הנהיגה הם לעתים קרובות הגורם העיקרי לתאונות קשות. עם זאת, ניתן לזהות סימנים ראשוניים של עייפות לפני שמתעורר מצב קריטי ולכן, גילוי עייפות הנהג והאינדיקציה שלה הוא נושא מחקר מתמשך. רוב השיטות המסורתיות לאיתור נמנום מבוססות על היבטים התנהגותיים בעוד שחלקן פולשניות ועשויות להסיח את דעת הנהגים, בעוד שחלקן דורשות חיישנים יקרים. לכן, במאמר זה, מערכת זיהוי נמנום של נהג קלה בזמן אמת מפותחת ומיושמת ביישום אנדרואיד. המערכת מקליטה את הסרטונים ומזהה את פני הנהג בכל פריים על ידי שימוש בטכניקות עיבוד תמונה. המערכת מסוגלת לזהות ציוני דרך בפנים, מחשבת יחס גובה -רוחב עין (EAR) ויחס סגירת עיניים (ECR) כדי לזהות נמנום של הנהג על סמך סף אדפטיבי. אלגוריתמים של למידת מכונה הופעלו כדי לבדוק את היעילות של הגישה המוצעת. תוצאות אמפיריות מוכיחות כי המודל המוצע מסוגל להשיג דיוק של 84% באמצעות מסווג יער אקראי.
שלב 1: דברים שאתה צריך
1. RASPBERRY PI
2. WEBCAM (C270 HD מצלמת אינטרנט לתוצאות טובות יותר)
גרסת המחשב האישי עשויה להזדקק לשינויים מסוימים בקוד
שלב 2: קוד פיתון עם מערך נתונים של חזות עיניים (גרסת מחשב)
כדי לזהות עיניים בצורה יעילה הרבה יותר בסרטון בזמן אמת, אנו יכולים להשתמש בקובץ.dat הבא.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
הורד את קובץ.dat מהקישור למעלה והפעל את קוד הפיתון למטה
קוד פייתון
מרחק יבוא מרחבי מ- imutils יבוא face_utils יבוא imutils יבוא dlib יבוא cv2
def eye_aspect_ratio (עין):
A = distance.euclidean (עין [1], עין [5]) B = מרחק.euclidean (עין [2], עין [4]) C = distance.euclidean (עין [0], עין [3]) אוזן = (A + B) / (2.0 * C) דן אוזן החזרה = 0.25 frame_check = 20 detect = dlib.get_frontal_face_detector () predict = 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 (מסגרת, רוחב = 450) אפור = cv2.cvtColor (מסגרת, cv2. COLOR_BGR2GRAY) נושאים = זיהוי (אפור, 0) עבור הנושא בנבדקים: צורה = חיזוי (אפור, נושא) צורה = פנים_שימוש_צורה_ל_נפ (צורה)#המרה למערך NumPy leftEye = צורה [lStart: lEnd] rightEye = shape [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) rightEAR = eye_aspect_ratio (rightEye) ear = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2.convex) drawContours (מסגרת, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) אם האוזן = frame_check: cv2.putText (מסגרת, "***************** התראה! ****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (מסגרת, "**************** התראה! *********** ***** ", (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: גרסת פטל פטל
כאשר האנשים עוצמים את עיניו, פאי הפטל ייתן לך התראה
חבר את הזמזם שלך לסיכה 23 (ראה תמונה)
ממרחק יבוא מרחבי
ייבא RPi. GPIO כ- GPIO
מפעם לפעם ייבוא שינה
GPIO.setwarnings (שקר)
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 = distance.euclidean (עין [0], עין [3]) אוזן = (A + B) / (2.0 * C) דן אוזן החזרה = 0.25 frame_check = 20 detect = dlib.get_frontal_face_detector () predict = 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 (מסגרת, רוחב = 450) אפור = cv2.cvtColor (מסגרת, cv2. COLOR_BGR2GRAY) נושאים = זיהוי (אפור, 0) לנושא בנושאים: צורה = חיזוי (אפור, נושא) צורה = פנים_שמשיות_צורה_ל_נפ (צורה)#המרה למערך NumPy leftEye = צורה [lStart: lEnd] rightEye = shape [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) rightEAR = eye_aspect_ratio (rightEye) ear = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2.convex) drawContours (מסגרת, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) אם האוזן = frame_check: cv2.putText (מסגרת, "**************** ALERT! ****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (מסגרת, "**************** התראה! *********** ***** ", (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #print (" Dro wsy ")
פלט GPIO (זמזם, GPIO. HIGH)
אחר: דגל = 0
פלט GPIO. (זמזם, GPIO. LOW)
cv2.imshow ("Frame", frame) key = cv2.waitKey (1) & 0xFF if key == ord ("q"): break cv2.destroyAllWindows () cap.stop ()
מוּמלָץ:
מערכת התראה שקופית מראש: 6 שלבים
מערכת התראת שקופיות להתקדמות: בגאדג'טים של בראון כלבים אנו עושים הרבה הזרמת וידאו לסדנאות, וההגדרה שלנו כוללת אדם אחד במצלמה ואדם אחר כמפיק שמפעיל את התוכנה, עוקב אחר חלון הצ'אט ועושה החלפת מצלמה ומתקדם. המגלשות
מערכת התראה על חניה לאחור לרכב Arduino - צעד אחר צעד: 4 שלבים
מערכת התראה על חניה לאחור לרכב Arduino | צעד אחר צעד: בפרויקט זה אעצב מעגל חיישן חניה הפוך לרכב של Arduino פשוט באמצעות חיישן אולטראסוני Arduino UNO ו- HC-SR04. מערכת התראה זו מבוססת ארדואינו לרכב יכולה לשמש לניווט אוטונומי, טווח רובוטים וטווחי טווח אחרים
מערכת התראה של קרקע לחה נמוכה לצמח שלך: 5 שלבים
מערכת התראה של קרקע לחה נמוכה לצמח שלך: במספר בתי מגורים מקובל למצוא צנצנות עם סוגים שונים של צמחים. ועם ריבוי הפעילויות היומיומיות, אנשים שוכחים להשקות את הצמחים שלהם ובסופו של דבר מתים מחוסר מים. כדרך להימנע מבעיה זו, אנו מחליטים
מערכת התראה על רעש לא בטוח: 11 שלבים (עם תמונות)
מערכת התראה ברמת רעש לא בטוחה: מטבח העיצוב ההנדסי של אושמן (OEDK) הוא מרחב העשייה הגדול ביותר באוניברסיטת רייס, המספק מרחב לכל התלמידים לעצב ולפתוח אב טיפוס לאתגרים בעולם האמיתי. כדי לשרת מטרה זו, ה- OEDK מכיל מספר כלי חשמל
התראה על התראה חזותית: 9 שלבים
התראה על התראה חזותית: הדרכה זו מלמדת אותך כיצד לקודד כדי להודיע לפיליפס גוון להתריע. זה יהיה שימושי מאוד לאנשים חירשים וכבדי שמיעה, בעלי מוגבלויות ראייה או חושיות. התראת Visual Notification היא ליידע את המשתמשים לאחר קבלת הודעה