সুচিপত্র:

তন্দ্রা সতর্কতা ব্যবস্থা: 3 ধাপ
তন্দ্রা সতর্কতা ব্যবস্থা: 3 ধাপ

ভিডিও: তন্দ্রা সতর্কতা ব্যবস্থা: 3 ধাপ

ভিডিও: তন্দ্রা সতর্কতা ব্যবস্থা: 3 ধাপ
ভিডিও: Building Maintenance 1 [6413], Chapter 1 & 3 - মৌলিক বিষয় ও সতর্কতা [Basic & Safety] গুরুকুল 2024, জুলাই
Anonim
তন্দ্রা সতর্কতা ব্যবস্থা
তন্দ্রা সতর্কতা ব্যবস্থা

প্রতিবছর বিশ্বজুড়ে মারাত্মক সড়ক দুর্ঘটনার কারণে অনেক মানুষ প্রাণ হারায় এবং ঘুমন্ত গাড়ি চালানো সড়ক দুর্ঘটনা এবং মৃত্যুর অন্যতম প্রধান কারণ। ড্রাইভিং নিয়ন্ত্রণে ক্লান্তি এবং মাইক্রো ঘুম প্রায়ই গুরুতর দুর্ঘটনার মূল কারণ। যাইহোক, একটি গুরুতর পরিস্থিতি সৃষ্টির আগে ক্লান্তির প্রাথমিক লক্ষণগুলি সনাক্ত করা যেতে পারে এবং অতএব, চালকের ক্লান্তি সনাক্তকরণ এবং এর ইঙ্গিত চলমান গবেষণার বিষয়। তন্দ্রা সনাক্ত করার বেশিরভাগ traditionalতিহ্যগত পদ্ধতিগুলি আচরণগত দিকগুলির উপর ভিত্তি করে থাকে যখন কিছু অনুপ্রবেশকারী এবং চালকদের বিভ্রান্ত করতে পারে, অন্যদিকে কিছু ব্যয়বহুল সেন্সরের প্রয়োজন হয়। অতএব, এই গবেষণাপত্রে, অ্যান্ড্রয়েড অ্যাপ্লিকেশনে একটি হালকা ওজনের, রিয়েল টাইম ড্রাইভারের তন্দ্রা সনাক্তকরণ ব্যবস্থা তৈরি এবং প্রয়োগ করা হয়েছে। সিস্টেম ভিডিও রেকর্ড করে এবং ইমেজ প্রসেসিং কৌশল ব্যবহার করে প্রতিটি ফ্রেমে ড্রাইভারের মুখ সনাক্ত করে। সিস্টেমটি মুখের ল্যান্ডমার্কগুলি সনাক্ত করতে সক্ষম, আই অ্যাসপেক্ট রেশিও (EAR) এবং আই ক্লোজার রেশিও (ECR) গণনা করে অভিযোজিত থ্রেশহোল্ডিংয়ের উপর ভিত্তি করে চালকের তন্দ্রা সনাক্ত করতে। প্রস্তাবিত পদ্ধতির কার্যকারিতা পরীক্ষা করার জন্য মেশিন লার্নিং অ্যালগরিদম নিযুক্ত করা হয়েছে। পরীক্ষামূলক ফলাফল দেখায় যে প্রস্তাবিত মডেল এলোমেলো বন শ্রেণীবিভাগ ব্যবহার করে 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 (চোখ):

A = distance.euclidean (eye [1], eye [5]) B = distance.euclidean (eye [2], eye [4]) C = distance.euclidean (eye [0], eye [3]) কান = (A + B) / (2.0 * C) রিয়ার ইয়ার থ্রেশ = 0.25 ফ্রেম_চেক = 20 ডিটেক্ট = dlib.get_frontal_face_detector () predict = dlib.shape_predictor ("।

(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 (ফ্রেম, প্রস্থ = 450) ধূসর = cv2।: lEnd] rightEye = আকৃতি [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) rightEAR = eye_aspect_ratio (rightEye) কান = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2.cv2। cv2.con drawContours (ফ্রেম, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (ফ্রেম, [rightEyeHull], -1, (0, 255, 0), 1) যদি কান = frame_check: cv2.putText (ফ্রেম, "**************** সতর্কতা! ****************", (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) #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 পিন করতে আপনার বাজারের সাথে সংযোগ করুন (ছবিটি দেখুন)

scipy.spatial আমদানি দূরত্ব থেকে

RPi. GPIO GPIO হিসাবে আমদানি করুন

সময় থেকে আমদানি ঘুম

GPIO.setwarnings (মিথ্যা)

GPIO.setmode (GPIO. BCM)

imutils থেকে face_utils আমদানি করুন

আমদানি imutils আমদানি dlib আমদানি cv2

বুজার = 23

GPIO.setup (buzzer, GPIO. OUT)

def eye_aspect_ratio (চোখ):

A = distance.euclidean (eye [1], eye [5]) B = distance.euclidean (eye [2], eye [4]) C = distance.euclidean (eye [0], eye [3]) কান = (A + B) / (2.0 * C) রিয়ার কান থ্রেশ = 0.25 frame_check = 20 detect = dlib.get_frontal_face_detector () predict = dlib.shape_predictor ("।

(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 (ফ্রেম, প্রস্থ = 450) ধূসর = cv2।: lEnd] rightEye = আকৃতি [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) rightEAR = eye_aspect_ratio (rightEye) কান = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2.cv2। cv2.con drawContours (ফ্রেম, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (ফ্রেম, [rightEyeHull], -1, (0, 255, 0), 1) যদি কান = frame_check: cv2.putText (ফ্রেম, "**************** সতর্কতা! ****************", (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) #print (" Dro wsy ")

GPIO.output (buzzer, GPIO. HIGH)

অন্য: পতাকা = 0

GPIO.output (buzzer, GPIO. LOW)

cv2.imshow ("Frame", frame) key = cv2.waitKey (1) & 0xFF if key == ord ("q"): break cv2.destroyAllWindows () cap.stop ()

প্রস্তাবিত: