Агуулгын хүснэгт:
- Алхам 1: Танд хэрэгтэй зүйл
- Алхам 2: Нүдний хэлбэр дүрслэгч Python кодын өгөгдлийн багц (PC хувилбар)
- Алхам 3: Raspberry Pi хувилбар
Видео: Нойрмоглох дохиоллын систем: 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Жил бүр дэлхий даяар зам тээврийн ослоос болж олон хүн амь насаа алдаж, нойрмог жолоо барих нь зам тээврийн осол, эндэгдлийн гол шалтгаануудын нэг болдог. Жолоодлогын удирдлага дээр ядрах, бичил унтах нь ихэвчлэн ноцтой ослын үндэс болдог. Гэсэн хэдий ч ядаргааны анхны шинж тэмдгийг ноцтой нөхцөл байдал үүсэхээс өмнө илрүүлж болох тул жолоочийн ядаргаа, илрэлийг илрүүлэх нь судалгааны сэдэв хэвээр байна. Нойрмог байдлыг илрүүлэх уламжлалт аргуудын ихэнх нь зан үйлийн шинж чанарт суурилдаг бол зарим нь хөндлөнгөөс оролцдог бөгөөд жолоочийн анхаарлыг сарниулдаг бол зарим нь үнэтэй мэдрэгч шаарддаг. Тиймээс энэхүү баримт бичигт хөнгөн жинтэй, бодит цагийн жолоочийн нойрмог байдлыг илрүүлэх системийг боловсруулж, Андройд аппликейшн дээр ашигласан болно. Систем нь дүрс бичлэг хийх техникийг ашиглан видеог бүртгэж, жолоочийн царайг хүрээ бүрт илрүүлдэг. Энэхүү систем нь дасан зохицох босго дээр суурилсан жолоочийн нойрмог байдлыг илрүүлэхийн тулд нүүрний тэмдэглэгээг илрүүлэх, нүдний харааны харьцаа (EAR) ба нүд хаах харьцаа (ECR) -ийг тооцоолох чадвартай. Санал болгож буй аргын үр дүнг шалгахын тулд машин сургалтын алгоритмыг ашигласан болно. Эмпирик үр дүнгээс үзэхэд санал болгож буй загвар нь санамсаргүй ойн ангилагч ашиглан 84% -ийн нарийвчлалыг олж авах боломжтой юм.
Алхам 1: Танд хэрэгтэй зүйл
1. Raspberberry PI
2. WEBCAM (C270 HD WEB CAM нь илүү сайн үр дүнд хүрдэг)
Компьютерийн хувилбарт кодонд зарим өөрчлөлт оруулах шаардлагатай байж магадгүй юм
Алхам 2: Нүдний хэлбэр дүрслэгч Python кодын өгөгдлийн багц (PC хувилбар)
Нүдийг бодит цаг хугацаанд үр дүнтэй илрүүлэхийн тулд бид энэхүү.dat файлыг ашиглаж болно.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
Дээрх линкээс.dat файлыг татаж аваад доорх python кодыг ажиллуулна уу
Python код
scipy. орон зайн импортын зайнаас
def eye_aspect_ratio (нүд):
A = зай.евклид (нүд [1], нүд [5]) B = зай.евклид (нүд [2], нүд [4]) C = зай.евклид (нүд [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 ["зүүн_ нүд"]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["right_eye"] cap = cv2. VideoCapture (0) flag = 0 байхад True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) саарал = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) субьектууд = сэдвүүдийн хувьд сэдвийг илрүүлэх (саарал, 0): хэлбэр = урьдчилан таамаглах (саарал, сэдэв) хэлбэр = нүүр_утилс.шапан_нп (хэлбэр)#NumPy массив руу хөрвүүлэх зүүн нүд = хэлбэр [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 (frame, [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 ") өөр: туг = 0 cv2.imshow (" Frame ", frame) key = cv2.waitKey (1) & 0xFF if key == ord (" q "): break cv2.destroyAllWindows () cap.stop ()
Алхам 3: Raspberry Pi хувилбар
хүмүүс нүдээ анихад бөөрөлзгөнө пи танд сэрэмжлүүлэг өгөх болно
23 дугаар зүү рүү дуугарагчаа холбоно уу (зургийг үзнэ үү)
орон зайн импортын зайнаас
RPi. GPIO -г GPIO болгон импортлох
цагаас эхлэн унтах
GPIO.setwarnings (Худал)
GPIO.setmode (GPIO. BCM)
from imutils import face_utils
импорт имутил импорт dlib импорт cv2
дуугарагч = 23
GPIO. тохиргоо (дуугаралт, GPIO. OUT)
def eye_aspect_ratio (нүд):
A = зай.евклид (нүд [1], нүд [5]) B = зай.евклид (нүд [2], нүд [4]) C = зай.евклид (нүд [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 ["зүүн_ нүд"]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS ["right_eye"] cap = cv2. VideoCapture (0) flag = 0 байхад True: ret, frame = cap.read () frame = imutils.resize (frame, width = 450) саарал = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) субьектууд = сэдвүүдийн хувьд сэдвийг илрүүлэх (саарал, 0): хэлбэр = урьдчилан таамаглах (саарал, сэдэв) хэлбэр = нүүр_утилс.шапан_нп (хэлбэр)#NumPy массив руу хөрвүүлэх зүүн нүд = хэлбэр [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 (frame, [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 ухаантай ")
GPIO. гаралт (дуугаралт, 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 ()
Зөвлөмж болгож буй:
Arduino машины урвуу зогсоолын дохиоллын систем - Алхам алхамаар: 4 алхам
Arduino машины урвуу зогсоолын дохиоллын систем | Алхам алхамаар: Энэ төсөлд би Arduino UNO болон HC-SR04 хэт авианы мэдрэгч ашиглан Arduino автомашины урвуу зогсоолын мэдрэгчийн энгийн хэлхээг зохион бүтээнэ. Энэхүү Arduino дээр суурилсан Автомашины Урвуу дохиоллын системийг бие даасан навигаци, роботын хүрээ болон бусад хүрээний зориулалтаар ашиглаж болно
M5StickC-ESP32 Mini PIR дохиоллын систем: 7 алхам
M5StickC-ESP32 Mini PIR дохиоллын систем: Энэхүү төсөлд мини PIR мэдрэгч болон M5StickC ESP32 самбар ашиглан хэрхэн дохиоллын мини дохио өгөх талаар сурах болно
DIY гэрийн автоматжуулалтын халдагч дохиоллын систем: 5 алхам (зурагтай)
DIY гэрийн автоматжуулалтын халдагчдын дохиоллын систем!: Энэхүү төсөлд би танай гэрт халдагчдын дохиоллын системийг бий болгохын тулд Home Assistant програмыг хэрхэн ашиглахыг танд үзүүлэх болно. Систем нь үндсэндээ хаалга зөвшөөрөлгүй нээгдсэнийг илрүүлж, дараа нь мэдэгдэл илгээх болно
GSM, GPS, акселерометр ашиглан осол аваарын дохиоллын систем: 5 алхам (зурагтай)
GSM, GPS, хурдатгал хэмжигчийг ашиглан ослын дохиоллын систем: Намайг тэмцээнд оролцуулахын тулд надад саналаа өгөөрэй.Уралдаанд надад саналаа өгөөрэй Өнөө үед зам дээр ослын улмаас олон хүн амиа алдаж байгаа бөгөөд үүний гол шалтгаан нь " аврах ажил удааширсан ". Хөгжиж буй орнуудад энэ асуудал маш том тул би энэ төслийг хэмнэх зорилгоор бүтээсэн
DIY хөдөлгөөн илрүүлэх SMS дохиоллын систем: 5 алхам (зурагтай)
DIY хөдөлгөөнийг илрүүлэх SMS дохиоллын систем: Энэхүү төсөлд би хямд үнэтэй PIR хөдөлгөөн мэдрэгчийг TC35 GSM модультай хослуулан танд дохио өгөх системийг бий болгоно. Хэн нэгэн таны эд зүйлийг хулгайлах гэж оролдох бүрт SMS бичээрэй. Эхэлцгээе