विषयसूची:
- चरण 1: चीजें जो आपको चाहिए
- चरण 2: आइज़ शेप प्रेडिक्टर डेटासेट के साथ पायथन कोड (पीसी संस्करण)
- चरण 3: रास्पबेरी पाई संस्करण
वीडियो: तंद्रा चेतावनी प्रणाली: ३ चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:19
हर साल दुनिया भर में घातक सड़क दुर्घटनाओं के कारण कई लोगों की जान चली जाती है और नींद में गाड़ी चलाना सड़क दुर्घटनाओं और मौत के प्राथमिक कारणों में से एक है। ड्राइविंग नियंत्रण में थकान और सूक्ष्म नींद अक्सर गंभीर दुर्घटनाओं का मूल कारण होती है। हालांकि, एक गंभीर स्थिति उत्पन्न होने से पहले थकान के शुरुआती संकेतों का पता लगाया जा सकता है और इसलिए, ड्राइवर की थकान का पता लगाना और उसका संकेत शोध का विषय है। उनींदापन का पता लगाने के अधिकांश पारंपरिक तरीके व्यवहार संबंधी पहलुओं पर आधारित होते हैं, जबकि कुछ दखल देने वाले होते हैं और ड्राइवरों को विचलित कर सकते हैं, जबकि कुछ को महंगे सेंसर की आवश्यकता होती है। इसलिए, इस पत्र में, एक हल्के वजन, वास्तविक समय चालक की उनींदापन पहचान प्रणाली विकसित और एंड्रॉइड एप्लिकेशन पर लागू की गई है। सिस्टम वीडियो को रिकॉर्ड करता है और इमेज प्रोसेसिंग तकनीकों को नियोजित करके हर फ्रेम में ड्राइवर के चेहरे का पता लगाता है। यह प्रणाली चेहरे के लैंडमार्क का पता लगाने में सक्षम है, अनुकूली थ्रेशोल्डिंग के आधार पर ड्राइवर की उनींदापन का पता लगाने के लिए आई एस्पेक्ट रेशियो (ईएआर) और आई क्लोजर रेशियो (ईसीआर) की गणना करती है। प्रस्तावित दृष्टिकोण की प्रभावकारिता का परीक्षण करने के लिए मशीन लर्निंग एल्गोरिदम को नियोजित किया गया है। अनुभवजन्य परिणाम प्रदर्शित करते हैं कि प्रस्तावित मॉडल यादृच्छिक वन वर्गीकरण का उपयोग करके 84% की सटीकता प्राप्त करने में सक्षम है।
चरण 1: चीजें जो आपको चाहिए
1.रास्पबेरी पीआई
2.वेबकैम (C270 HD वेब कैम बेहतर परिणामों के लिए)
पीसी संस्करण को कोड में कुछ बदलावों की आवश्यकता हो सकती है
चरण 2: आइज़ शेप प्रेडिक्टर डेटासेट के साथ पायथन कोड (पीसी संस्करण)
वास्तविक समय के वीडियो में आंखों का अधिक प्रभावी ढंग से पता लगाने के लिए, हम इस sbelow.dat फ़ाइल का उपयोग कर सकते हैं।
drive.google.com/open?id=1UiSHe72L4TeN14VK…
उपरोक्त लिंक से.dat फ़ाइल डाउनलोड करें और नीचे दिए गए पायथन कोड को चलाएं
पायथन कोड
scipy.spatial से आयात दूरी से imutils आयात face_utils आयात imutils आयात dlib आयात cv2
def eye_aspect_ratio(आँख):
ए = दूरी। यूक्लिडियन (आंख [1], आंख [5]) बी = दूरी। यूक्लिडियन (आंख [2], आंख [4]) सी = दूरी। यूक्लिडियन (आंख [0], आंख [3]) कान = (ए + बी) / (2.0 * सी) रिटर्न ईयर थ्रेश = 0.25 फ्रेम_चेक = 20 डिटेक्ट = dlib.get_frontal_face_detector () प्रेडिक्ट = 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 जबकि सही है: ret, फ्रेम=cap.read() फ्रेम = imutils.resize(frame, धूसर = cv2.cvtColor (फ्रेम, 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.convexHull cv2.convexHull drawContours (फ्रेम, [बाएं आई हल], -1, (0, 255, 0), 1) cv2.drawContours (फ्रेम, [दाएं आई हल], -1, (0, 255, 0), 1) अगर कान = फ्रेम_चेक: सीवी 2.putText (फ्रेम, "****************ALERT!****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (फ्रेम, "****************ALERT! *********** *****", (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #प्रिंट ("Dro" wsy") और: ध्वज = 0 cv2.imshow ("फ़्रेम", फ़्रेम) कुंजी = cv2.waitKey(1) और 0xFF यदि कुंजी == ord("q"): cv2.destroyAllWindows() cap.stop() तोड़ें
चरण 3: रास्पबेरी पाई संस्करण
जब लोग अपनी आँखें बंद कर लेते हैं तो रास्पबेरी पाई आपको अलर्ट कर देगी
अपने बजर को 23 पिन करने के लिए कनेक्ट करें (चित्र देखें)
scipy.spatial आयात दूरी से
RPI. GPIO को GPIO के रूप में आयात करें
समय से आयात नींद
GPIO.चेतावनी (गलत)
GPIO.सेटमोड (GPIO. BCM)
imutils से face_utils आयात करें
आयात imutils आयात dlib आयात cv2
बजर=23
GPIO.setup (बजर, GPIO. OUT)
def eye_aspect_ratio(आँख):
ए = दूरी। यूक्लिडियन (आंख [1], आंख [5]) बी = दूरी। यूक्लिडियन (आंख [2], आंख [4]) सी = दूरी। यूक्लिडियन (आंख [0], आंख [3]) कान = (ए + बी) / (2.0 * सी) रिटर्न ईयर थ्रेश = 0.25 फ्रेम_चेक = 20 डिटेक्ट = dlib.get_frontal_face_detector () प्रेडिक्ट = 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 जबकि सही है: ret, फ्रेम=cap.read() फ्रेम = imutils.resize(frame, धूसर = cv2.cvtColor (फ्रेम, 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.convexHull cv2.convexHull drawContours (फ्रेम, [बाएं आई हल], -1, (0, 255, 0), 1) cv2.drawContours (फ्रेम, [दाएं आई हल], -1, (0, 255, 0), 1) अगर कान = फ्रेम_चेक: सीवी 2.putText (फ्रेम, "****************ALERT!****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (फ्रेम, "****************ALERT! *********** *****", (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #प्रिंट ("Dro" डब्ल्यूएसआई")
GPIO.output (बजर, GPIO. HIGH)
अन्य: झंडा = 0
GPIO.output (बजर, GPIO. LOW)
cv2.imshow("Frame", फ्रेम) key = cv2.waitKey(1) & 0xFF if key == ord("q"): break cv2.destroyAllWindows() cap.stop()
सिफारिश की:
जीएसएम, जीपीएस और एक्सेलेरोमीटर का उपयोग कर दुर्घटना चेतावनी प्रणाली: 5 कदम (चित्रों के साथ)
GSM, GPS और Accelerometer का उपयोग करते हुए दुर्घटना चेतावनी प्रणाली: कृपया मुझे प्रतियोगिता के लिए वोट करें कृपया मुझे प्रतियोगिता के लिए वोट दें आजकल कई लोग दुर्घटना के कारण सड़क पर मारे जाते हैं, इसका मुख्य कारण "बचाव में देरी" है। विकासशील देशों में यह समस्या बहुत बड़ी है, इसलिए मैंने इस परियोजना को बचाने के लिए डिज़ाइन किया है
मौसम चेतावनी प्रकाश प्रणाली: 6 कदम
वेदर अलर्ट लाइट सिस्टम: वेदर अलर्ट लाइटिंग सिस्टम अलग-अलग मौसम चेतावनियों या घड़ियों को इंगित करने के लिए लाइटिंग बदलता है। यह प्रणाली मौसम की स्थिति को इंगित करने के लिए प्रकाश परिवर्तन करने के लिए स्वतंत्र रूप से सुलभ मौसम डेटा का लाभ उठाती है। एक रास्पबेरी पाई (नोड-रेड के माध्यम से) जांचता है
दालान की घंटी चेतावनी प्रणाली: 4 कदम
हॉलवे बेल वार्निंग सिस्टम: स्कूल में घंटियाँ होती हैं जो इंगित करती हैं कि कक्षा परिवर्तन कब होना चाहिए। वे पहले यह इंगित करने के लिए रिंग करते हैं कि कक्षा कब समाप्त होनी चाहिए, और फिर वे दूसरी बार यह इंगित करने के लिए रिंग करते हैं कि अगली कक्षा कब शुरू होनी चाहिए। यदि कोई छात्र देर से आता है, तो उनके पास आमतौर पर
हैप्टीगार्ड - साइडवे चेतावनी प्रणाली: 3 चरण (चित्रों के साथ)
HaptiGuard - सिडवे चेतावनी प्रणाली: जर्मन शिक्षा और विज्ञान मंत्रालय द्वारा वित्त पोषित मीडिया कंप्यूटिंग समूह आकिन के व्यक्तिगत फोटोनिक्स के किनारे विचार के रूप में त्वरित और सख्त सिडवे चेतावनी प्रणाली। जब भी आपके पास कुछ ऐसा आता है जिसे आप सुन नहीं सकते (या तो इसलिए
Arduino LCD अग्नि सुरक्षा चेतावनी प्रणाली: 9 चरण
Arduino LCD अग्नि सुरक्षा चेतावनी प्रणाली: यह एक छात्र निर्मित परियोजना है जो एक LCD स्क्रीन, एक बजर, एक RGB और एक DHT तापमान सेंसर के कार्यों को जोड़ती है। वर्तमान परिवेश का तापमान LCD स्क्रीन पर प्रदर्शित और अद्यतन किया जाता है। LCD स्क्रीन पर मुद्रित संदेश सूचित करता है कि