Мазмұны:
- 1 -қадам: Сізге қажет заттар
- 2 -қадам: Python коды, көздің пішінін болжайтын деректер жиынтығы (ДК нұсқасы)
- 3 -қадам: Raspberry Pi нұсқасы
Бейне: Ұйқышылдық туралы ескерту жүйесі: 3 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Жыл сайын бүкіл әлемде адам өліміне әкелетін жол -көлік оқиғалары салдарынан көптеген адамдар өмірін жоғалтады және ұйқысыз көлік жүргізу жол -көлік оқиғалары мен өлімінің негізгі себептерінің бірі болып табылады. Басқару машинасындағы шаршау мен микро ұйқы көбінесе ауыр жазатайым оқиғалардың негізгі себебі болып табылады. Алайда, шаршаудың алғашқы белгілерін сыни жағдай туындағанға дейін анықтауға болады, сондықтан жүргізушінің шаршауын анықтау және оның көрсеткіші зерттеудің өзекті тақырыбы болып табылады. Ұйқышылдықты анықтаудың дәстүрлі әдістерінің көпшілігі мінез -құлық аспектілеріне негізделген, ал кейбіреулері интрузивті және жүргізушілердің назарын аударуы мүмкін, ал кейбіреулері қымбат сенсорларды қажет етеді. Сондықтан, бұл жұмыста Android қосымшасында жеңіл, нақты уақыт режимінде жүргізушінің ұйқышылдықты анықтау жүйесі әзірленген және енгізілген. Жүйе бейнелерді жазады және суретті өңдеу әдістерін қолдана отырып, әр кадрда жүргізушінің бетін анықтайды. Жүйе бейімделу шегіне негізделген жүргізушінің ұйқышылдықты анықтау үшін бет белгілерін анықтай алады, көздің аспектілік қатынасын (EAR) және көздің жабылу коэффициентін (ECR) есептейді. Ұсынылған әдістің тиімділігін тексеру үшін машиналық оқыту алгоритмдері қолданылды. Эмпирикалық нәтижелер ұсынылған модель кездейсоқ орман жіктеуішті қолдану арқылы 84% дәлдікке қол жеткізе алатынын көрсетеді.
1 -қадам: Сізге қажет заттар
1. РЕППЕРРИ ПИ
2. WEBCAM (жақсы нәтижеге арналған C270 HD WEB CAM)
Компьютерлік нұсқаға кодты өзгерту қажет болуы мүмкін
2 -қадам: Python коды, көздің пішінін болжайтын деректер жиынтығы (ДК нұсқасы)
нақты уақыттағы бейнеде көзді тиімді анықтау үшін біз осы.dat файлын қолдана аламыз.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
Жоғарыдағы сілтемеден.dat файлын жүктеп алып, төмендегі питон кодын іске қосыңыз
Python коды
scipy.кеңістіктік импорттық қашықтықтан imutils импорт face_utils импорт имутил импорт dlib импорт cv2
def eye_aspect_ratio (көз):
A = қашықтық.евклидтік (көз [1], көз [5]) В = қашықтық.евклидтік (көз [2], көз [4]) С = қашықтық.евклидтік (көз [0], көз [3]) құлақ = (A + B) / (2.0 * C) қайтару құлақ жиегі = 0.25 frame_check = 20 анықтау = dlib.get_frontal_face_detector () болжам = dlib.shape_predictor («. / Пішін_предиктор_68_face_landmarks.dat»)# Dat файлы - бұл кодтың түйіні
(lStart, lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS [«left_eye»]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS [«right_eye»] cap = cv2. VideoCapture (0) жалаушасы = 0, ал True: ret, frame = cap.read () frame = imutils.resize (кадр, ені = 450) сұр = cv2.cvtColor (жақтау, cv2. COLOR_BGR2GRAY) субъектілер = пәндер бойынша пән үшін анықтау (сұр, 0): нысан = болжау (сұр, тақырып) пішін = face_utils.shape_to_np (пішін)#NumPy массивіне айналдыру leftEye = пішін [lСтарт: lEnd] rightEye = пішін [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) rightEAR = eye_aspect_ratio (rightEye) ear = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2.convex drawContours (кадр, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) if ear = frame_check: cv2.putText (кадр, «**************** АЛЕРТ! ****************», (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (кадр, «**************** АЛЕРТ! *********** ***** «, (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #басып шығару (» Dro wsy «) else: flag = 0 cv2.imshow (» Frame «, frame) key = cv2.waitKey (1) & 0xFF if key == ord (» q «): break cv2.destroyAllWindows () cap.stop ()
3 -қадам: Raspberry Pi нұсқасы
адамдар көзін жұмған кезде таңқурай пи сізге ескерту береді
Дыбыстық сигналды 23 түйрегіне жалғаңыз (суретті қараңыз)
кеңістіктік импорттық қашықтықтан
GPO ретінде RPi. GPIO импорттау
уақыттан бастап ұйқы импортталады
GPIO.setwarnings (жалған)
GPIO.setmode (GPIO. BCM)
imutils -ден импорт face_utils
имутил импорт dlib импорт cv2 импорт
дыбыстық сигнал = 23
GPIO. орнату (дыбыстық сигнал, GPIO. OUT)
def eye_aspect_ratio (көз):
A = қашықтық.евклидтік (көз [1], көз [5]) В = қашықтық.евклидтік (көз [2], көз [4]) С = қашықтық.евклидтік (көз [0], көз [3]) құлақ = (A + B) / (2.0 * C) қайтару құлақ жиегі = 0.25 frame_check = 20 анықтау = dlib.get_frontal_face_detector () болжам = dlib.shape_predictor («. / Пішін_предиктор_68_face_landmarks.dat»)# Dat файлы - бұл кодтың түйіні
(lStart, lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS [«left_eye»]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS [«right_eye»] cap = cv2. VideoCapture (0) жалаушасы = 0, ал True: ret, frame = cap.read () frame = imutils.resize (кадр, ені = 450) сұр = cv2.cvtColor (жақтау, cv2. COLOR_BGR2GRAY) субъектілер = пәндер бойынша пән үшін анықтау (сұр, 0): нысан = болжау (сұр, тақырып) пішін = face_utils.shape_to_np (пішін)#NumPy массивіне айналдыру leftEye = пішін [lStart: lEnd] rightEye = пішін [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) rightEAR = eye_aspect_ratio (rightEye) ear = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull (leftEye) rightEyeHull = cv2.convex drawContours (кадр, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) if ear = frame_check: cv2.putText (кадр, «**************** АЛЕРТ! ****************», (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (кадр, «**************** АЛЕРТ! *********** ***** «, (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #басып шығару (» Dro wsy «)
GPIO. шығысы (дыбыстық сигнал, GPIO. HIGH)
басқасы: жалауша = 0
GPIO. шығысы (дыбыстық сигнал, GPIO. LOW)
cv2.imshow («Frame», frame) key = cv2.waitKey (1) & 0xFF if key == ord («q»): break cv2.destroyAllWindows () cap.stop ()
Ұсынылған:
Arduino автокөлігіне кері тұрақ туралы ескерту жүйесі - Қадамдық қадамдар: 4 қадам
Arduino автокөлігіне кері тұрақ туралы ескерту жүйесі | Қадамдар: Бұл жобада мен Arduino UNO және HC-SR04 ультрадыбыстық сенсоры көмегімен қарапайым Arduino Car Reverse паркинг датчигінің схемасын жасаймын. Бұл Arduino негізіндегі Car Reverse ескерту жүйесін автономды навигация, робот ауқымы және басқа да ауқымда қолдануға болады
GSM, GPS және акселерометрді қолданатын жазатайым оқиғалар туралы ескерту жүйесі: 5 қадам (суреттермен)
GSM, GPS және акселерометрді қолданатын жазатайым оқиғалар туралы хабарлау жүйесі: маған конкурсқа дауыс беріңіз, маған конкурсқа дауыс беріңіз, қазіргі уақытта жол апатынан көптеген адамдар жолда қайтыс болды, оның басты себебі - «құтқарудың кешігуі». Дамушы елдерде бұл мәселе өте үлкен, сондықтан мен бұл жобаны үнемдеу үшін жасадым
Макей Макей - қатты жел туралы алдын ала ескерту жүйесі: 5 қадам
Макей Макей - қатты жел туралы алдын ала ескерту жүйесі: Бұл " ерте ескерту жүйесі " Дизайн тапсырмасы оқушылар тобына берілетін болады. Мақсаты - студенттер тобынан (әр топтан екі -үштен) адамдарға қауіп төндіретін желден пана іздеуді ескертетін жүйені құру
Велосипед құлпын ашу туралы ескерту жүйесі: 15 қадам
Велосипед құлпын ашу туралы ескерту жүйесі: Сәлем баршаңызға … !! Қалдарыңыз қалай? Барлығыңыздың үйіңізде көлік бар. Көлік қауіпсіздігі барлығына маңызды. Мен ұқсас жобамен оралдым. Бұл жобада мен GSM модулі мен Arduino көмегімен велосипедті құлыптан босату туралы ескерту жүйесін жасадым. Велосипед құлпы ашылғанда
Жаңбыр туралы ескерту жүйесі: 4 қадам
Жаңбыр туралы ескерту жүйесі: бұл жаңбыр туралы ескерту жүйесі, дабыл мен жарықдиодты қосады және жақында жаңбыр жауатынын ескертеді, бұл қосымшаның мақсатты аудиториясы киімін үйде кептіру үшін шығаратын адамдарға арналған. киімдерін сізбен бірге ұстай алады