
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47

Minden évben sok ember veszíti életét halálos közúti balesetek miatt szerte a világon, és az álmos vezetés a közúti balesetek és halálesetek egyik elsődleges oka. A fáradtság és a mikroalvás a vezetési kezelőszerveknél gyakran a súlyos balesetek kiváltó oka. A fáradtság kezdeti jelei azonban már a kritikus helyzet kialakulása előtt észlelhetők, ezért a vezető fáradtságának észlelése és annak jelzése folyamatos kutatási téma. Az álmosság észlelésére szolgáló hagyományos módszerek többsége viselkedési szempontokon alapul, míg mások tolakodóak, és elvonhatják a járművezetők figyelmét, míg mások drága érzékelőket igényelnek. Ezért ebben a cikkben egy könnyű, valós idejű sofőr álmosság-érzékelő rendszerét fejlesztették ki és valósították meg az Android alkalmazásban. A rendszer rögzíti a videókat, és minden képkockában felismeri a vezető arcát a képfeldolgozási technikák alkalmazásával. A rendszer képes felismerni az arc nevezetességeit, kiszámítja az Eye Aspect Ratio (EAR) és a Eye Closure Ratio (ECR) értékeket, hogy az adaptív küszöbértékek alapján érzékelje a vezető álmosságát. Gépi tanulási algoritmusokat alkalmaztak a javasolt megközelítés hatékonyságának tesztelésére. A tapasztalati eredmények azt mutatják, hogy a javasolt modell 84% -os pontosságot képes elérni véletlenszerű erdőosztályozó segítségével.
1. lépés: A szükséges dolgok
1. MÁRKA PI
2. WEBCAM (C270 HD WEB CAM a jobb eredményekért)
A számítógépes verzió némi változtatást igényelhet a kódban
2. lépés: Python -kód szemmel alakú előrejelző adatkészlet (PC -verzió)
A valós idejű videók hatékonyabb észleléséhez használhatjuk ezt a sbelow.dat fájlt.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
Töltse le a.dat fájlt a fenti linkről, és futtassa az alábbi python kódot
Python kód
from scipy.spatial import distancefrom imutils import face_utils import imutils import dlib import cv2
def eye_aspect_ratio (szem):
A = távolság. Euklideszi (szem [1], szem [5]) B = távolság. Euklideszi (szem [2], szem [4]) C = távolság. Euklideszi (szem [0], szem [3]) fül = A + B)
(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, míg True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) szürke = cv2.cvtColor (keret, cv2. COLOR_BGR2GRAY) alanyok = észlelés (szürke, 0) az alany alanyaiban: alak = előrejelzés (szürke, alany) alak = arc_util.shape_to_np (alak) #konvertálás NumPy tömbhöz leftEye = alak [lStart: lEnd] rightEye = alak [rStart: rEnd] leftEAR = szem_szemlélet_arány (bal szem drawContours (frame, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) if ear = frame_check: cv2.putText (frame, "**************** ALERT! ****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (keret, "**************** 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. lépés: Raspberry Pi verzió


amikor a személy becsukja a szemét, akkor a málna pi figyelmeztetést ad
Csatlakoztassa a hangjelzőt a 23 -as érintkezőhöz (lásd a képet)
a scipy.térbeli importtávolságtól
importálja az RPi. GPIO -t GPIO -ként
az idő alvó alvásból
GPIO.setwarnings (hamis)
GPIO.setmode (GPIO. BCM)
az imutils -ból import face_utils
import imutils import dlib import cv2
zümmögő = 23
GPIO.setup (zümmögő, GPIO. OUT)
def eye_aspect_ratio (szem):
A = távolság. Euklideszi (szem [1], szem [5]) B = távolság. Euklideszi (szem [2], szem [4]) C = távolság. Euklideszi (szem [0], szem [3]) fül = A + B)
(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, míg True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) szürke = cv2.cvtColor (keret, cv2. COLOR_BGR2GRAY) alanyok = észlelés (szürke, 0) az alany alanyaiban: alak = előrejelzés (szürke, alany) alak = arc_util.shape_to_np (alak) #konvertálás NumPy tömbhöz leftEye = alak [lStart: lEnd] rightEye = alak [rStart: rEnd] leftEAR = szem_szemlélet_arány (bal szem drawContours (frame, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) if ear = 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.kimenet (zümmögő, GPIO. HIGH)
más: zászló = 0
GPIO.kimenet (zümmögő, GPIO. LOW)
cv2.imshow ("Frame", frame) kulcs = cv2.waitKey (1) & 0xFF if key == ord ("q"): break cv2.destroyAllWindows () cap.stop ()
Ajánlott:
Ultra alacsony fogyasztású WiFi otthoni automatizálási rendszer: 6 lépés (képekkel)

Rendkívül kis teljesítményű WiFi otthoni automatizálási rendszer: Ebben a projektben megmutatjuk, hogyan lehet néhány lépésben felépíteni egy alapvető helyi otthoni automatizálási rendszert. Raspberry Pi -t fogunk használni, amely központi WiFi eszközként fog működni. Míg a végcsomópontokhoz az IOT Cricket -et fogjuk használni az akkumulátor előállításához
Saját fotovoltaikus 5V -os rendszer készítése: 4 lépés (képekkel)

Saját fotovoltaikus 5V-os rendszer készítése: Ez egy bak-átalakítót használ 5 V-os kimenetként az akkumulátor (Li Po/Li-ion) töltésére. És Boost konverter 3,7 V -os akkumulátorról 5 V -os USB kimenetre az 5 V -os eszközökhöz. Hasonló az eredeti rendszerhez, amely ólom -sav akkumulátort használ energiatároló töltésként
Számlaszámla és készletellenőrző rendszer: 3 lépés

SZÁMLA SZÁMLÁLÁSI ÉS KÉSZLETVEZÉRLŐ RENDSZER: Ezzel az utasítással ötletet adok számla- és készletellenőrzési rendszer létrehozására. MS hozzáférés használatával. Nagyon egyszerű, és nincs szükség további számítógépes vagy programozási ismeretekre. Ha rendelkezik alapvető ismeretekkel az asszonyról Hozzáférés, táblázatok. űrlapok és jelentések
Házi biztonsági rendszer érzékelőfúzióval: 5 lépés

Házi biztonsági rendszer a Sensor Fusion segítségével: A projekt célja az, hogy egy olcsó és könnyen elkészíthető biztonsági érzékelőt hozzon létre, amellyel figyelmeztetni lehet, ha valaki átlépte. Az eredeti cél az volt, hogy létrehozzak valamit, ami értesíthet, ha valaki felment a lépcsőn, de én is
Színrendező rendszer: Arduino alapú rendszer két övvel: 8 lépés

Színrendező rendszer: Arduino alapú rendszer két övvel: Az ipari területen lévő termékek és tárgyak szállítása és/vagy csomagolása szállítószalagok segítségével készült vonalakkal történik. Ezek az övek bizonyos sebességgel segítik az elemek egyik pontból a másikba történő áthelyezését. Egyes feldolgozási vagy azonosítási feladatok