Мазмуну:
- 1 -кадам: Сизге керектүү нерселер
- 2 -кадам: Python Code with Eyes Shape Predictor Dataset (PC Version)
- 3 -кадам: Raspberry Pi версиясы
Video: Уйкусуздукту эскертүү системасы: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:38
Жыл сайын дүйнө жүзү боюнча өлүмгө алып келген жол кырсыгынан көптөгөн адамдар өмүрлөрүн кыйышат жана уйкусурап айдоо жол кырсыктарынын жана өлүмдүн негизги себептеринин бири болуп саналат. Айдоочулук башкаруудагы чарчоо жана микро уйку көп учурда олуттуу кырсыктардын түпкү себеби болуп саналат. Бирок, чарчоонун баштапкы белгилери оор кырдаал жаралганга чейин аныкталышы мүмкүн, демек, айдоочунун чарчоосу жана анын көрсөткүчү изилдөө темасы болуп саналат. Уйкусуроону аныктоонун салттуу ыкмаларынын көбү жүрүм -турум аспектилерине негизделген, кээ бирлери интрузивдүү жана айдоочулардын көңүлүн алагды кылышы мүмкүн, кээ бирлери кымбат сенсорлорду талап кылат. Ошондуктан, бул макалада жеңил, салмактуу, реалдуу убакытта айдоочунун уйкусуздугун аныктоо системасы иштелип чыккан жана Android тиркемесине киргизилген. Система видеолорду жазат жана сүрөттү иштетүү ыкмаларын колдонуу менен ар бир кадрда айдоочунун жүзүн аныктайт. Система жүздүн белгилерин аныктоого жөндөмдүү, адаптивдүү босогонун негизинде айдоочунун уйкусуроосун аныктоо үчүн Eye Aspect Ratio (EAR) жана Elos Close Ratio (ECR) эсептейт. Сунушталган ыкманын эффективдүүлүгүн текшерүү үчүн машиналарды үйрөнүү алгоритмдери колдонулган. Эмпирикалык жыйынтыктар сунушталган модель кокус токой классификаторун колдонуу менен 84% тактыкка жетүүгө жөндөмдүү экенин көрсөтүүдө.
1 -кадам: Сизге керектүү нерселер
1. РЕППЕРРИ ПИ
2. WEBCAM (C270 HD WEB CAM МЫКТЫ ЖЫЙЫНТЫКТАР ҮЧҮН)
Компьютердин версиясына кодго кээ бир өзгөртүүлөр талап кылынышы мүмкүн
2 -кадам: Python Code with Eyes Shape Predictor Dataset (PC Version)
реалдуу убакыт видеосунда көздү эффективдүү аныктоо үчүн, биз бул.dat файлын колдоно алабыз.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
Жогорудагы шилтемеден.dat файлын түшүрүп, төмөндөгү питон кодун иштетиңиз
Python коду
scipy.космодук импорттук аралыктан
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 (". / 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) flag = 0 while True: ret, frame = cap.read () frame = imutils.resize (frame, туурасы = 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 ") 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 -пинге туташтырыңыз (сүрөттү караңыз)
scipy.космостук импорттук аралыктан
GPO катары RPi. GPIO импорттоо
Убакытты импорттоо
GPIO.setwarnings (False)
GPIO.setmode (GPIO. BCM)
imutils импорт face_utils
импорт имутил импорт длиб импорт cv2
коңгуроо = 23
GPIO.setup (ызы -чуу, 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 (". / 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) flag = 0 while True: ret, frame = cap.read () frame = imutils.resize (frame, туурасы = 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.output (ызылдак, GPIO. HIGH)
башка: желек = 0
GPIO.output (ызылдак, GPIO. LOW)
cv2.imshow ("Frame", frame) key = cv2.waitKey (1) & 0xFF if key == ord ("q"): break cv2.destroyAllWindows () cap.stop ()
Сунушталууда:
GSM, GPS жана акселерометрди колдонуп, авария тууралуу эскертүү системасы: 5 кадам (сүрөттөр менен)
GSM, GPS жана акселерометрди колдонуп, авария тууралуу кабарлоо системасы: Сураныч, мени конкурска добуш бериңиз, мага конкурска добуш бериңиз, азыркы учурда жол кырсыгынан улам көп адамдар жолдо каза болушат, анын негизги себеби " куткаруунун кечигиши ". Өнүгүп келе жаткан өлкөлөрдө бул көйгөй абдан чоң, ошондуктан мен бул долбоорду сактап калуу үчүн иштеп чыктым
Аба ырайы эскертүү жарык системасы: 6 кадам
Аба ырайы сигнал системасы: Аба ырайы эскертүүчү жарык берүү системасы ар кандай аба ырайы эскертүүлөрүн же сааттарды көрсөтүү үчүн жарыктандырууну өзгөртөт. Бул система аба ырайынын абалын көрсөтүү үчүн жарык өзгөртүү үчүн эркин жеткиликтүү аба ырайы маалыматтарды колдонот. Малина пи (түйүн-кызыл аркылуу) текшерет
Коридордун коңгуроо эскертүү системасы: 4 кадам
Коридордун коңгуроо эскертүү системасы: Мектепте класстын алмашуусу качан болорун көрсөтүүчү коңгуроолор бар. Алар алгач сабак качан бүтөөрүн көрсөтүү үчүн шыңгырашат, андан кийин экинчи сабак качан башталаарын көрсөтүү үчүн экинчи жолу чалышат. Эгерде студент кечиксе, анда алар адатта
Сиздин өсүмдүк үчүн төмөн нымдуу топурактын эскертүү системасы: 5 кадам
Сиздин өсүмдүгүңүз үчүн төмөн нымдуу топурактын эскертүү системасы: Бир нече турак жайларда ар кандай өсүмдүктөрү бар кумураларды табуу кадимки көрүнүш. Жана күнүмдүк иштердин көптүгү менен, адамдар өсүмдүктөрүн сугарууну унутушат жана акыры суунун жоктугунан өлүшөт
Макей Макей - Катуу шамал үчүн эрте эскертүү системасы: 5 кадам
Макей Макей - Катуу шамал үчүн эрте эскертүү системасы: Бул " эрте эскертүү системасы " дизайн боюнча студенттердин тобуна тапшырма берилет. Максаты - студенттер тобу (ар бир топко эки же үчөө) адамдарды коркунучтуу болуп жаткан шамалдан баш калкалоону издей турган системаны иштеп чыгуу