
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Katru gadu daudzi cilvēki zaudē dzīvību ceļu satiksmes negadījumu dēļ visā pasaulē, un miegaina braukšana ir viens no galvenajiem ceļu satiksmes negadījumu un nāves cēloņiem. Nogurums un miega režīms pie braukšanas vadības ierīcēm bieži vien ir nopietnu negadījumu cēlonis. Tomēr sākotnējās noguruma pazīmes var konstatēt pirms kritiskas situācijas rašanās, un tāpēc vadītāja noguruma noteikšana un tās indikācija ir pētniecības tēma. Lielākā daļa tradicionālo miegainības noteikšanas metožu ir balstītas uz uzvedības aspektiem, bet dažas ir uzmācīgas un var novērst autovadītāju uzmanību, savukārt dažām ir nepieciešami dārgi sensori. Tāpēc šajā rakstā Android lietojumprogrammā ir izstrādāta un ieviesta viegla reāllaika autovadītāja miegainības noteikšanas sistēma. Sistēma ieraksta videoklipus un nosaka vadītāja seju katrā kadrā, izmantojot attēlu apstrādes metodes. Sistēma spēj noteikt sejas orientierus, aprēķina acu malu attiecību (EAR) un acu aizvēršanās koeficientu (ECR), lai noteiktu vadītāja miegainību, pamatojoties uz adaptīvo sliekšņu noteikšanu. Lai pārbaudītu piedāvātās pieejas efektivitāti, ir izmantoti mašīnmācīšanās algoritmi. Empīriskie rezultāti rāda, ka piedāvātais modelis spēj sasniegt 84% precizitāti, izmantojot nejaušu meža klasifikatoru.
1. darbība. Nepieciešamās lietas
1. AUGĻU PI
2. WEBCAM (C270 HD WEB CAM, lai iegūtu labākus rezultātus)
Datora versijai var būt nepieciešamas dažas izmaiņas kodā
2. darbība: Python kods ar acu formas prognozētāja datu kopu (datora versija)
lai reāllaika videoklipā daudz efektīvāk noteiktu acis, mēs varam izmantot šo failu.dat.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
Lejupielādējiet.dat failu no augšējās saites un palaidiet zemāk esošo python kodu
Python kods
no scipy.spatial importa distancefrom imutils import face_utils importēt imutils importēt dlib importēt cv2
def eye_aspect_ratio (acs):
A = attālums. Eklīdietis (acs [1], acs [5]) B = attālums. Eiklīdietis (acs [2], acs [4]) C = attālums. Eiklīda (acs [0], acs [3]) auss = A + B)
(lStart, lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["kreisā acs"]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["right_eye"] cap = cv2. VideoCapture (0) karogs = 0, kamēr True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) pelēks = cv2.cvtColor (rāmis, cv2. COLOR_BGR2GRAY) subjekti = atklāt (pelēks, 0) objektam objektos: forma = prognozēt (pelēks, priekšmets) forma = face_utils.shape_to_np (forma) #konvertēšana uz NumPy masīvu leftEye = forma [lStart: lEnd] rightEye = forma [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 (kadrs, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (kadrs, [rightEyeHull], -1, (0, 255, 0), 1) if ear = frame_check: cv2.putText (kadrs, "**************** ALERT! ****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (kadrs, "**************** ALERT! *********** ***** ", (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #print (" Dro wsy ") else: flag = 0 cv2.imshow (" rāmis ", rāmis) taustiņš = cv2.waitKey (1) & 0xFF if key == ord (" q "): break cv2.destroyAllWindows () cap.stop ()
3. darbība: Raspberry Pi versija


kad personas aizver acis, aveņu pi dos jums brīdinājumu
SAVIENOJIET skaņas signālu ar 23. tapu (skatiet attēlu)
no scipy.spatial importa attāluma
importēt RPi. GPIO kā GPIO
no laika importēt miegu
GPIO.setwarnings (nepatiess)
GPIO.setmode (GPIO. BCM)
no imutils importē face_utils
importēt imutils importēt dlib importēt cv2
skaņas signāls = 23
GPIO.setup (skaņas signāls, GPIO. OUT)
def eye_aspect_ratio (acs):
A = attālums. Eklīdietis (acs [1], acs [5]) B = attālums. Eiklīdietis (acs [2], acs [4]) C = attālums. Eiklīda (acs [0], acs [3]) auss = A + B)
(lStart, lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["kreisā acs"]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["right_eye"] cap = cv2. VideoCapture (0) karogs = 0, kamēr True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) pelēks = cv2.cvtColor (rāmis, cv2. COLOR_BGR2GRAY) subjekti = atklāt (pelēks, 0) objektam objektos: forma = prognozēt (pelēks, priekšmets) forma = face_utils.shape_to_np (forma) #konvertēšana uz NumPy masīvu leftEye = forma [lStart: lEnd] rightEye = forma [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 (kadrs, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (kadrs, [rightEyeHull], -1, (0, 255, 0), 1) if ear = frame_check: cv2.putText (kadrs, "**************** ALERT! ****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (kadrs, "**************** ALERT! *********** ***** ", (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #print (" Dro wsy ")
GPIO izeja (skaņas signāls, GPIO. HIGH)
cits: karogs = 0
GPIO izvade (skaņas signāls, GPIO. LOW)
cv2.imshow ("Frame", frame) taustiņš = cv2.waitKey (1) & 0xFF if key == ord ("q"): break cv2.destroyAllWindows () cap.stop ()
Ieteicams:
Slaidu iepriekšējas brīdināšanas sistēma: 6 soļi

Slaidu iepriekšējas brīdināšanas sistēma: Brown Dog Gadgets mēs darbnīcām veicam daudz video straumēšanas, un mūsu iestatījumos ietilpst viena persona kamerā un otra persona kā ražotājs, kurš vada programmatūru, uzrauga tērzēšanas logu un veic kameras pārslēgšanos un uzlabojumus slaidi
Avārijas brīdināšanas sistēma, izmantojot GSM, GPS un akselerometru: 5 soļi (ar attēliem)

Negadījumu trauksmes sistēma, izmantojot GSM, GPS un akselerometru: Lūdzu, balsojiet par mani konkursam Lūdzu, balsojiet par mani konkursam. Mūsdienās daudzi cilvēki ceļu satiksmes negadījumu dēļ iet bojā, galvenais iemesls ir "glābšanas kavēšanās". Šī problēma ir ļoti liela attīstītajās valstīs, tāpēc es izstrādāju šo projektu, lai glābtu
Izveidojiet runāšanas / balss paziņojumu brīdināšanas sistēmu: 4 soļi

Izveidojiet runāšanas / balss paziņojumu brīdināšanas sistēmu: Šajā projektā mēs esam izveidojuši runāšanas / balss paziņojumu un brīdinājumu sistēmu. Šajā projektā var izmantot vismaz divus sensorus
Agrīnās brīdināšanas aveņu PI skrejceļa gaisma, izmantojot lidojuma kartēšanas datus: 14 soļi (ar attēliem)

Agrīnās brīdināšanas aveņu PI skrejceļa gaisma, izmantojot lidojuma kartēšanas datus: šī lampa radās vairāku iemeslu dēļ, jo mani vienmēr interesē lidmašīnas, kas lido virs galvas, un vasarā nedēļas nogalēs bieži lidinās dažas aizraujošas lidmašīnas. Lai gan jūs mēdzat tos dzirdēt tikai ejot
Makey Makey - agrīnās brīdināšanas sistēma stipram vējam: 5 soļi

Makey Makey - agrīnās brīdināšanas sistēma stipram vējam: šī " agrīnās brīdināšanas sistēma " dizaina izaicinājums tiktu uzdots studentu grupai. Mērķis ir, lai studentu komanda (divi vai trīs katrā grupā) izstrādā sistēmu, kas brīdina cilvēkus meklēt patvērumu no vējiem, kas kļūst bīstami