Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
Κάθε χρόνο πολλοί άνθρωποι χάνουν τη ζωή τους λόγω θανατηφόρων τροχαίων ατυχημάτων σε όλο τον κόσμο και η υπνηλία οδήγηση είναι μία από τις κύριες αιτίες τροχαίων ατυχημάτων και θανάτων. Η κόπωση και ο πολύ μικρός ύπνος στα χειριστήρια οδήγησης είναι συχνά η βασική αιτία σοβαρών ατυχημάτων. Ωστόσο, τα αρχικά σημάδια κόπωσης μπορούν να ανιχνευθούν πριν από την εμφάνιση μιας κρίσιμης κατάστασης και ως εκ τούτου, η ανίχνευση της κόπωσης του οδηγού και η ένδειξή της είναι συνεχές ερευνητικό θέμα. Οι περισσότερες από τις παραδοσιακές μεθόδους για τον εντοπισμό υπνηλίας βασίζονται σε συμπεριφορικές πτυχές, ενώ μερικές είναι παρεμβατικές και μπορεί να αποσπούν την προσοχή των οδηγών, ενώ μερικές απαιτούν ακριβούς αισθητήρες. Ως εκ τούτου, σε αυτό το έγγραφο, ένα ελαφρύ, σύστημα ανίχνευσης υπνηλίας οδηγού σε πραγματικό χρόνο αναπτύσσεται και εφαρμόζεται σε εφαρμογή Android. Το σύστημα καταγράφει τα βίντεο και ανιχνεύει το πρόσωπο του οδηγού σε κάθε καρέ χρησιμοποιώντας τεχνικές επεξεργασίας εικόνας. Το σύστημα είναι ικανό να ανιχνεύει ορόσημα προσώπου, υπολογίζει το Eye Aspect Ratio (EAR) και το Eye Closure Ratio (ECR) για να ανιχνεύει την υπνηλία του οδηγού με βάση το προσαρμοστικό κατώφλι. Αλγόριθμοι μηχανικής μάθησης έχουν χρησιμοποιηθεί για να ελέγξουν την αποτελεσματικότητα της προτεινόμενης προσέγγισης. Τα εμπειρικά αποτελέσματα καταδεικνύουν ότι το προτεινόμενο μοντέλο είναι σε θέση να επιτύχει ακρίβεια 84% χρησιμοποιώντας τυχαίο ταξινομητή δάσους.
Βήμα 1: Πράγματα που χρειάζεστε
1. ΡΑΣΠΕΡΙ ΠΙ
2. WEBCAM (C270 HD WEB CAM ΓΙΑ ΚΑΛΥΤΕΡΑ ΑΠΟΤΕΛΕΣΜΑΤΑ)
Η έκδοση του υπολογιστή μπορεί να χρειάζεται κάποιες αλλαγές στον κώδικα
Βήμα 2: Python Code With Eyes Shape Predictor Dataset (Έκδοση PC)
για να εντοπίσουμε τα μάτια πολύ αποτελεσματικά σε ένα βίντεο σε πραγματικό χρόνο, μπορούμε να χρησιμοποιήσουμε αυτό το παρακάτω αρχείο.dat.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
Κατεβάστε το αρχείο.dat από τον παραπάνω σύνδεσμο και εκτελέστε τον παρακάτω κώδικα python
Κώδικας Python
από scipy.spatial import distancefrom imutils import face_utils import imutils import dlib import cv2
def eye_aspect_ratio (μάτι):
A = απόσταση.euclidean (μάτι [1], μάτι [5]) B = απόσταση.euclidean (μάτι [2], μάτι [4]) C = απόσταση.euclidean (μάτι [0], μάτι [3]) αυτί = (A + B) / (2.0 * C) thresh return thresh = 0.25 frame_check = 20 detect = dlib.get_frontal_face_detector () predict = dlib.shape_predictor (". / Shape_predictor_68_face_landmarks.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 while True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) γκρι = cv2.cvtColor (πλαίσιο, cv2. COLOR_BGR2GRAY) θέματα = ανίχνευση (γκρι, 0) για το θέμα στα θέματα: shape = προβλέπουν (γκρι, θέμα) shape = face_utils.shape_to_np (shape) #converting to NumPy Array leftEye = shape [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.convexHull drawContours (frame, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) if ear = 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 ") else: flag = 0 cv2.imshow (" Frame ", frame) key = cv2.waitKey (1) & 0xFF if key == ord (" q "): break cv2.destroyAllWindows () cap.stop ()
Βήμα 3: Έκδοση Raspberry Pi
όταν τα άτομα κλείσουν τα μάτια του, τότε το raspberry pi θα σας δώσει την ειδοποίηση
ΣΥΝΔΕΣΤΕ τον βομβητή σας στην καρφίτσα 23 (δείτε την εικόνα)
από scipy.sbatial απόσταση εισαγωγής
εισαγωγή RPi. GPIO ως GPIO
από τον χρόνο εισαγωγής ύπνου
GPIO.setwarnings (False)
GPIO.setmode (GPIO. BCM)
από imutils εισαγωγή face_utils
εισαγωγή imutils εισαγωγή dlib εισαγωγή cv2
βομβητής = 23
GPIO.setup (βομβητής, GPIO. OUT)
def eye_aspect_ratio (μάτι):
Α = απόσταση.euclidean (μάτι [1], μάτι [5]) Β = απόσταση.euclidean (μάτι [2], μάτι [4]) C = απόσταση.e.eclidean (μάτι [0], μάτι [3]) αυτί = (A + B) / (2.0 * C) thresh ear thresh = 0.25 frame_check = 20 detect = dlib.get_frontal_face_detector () predict = dlib.shape_predictor (". / Shape_predictor_68_face_landmarks.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 while True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) γκρι = cv2.cvtColor (πλαίσιο, cv2. COLOR_BGR2GRAY) θέματα = ανίχνευση (γκρι, 0) για το θέμα στα θέματα: shape = προβλέψω (γκρι, θέμα) shape = face_utils.shape_to_np (shape) #converting to NumPy Array leftEye = shape [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.convexHull drawContours (frame, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) if ear = 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.output (βομβητής, GPIO. HIGH)
else: σημαία = 0
GPIO.output (βομβητής, GPIO. LOW)
cv2.imshow ("Frame", frame) key = cv2.waitKey (1) & 0xFF if key == ord ("q"): break cv2.destroyAllWindows () cap.stop ()
Συνιστάται:
Σύστημα ειδοποίησης αντίστροφης στάθμευσης αυτοκινήτου Arduino - Βήματα βήμα προς βήμα: 4 βήματα
Σύστημα ειδοποίησης αντίστροφης στάθμευσης αυτοκινήτου Arduino | Βήματα βήμα προς βήμα: Σε αυτό το έργο, θα σχεδιάσω ένα απλό κύκλωμα αισθητήρα στάθμευσης αντίστροφης στάθμευσης αυτοκινήτου Arduino χρησιμοποιώντας Arduino UNO και υπερηχητικό αισθητήρα HC-SR04. Αυτό το σύστημα ειδοποίησης αυτοκινήτου με βάση το Arduino μπορεί να χρησιμοποιηθεί για αυτόνομη πλοήγηση, κλίμακα ρομπότ και άλλα εύρη
Σύστημα φωτισμού ειδοποίησης καιρού: 6 βήματα
Σύστημα φωτισμού ειδοποίησης καιρού: Το σύστημα φωτισμού ειδοποίησης καιρού αλλάζει φωτισμό για να υποδεικνύει διαφορετικές προειδοποιήσεις και ρολόγια καιρού. Αυτό το σύστημα αξιοποιεί ελεύθερα προσβάσιμα δεδομένα καιρού για να κάνει μια αλλαγή φωτισμού για να υποδείξει την κατάσταση του καιρού. Ένα βατόμουρο pi (μέσω κόμβου-κόκκινου) ελέγχει το
Κάντε το σύστημα προειδοποίησης ομιλίας / φωνητικής ειδοποίησης: 4 βήματα
Δημιουργήστε το σύστημα προειδοποίησης ομιλίας / φωνητικής ειδοποίησης: Αυτό το έργο έχουμε δημιουργήσει ένα σύστημα ειδοποίησης και προειδοποίησης ομιλίας / φωνής. Σε αυτό το έργο μπορούν να χρησιμοποιηθούν τουλάχιστον δύο αισθητήρες
Σύστημα ειδοποίησης χαμηλής υγρασίας εδάφους για το φυτό σας: 5 βήματα
Σύστημα ειδοποίησης χαμηλής υγρασίας εδάφους για το φυτό σας: Σε πολλές κατοικίες, είναι συνηθισμένο να βρείτε βάζα με διαφορετικούς τύπους φυτών. Και με τον μεγάλο αριθμό καθημερινών δραστηριοτήτων, οι άνθρωποι ξεχνούν να ποτίζουν τα φυτά τους και καταλήγουν να πεθαίνουν από έλλειψη νερού. Ως τρόπος για να αποφύγουμε αυτό το πρόβλημα, αποφασίζουμε
Σύστημα ειδοποίησης ξεκλειδώματος ποδηλάτου: 15 βήματα
Σύστημα ειδοποίησης ξεκλειδώματος ποδηλάτου: Γεια σας … !! Πώς τα πάτε; Όλοι έχετε οχήματα στο σπίτι σας. Η ασφάλεια των οχημάτων είναι σημαντική για όλους. Επιστρέφω με παρόμοιο είδος έργου. Σε αυτό το έργο έφτιαξα ένα σύστημα ειδοποίησης ξεκλειδώματος ποδηλάτου χρησιμοποιώντας το GSM Module και το Arduino. Όταν ξεκλειδώνει το ποδήλατο