Mundarija:
- 1 -qadam: Sizga kerak bo'lgan narsalar
- 2 -qadam: Python kodi, ko'zlar shaklini bashorat qiluvchi ma'lumotlar to'plami (kompyuter versiyasi)
- 3 -qadam: Raspberry Pi versiyasi
Video: Uyquchanlik haqida ogohlantirish tizimi: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Har yili dunyoning ko'plab mamlakatlarida halokatli yo'l -transport hodisalari tufayli ko'p odamlar hayotdan ko'z yumishadi va uyqusirab haydash yo'l -transport hodisalari va o'limining asosiy sabablaridan biridir. Haydash boshqaruvidagi charchoq va uyqu ko'pincha jiddiy baxtsiz hodisalarning asosiy sababidir. Biroq, charchoqning dastlabki belgilari o'ta muhim vaziyat paydo bo'lishidan oldin aniqlanishi mumkin, shuning uchun haydovchining charchashini aniqlash va uning belgisi tadqiqot mavzusi. Uyqusizlikni aniqlashning an'anaviy usullarining aksariyati xatti -harakatlarga asoslangan, ba'zilari esa haydovchilarni chalg'itishi mumkin, ba'zilari esa qimmat datchiklarni talab qiladi. Shuning uchun, ushbu maqolada, engil, real vaqtda haydovchining uyquchanligini aniqlash tizimi ishlab chiqilgan va Android ilovasida joriy qilingan. Tizim videoni yozib oladi va har bir kadrda tasvirni qayta ishlash texnikasi yordamida haydovchining yuzini aniqlaydi. Tizim haydovchining uyquchanligini moslashish chegarasi asosida aniqlash uchun yuz nishonlarini aniqlay oladi, ko'zning aspekt nisbati (EAR) va ko'zni yopish nisbati (ECR) ni hisoblab chiqadi. Taklif etilgan usulning samaradorligini tekshirish uchun mashinani o'rganish algoritmlari ishlatilgan. Ampirik natijalar shuni ko'rsatadiki, tavsiya etilgan model tasodifiy o'rmon tasniflagichi yordamida 84% aniqlikka erisha oladi.
1 -qadam: Sizga kerak bo'lgan narsalar
1. RASPBERRY PI
2. WEBCAM (yaxshi natijalar uchun C270 HD WEB CAM)
Kompyuter versiyasiga kodni o'zgartirish kerak bo'lishi mumkin
2 -qadam: Python kodi, ko'zlar shaklini bashorat qiluvchi ma'lumotlar to'plami (kompyuter versiyasi)
real vaqtda videoda ko'zlarni samarali aniqlash uchun biz ushbu.dat faylidan foydalanishimiz mumkin.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
Yuqoridagi havoladan.dat faylini yuklab oling va pastdagi python kodini ishga tushiring
Python kodi
skipy.fazoviy import masofasidan imutils import face_utils import imutils import dlib import cv2
def eye_aspect_ratio (ko'z):
A = masofa.evklid (ko'z [1], ko'z [5]) B = masofa.evklid (ko'z [2], ko'z [4]) C = masofa evklid (ko'z [0], ko'z [3]) quloq = (A + B) / (2.0 * C) qaytish qulog'i bosimi = 0.25 frame_check = 20 aniqlash = dlib.get_frontal_face_detector () prognoz = dlib.shape_predictor (". / Shakl_predictor_68_face_landmarks.dat")# Dat fayli kodning asosiy nuqtasidir
(lStart, lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["chap_ko'z"]
(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, width = 450) kulrang = cv2.cvtColor (ramka, cv2. COLOR_BGR2GRAY) sub'ektlari = sub'ektlar uchun ob'ektni aniqlash (kulrang, 0): shakl = prognoz (kulrang, mavzu) shakli = yuz_utils.shape_to_np (shakl)#NumPy qatoriga aylantirish chapEye = shakl [lStart: lEnd] rightEye = shakli [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) o'ngEAR = eye_aspect_ratio (rightEye) quloq = (chapEAR + o'ngEAR) / 2.0 chapEyeHull = cv2.convexHull (chapEye) o'ngEyeHye = cv2.convex drawContours (ramka, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) if ear = frame_check: cv2.putText (ramka, "**************** ALERT! ****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (ramka, "**************** OGOHLANTIRISH! *********** ***** ", (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 -qadam: Raspberry Pi versiyasi
odamlar ko'zlarini yumganda, malina pi sizga ogohlantirish beradi
23 -gachasi pinhonaga signalni ulang (rasmga qarang)
skipy.fazoviy import masofasidan
RPi. GPIO -ni GPIO sifatida import qilish
vaqtdan boshlab uyqu
GPIO.setwarnings (noto'g'ri)
GPIO.setmode (GPIO. BCM)
imutils dan import face_utils
import imutils import dlib import cv2
ovozli signal = 23
GPIO. sozlash (buzzer, GPIO. OUT)
def eye_aspect_ratio (ko'z):
A = masofa.evklid (ko'z [1], ko'z [5]) B = masofa.evklid (ko'z [2], ko'z [4]) C = masofa evklid (ko'z [0], ko'z [3]) quloq = (A + B) / (2.0 * C) qaytish qulog'i bosimi = 0.25 frame_check = 20 aniqlash = dlib.get_frontal_face_detector () prognoz = dlib.shape_predictor (". / Shakl_predictor_68_face_landmarks.dat")# Dat fayli kodning asosiy nuqtasidir
(lStart, lEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["chap_ko'z"]
(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, width = 450) kulrang = cv2.cvtColor (ramka, cv2. COLOR_BGR2GRAY) sub'ektlari = sub'ektlar uchun mavzu uchun aniqlash (kulrang, 0): shakl = prognoz (kulrang, mavzu) shakli = yuz_utils.shape_to_np (shakl)#NumPy qatoriga aylantirish chapEye = shakl [lStart: lEnd] rightEye = shakli [rStart: rEnd] leftEAR = eye_aspect_ratio (leftEye) rightEAR = eye_aspect_ratio (rightEye) quloq = (chapEAR + o'ngEAR) / 2.0 chapEyeHull = cv2.convexHull (chapEye) o'ngEyeHye = cv2.convex drawContours (ramka, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours (frame, [rightEyeHull], -1, (0, 255, 0), 1) if ear = frame_check: cv2.putText (ramka, "**************** ALERT! ****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText (ramka, "**************** OGOHLANTIRISH! *********** ***** ", (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #print (" Dro wsy ")
GPIO.output (signal, GPIO. HIGH)
boshqa: bayroq = 0
GPIO.output (signal, GPIO. LOW)
cv2.imshow ("Frame", frame) key = cv2.waitKey (1) & 0xFF if key == ord ("q"): break cv2.destroyAllWindows () cap.stop ()
Tavsiya:
Arduino avtomobilining teskari to'xtash joyi haqida ogohlantirish tizimi - Bosqichma -bosqich: 4 qadam
Arduino avtomobilining teskari to'xtash joyi haqida ogohlantirish tizimi | Bosqichma-bosqich: Ushbu loyihada men Arduino UNO va HC-SR04 Ultrasonik Sensor yordamida oddiy Arduino avtomobilining teskari to'xtash sensori sxemasini loyihalashtiraman. Arduino -ga asoslangan bu avtomobilni teskari ogohlantirish tizimi avtonom navigatsiya, robotlar diapazoni va boshqa diapazonlarda ishlatilishi mumkin
Yo'lak qo'ng'irog'i haqida ogohlantirish tizimi: 4 qadam
Yo'lak qo'ng'irog'i haqida ogohlantirish tizimi: Maktabda sinf o'zgarishi qachon bo'lishi kerakligini ko'rsatadigan qo'ng'iroqlar bor. Ular birinchi navbatda dars qachon tugashini ko'rsatish uchun qo'ng'iroq qilishadi, keyin ikkinchi marta qo'ng'iroq qilib, keyingi dars qachon boshlanishini ko'rsatadi. Agar talaba kechiksa, u holda odatda
Zavodingiz uchun namlik past bo'lgan tuproq haqida ogohlantirish tizimi: 5 qadam
Zavodingiz uchun namlik past bo'lgan tuproq haqida ogohlantirish tizimi: Bir nechta turar -joylarda har xil turdagi idishlarni topish odatiy holdir. Kundalik mashg'ulotlarning ko'pligi tufayli odamlar o'z o'simliklarini sug'orishni unutishadi va ular suv etishmasligidan o'lishadi
Velosiped qulfini ochish haqida ogohlantirish tizimi: 15 qadam
Velosiped qulfini ochish haqida ogohlantirish tizimi: Salom hammaga … Qandaysiz? Hammangizning uyingizda transport vositalari bor. Avtomobil xavfsizligi hamma uchun muhim. Men shunga o'xshash loyiha bilan qaytdim. Ushbu loyihada men GSM Module va Arduino yordamida velosiped qulfini ochish haqida ogohlantirish tizimini yaratdim. Velosiped qulfini ochganda
Arduino LCD yong'in xavfsizligi haqida ogohlantirish tizimi: 9 qadam
Arduino LCD yong'in xavfsizligi haqida ogohlantirish tizimi: Bu LCD displey, signal, RGB va DHT harorat sensori vazifalarini birlashtirgan talabalar tomonidan ishlab chiqilgan loyihadir. LCD displeyda hozirgi atrof -muhit harorati ko'rsatiladi va yangilanadi