Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
Igal aastal kaotavad paljud inimesed surmaga lõppenud liiklusõnnetuste tõttu kogu maailmas elu ning unine sõitmine on üks peamisi liiklusõnnetuste ja surma põhjuseid. Väsimus ja mikroune sõidurežiimis on sageli tõsiste õnnetuste algpõhjus. Esialgseid väsimuse märke saab siiski tuvastada enne kriitilise olukorra tekkimist ja seetõttu on juhi väsimuse avastamine ja selle näidustus jätkuv uurimisteema. Enamik traditsioonilisi uimasuse tuvastamise meetodeid põhineb käitumuslikel aspektidel, samas kui mõned on pealetükkivad ja võivad juhtide tähelepanu kõrvale juhtida, mõned aga vajavad kalleid andureid. Seetõttu on käesolevas dokumendis välja töötatud ja rakendatud Androidi rakenduses kergekaaluline reaalajas juhi unisuse tuvastamise süsteem. Süsteem salvestab videod ja tuvastab pilditöötlusmeetodite abil juhi näo igas kaadris. Süsteem on võimeline tuvastama näo maamärke, arvutab silmaaspektisuhte (EAR) ja silmade sulgemise suhte (ECR), et tuvastada juhi uimasus adaptiivse lävepaku põhjal. Kavandatud lähenemisviisi tõhususe testimiseks on kasutatud masinõppe algoritme. Empiirilised tulemused näitavad, et pakutud mudel suudab juhusliku metsaklassifikaatori abil saavutada 84% täpsuse.
Samm: asjad, mida vajate
1. VAARIKAS PI
2. WEBCAM (C270 HD WEB CAM PAREMATE TULEMUSTE saamiseks)
Arvuti versioon võib vajada koodi muutmist
2. samm: Pythoni kood silmade kujuga ennustaja andmekogumiga (arvuti versioon)
et reaalajas videos silmi palju tõhusamalt tuvastada, saame kasutada seda sbelow.dat -faili.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
Laadige alla.dat -fail ülaltoodud lingilt ja käivitage allolev python -kood
Pythoni kood
from scipy.spatial import distance from imutils import face_utils import imutils import dlib import cv2
def eye_aspect_ratio (silm):
A = kaugus. Eukleidiline (silm [1], silm [5]) B = kaugus. Eukleidiline (silm [2], silm [4]) C = kaugus. Eukleidiline (silm [0], silm [3]) kõrv = A + B)
(lStart, lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["vasak_silm"]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["right_eye"] cap = cv2. VideoCapture (0) lipp = 0 samas tõsi: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) hall = cv2.cvtColor (raam, cv2. COLOR_BGR2GRAY) subjektid = tuvastavad (hall, 0) objekti subjektidel: kuju = ennustab (hall, objekt) kuju = näo_liigud.kuju_to_np (kuju) #konverteerub NumPy massiiviks leftEye = kuju [lStart: lEnd] rightEye = kuju [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 (raam, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (raam, [rightEyeHull], -1, (0, 255, 0), 1) if ear = frame_check: cv2.putText (raam, "**************** ALERT! ****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0,7, (0, 0, 255), 2) cv2.putText (raam, "**************** HOIATUS! *********** ***** ", (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 ()
Samm: Raspberry Pi versioon
kui inimesed silmad sulgevad, annab vaarika pi teile märguande
Ühendage oma summeri tihvtiga 23 (vt pilti)
alates scipy.spatial impordi kaugus
RPi. GPIO importimine GPIO -na
ajast importige uni
GPIO.setwarnings (vale)
GPIO.setmode (GPIO. BCM)
alates imutils import face_utils
import imutils import dlib import cv2
helisignaal = 23
GPIO.seadistus (sumin, GPIO. OUT)
def eye_aspect_ratio (silm):
A = kaugus. Eukleidiline (silm [1], silm [5]) B = kaugus. Eukleidiline (silm [2], silm [4]) C = kaugus. Eukleidiline (silm [0], silm [3]) kõrv = A + B)
(lStart, lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["vasak_silm"]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["right_eye"] cap = cv2. VideoCapture (0) lipp = 0 samas tõsi: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) hall = cv2.cvtColor (raam, cv2. COLOR_BGR2GRAY) subjektid = tuvastavad (hall, 0) objekti subjektidel: kuju = ennustab (hall, subjekt) kuju = näo_liigud.kuju_to_np (kuju) #konverteerib NumPy massiivi leftEye = kuju [lStart: lEnd] rightEye = kuju [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 (raam, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (raam, [rightEyeHull], -1, (0, 255, 0), 1) if ear = frame_check: cv2.putText (raam, "**************** ALERT! ****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0,7, (0, 0, 255), 2) cv2.putText (raam, "**************** HOIATUS! *********** ***** ", (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0,7, (0, 0, 255), 2) #print (" Dro wsy ")
GPIO väljund (sumin, GPIO. HIGH)
muu: lipp = 0
GPIO.väljund (sumin, GPIO. LOW)
cv2.imshow ("Frame", frame) võti = cv2.waitKey (1) & 0xFF if key == ord ("q"): break cv2.destroyAllWindows () cap.stop ()
Soovitan:
Arduino auto tagurpidise parkimise hoiatussüsteem - Samm -sammult: 4 sammu
Arduino auto tagurpidise parkimise hoiatussüsteem | Samm-sammult: Selles projektis kujundan ma lihtsa Arduino auto tagurpidiparkimisanduri ahela, kasutades Arduino UNO ja ultraheli andurit HC-SR04. Seda Arduino -põhist auto tagasikäigu hoiatussüsteemi saab kasutada autonoomse navigeerimise, robotite liigutamise ja muude vahemike jaoks
Esikellade hoiatussüsteem: 4 sammu
Esikellade hoiatussüsteem: koolis on kellad, mis näitavad, millal klassivahetus peaks toimuma. Esmalt helistavad nad, millal tund peaks lõppema, ja seejärel helistavad teist korda, et näidata, millal järgmine tund peaks algama. Kui õpilane jääb hiljaks, on tal tavaliselt
Tehke rääkimise / häälteatise hoiatussüsteem: 4 sammu
Tehke rääkimise / häälteatise hoiatussüsteem: selle projekti raames oleme loonud kõne- / häälmärguannete ja hoiatussüsteemi. Selles projektis saab kasutada vähemalt kahte andurit
Teie taime madala niiskusesisaldusega muldade hoiatussüsteem: 5 sammu
Teie taime madala niiskusesisaldusega muldade hoiatussüsteem: mitmes elukohas on tavaline leida erinevat tüüpi taimedega purke. Suure hulga igapäevaste tegevuste tõttu unustavad inimesed oma taimi joota ja nad surevad veepuuduse tõttu. Selle probleemi vältimiseks otsustame
Ohtlik mürataseme hoiatussüsteem: 11 sammu (koos piltidega)
Ohtliku mürataseme hoiatussüsteem: Oshman Engineering Design Kitchen (OEDK) on Rice'i ülikooli suurim tegijaruum, mis pakub kõigile õpilastele ruumi reaalsete väljakutsete lahenduste kavandamiseks ja prototüüpide loomiseks. Selle eesmärgi saavutamiseks pakub OEDK mitmeid elektrilisi tööriistu