Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-23 15:12
Taun-taon maraming mga tao ang nawawalan ng kanilang buhay dahil sa mga nakamamatay na aksidente sa kalsada sa buong mundo at ang pag-aantok sa pagmamaneho ay isa sa pangunahing sanhi ng mga aksidente sa kalsada at pagkamatay. Ang pagkapagod at micro na pagtulog sa mga kontrol sa pagmamaneho ay madalas na sanhi ng malubhang aksidente. Gayunpaman, ang mga paunang palatandaan ng pagkapagod ay maaaring napansin bago lumitaw ang isang kritikal na sitwasyon at samakatuwid, ang pagtuklas ng pagkapagod ng driver at ang pahiwatig nito ay patuloy na paksa ng pananaliksik. Karamihan sa mga tradisyunal na pamamaraan upang makita ang pag-aantok ay batay sa mga aspeto ng pag-uugali habang ang ilan ay mapanghimasok at maaaring makaabala ng mga driver, habang ang ilan ay nangangailangan ng mga mamahaling sensor. Samakatuwid, sa papel na ito, isang light-weight, real time driver's drowsiness detection system ay binuo at ipinatupad sa Android application. Itinatala ng system ang mga video at nakita ang mukha ng driver sa bawat frame sa pamamagitan ng paggamit ng mga diskarte sa pagproseso ng imahe. May kakayahang makita ang system ng mga landmark sa mukha, kinukalkula ang Eye Aspect Ratio (EAR) at Eye Closure Ratio (ECR) upang makita ang antok ng drayber batay sa adaptive threshold. Ang mga algorithm sa pag-aaral ng machine ay nagtatrabaho upang subukan ang pagiging epektibo ng iminungkahing diskarte. Ipinapakita ng mga resulta ng empirical na ang iminungkahing modelo ay magagawang makamit ang katumpakan ng 84% gamit ang random jung classifier.
Hakbang 1: Mga Bagay na Kailangan mo
1. RASPBERRY PI
2. WEBCAM (C270 HD WEB CAM PARA SA MAS MAAYONG RESULTA)
Maaaring kailanganin ng bersyon ng PC ang ilang mga pagbabago sa code
Hakbang 2: Python Code With Eyes Shape Predictor Dataset (Bersyon ng PC)
upang makita ang mga mata nang mas epektibo sa isang real time na video, maaari naming gamitin ang sbelow.dat file na ito.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
I-download ang.dat file mula sa itaas na link at patakbuhin ang ibaba python code
Python code
mula sa scipy.spatial na distansya ng pag-import mula sa mga imutil na pag-import ng face_utils import imutils import dlib import cv2
def eye_aspect_ratio (mata):
A = distansya.euclidean (mata [1], mata [5]) B = distansya.euclidean (mata [2], mata [4]) C = distansya.euclidean (mata [0], mata [3]) tainga = (A + B) / (2.0 * C) ibalik ang thresh ng tainga = 0.25 frame_check = 20 tuklasin = dlib.get_frontal_face_detector () hulaan = dlib.shape_predictor (". / Form_predictor_68_face_landmarks.dat") # Ang file ng Dat ay ang pinakabuod ng code
(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 habang True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) mga paksa = tuklasin (kulay-abo, 0) para sa paksa sa mga paksa: hugis = hulaan (kulay-abo, paksa) hugis = face_utils.shape_to_np (hugis) #pagpalit sa NumPy Array leftEye = hugis [lStart: lEnd] kananEye = hugis [rStart: rEnd] left taun = eye_aspect_ratio (leftEye) kanan taun = eye_aspect_ratio (rightEye) tainga = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2.convexHull (rightEye) cv2 drawContours (frame, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) kung tainga = 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 kung key == ord (" q "): break cv2.destroyAllWindows () cap.stop ()
Hakbang 3: Bersyon ng Raspberry Pi
kapag ipinikit ng mga tao ang kanyang mga mata pagkatapos bibigyan ka ng alerto ng raspberry pi
Ikonekta ang iyong buzzer upang i-pin ang 23 (tingnan ang larawan)
mula sa scipy.spasyo ng distansya ng pag-import
i-import ang RPi. GPIO bilang GPIO
mula sa oras mag-import ng pagtulog
GPIO.setwarnings (Mali)
GPIO.setmode (GPIO. BCM)
mula sa mga imutil ay mag-import ng mga face_util
i-import ang mga imutil i-import ang dlib import cv2
buzzer = 23
GPIO.setup (buzzer, GPIO. OUT)
def eye_aspect_ratio (mata):
A = distansya.euclidean (mata [1], mata [5]) B = distansya.euclidean (mata [2], mata [4]) C = distansya.euclidean (mata [0], mata [3]) tainga = (A + B) / (2.0 * C) ibalik ang thresh ng tainga = 0.25 frame_check = 20 tuklasin = dlib.get_frontal_face_detector () hulaan = dlib.shape_predictor (". / Form_predictor_68_face_landmarks.dat") # Ang file ng Dat ay ang pinakabuod ng code
(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 habang True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) mga paksa = tuklasin (kulay-abo, 0) para sa paksa sa mga paksa: hugis = hulaan (kulay-abo, paksa) hugis = face_utils.shape_to_np (hugis) #pagpalit sa NumPy Array leftEye = hugis [lStart: lEnd] kananEye = hugis [rStart: rEnd] left taun = eye_aspect_ratio (leftEye) kanan taun = eye_aspect_ratio (rightEye) tainga = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2.convexHull (rightEye) cv2 drawContours (frame, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) kung tainga = 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 (buzzer, GPIO. HIGH)
iba pa: flag = 0
GPIO.output (buzzer, GPIO. LOW)
cv2.imshow ("Frame", frame) key = cv2.waitKey (1) & 0xFF kung key == ord ("q"): masira ang cv2.destroyAllWindows () cap.stop ()
Inirerekumendang:
Hindi ligtas na Sistema ng Alerto sa Ingay ng Ingay: 11 Mga Hakbang (na may Mga Larawan)
Unsafe Noise Level Alert System: Ang Oshman Engineering Design Kitchen (OEDK) ay ang pinakamalaking makerspace sa Rice University, na nagbibigay ng puwang para sa lahat ng mga mag-aaral na mag-disenyo at mag-prototype ng mga solusyon sa mga hamon sa totoong mundo. Upang maihatid ang hangaring ito, ang OEDK ay naglalagay ng maraming mga tool sa kuryente
Bumuo ng isang Awtomatikong Waterer Reservoir Sa Mga Alerto sa WiFi para sa Mga Setup ng Paglinang: 11 Mga Hakbang
Bumuo ng isang Awtomatikong Waterer Reservoir Sa Mga Alerto sa WiFi para sa Mga Setup ng Paglinang: Sa proyekto ng tutorial na DIY na ito ay ipapakita namin sa iyo kung paano bumuo ng isang awtomatikong pagdidilig ng reservoir na may mga alerto sa WiFi para sa isang setup ng paglilinang o para sa isang awtomatikong sistema ng pagtutubig para sa iyong mga hayop tulad ng mga aso, pusa, manok, atbp
Subaybayan ang Mga Heon ng Litrong Pang-Heine ng Langis Gamit ang Email, SMS, at Alerto sa Pushbullet: 9 Mga Hakbang (na may Mga Larawan)
Subaybayan ang Mga Heon ng Litrong Pang-Heine ng Langis Gamit ang Email, SMS, at Alerto sa Pushbullet: IMPORMASYON SA KALIGTASAN: Kung sakaling may nais malaman kung " ligtas itong itayo / i-install " - Dinala ko ito sa 2 magkakaibang mga kumpanya ng Langis para sa mga pagsasaalang-alang sa feedback / kaligtasan, at pinatakbo ko ito ng Kagawaran ng Pag-iingat sa Fire Fire ng kagawaran ng bumbero
Sistema ng Pagsubaybay sa Bike Na May Alerto sa Patay na Tao Sa Sigox: 7 Mga Hakbang (na may Mga Larawan)
Sistema ng Pagsubaybay sa Bisikleta Na May Alerto sa Patay na Man Sa Sigox: Sistema ng seguridad para sa mga sumasakay sa bisikleta na may pagsubaybay at magpadala ng mga tampok na alerto. Sa kaso ng aksidente ang isang alarma ay ipinadala na may posisyon ng GPS. Ang seguridad para sa mga sumasakay sa bisikleta ay kinakailangan, na may mga aksidente sa road bike o mountain bike na nangyayari at sa lalong madaling panahon emergency bawat
Lumikha ng isang Flag ng Alerto ng Alerto / Arduino .: 5 Mga Hakbang (na may Mga Larawan)
Lumikha ng isang Flag ng Alerto ng Alerto / Arduino .: Naramdaman mo na bang hindi sapat ang tunog ng mail sa iyong Mac? Ang mga simpleng tunog at alerto ay huwag lamang i-cut para sa iyo? Nais mo ng isang bagay na mas maliwanag at kapaki-pakinabang? Kung gayon, ito ang Maituturo na hinahanap mo. Sa Ituturo na ito,