ዝርዝር ሁኔታ:

የእንቅልፍ ማንቂያ ስርዓት - 3 ደረጃዎች
የእንቅልፍ ማንቂያ ስርዓት - 3 ደረጃዎች

ቪዲዮ: የእንቅልፍ ማንቂያ ስርዓት - 3 ደረጃዎች

ቪዲዮ: የእንቅልፍ ማንቂያ ስርዓት - 3 ደረጃዎች
ቪዲዮ: ጥሩ እንቅልፍ መተኛት#2(የእንቅልፍ እጦት መፍትሄ(Sleep Restriction Therapy(Sleep Disorder(Insomnia) 2024, ሀምሌ
Anonim
የእንቅልፍ ማንቂያ ስርዓት
የእንቅልፍ ማንቂያ ስርዓት

በዓለም ዙሪያ በገዳይ የመንገድ አደጋዎች በየዓመቱ ብዙ ሰዎች ሕይወታቸውን ያጣሉ እና የእንቅልፍ መንዳት ለመንገድ አደጋዎች እና ለሞት ዋና መንስኤዎች ናቸው። በማሽከርከር መቆጣጠሪያዎች ላይ ድካም እና ማይክሮ እንቅልፍ ብዙውን ጊዜ ለከባድ አደጋዎች መንስኤ ናቸው። ሆኖም ፣ አንድ ወሳኝ ሁኔታ ከመከሰቱ በፊት የድካም የመጀመሪያ ምልክቶች ሊታወቁ ይችላሉ ፣ ስለሆነም የአሽከርካሪውን ድካም ማወቅ እና አመላካች ቀጣይ የምርምር ርዕስ ነው። እንቅልፍን ለመለየት ብዙዎቹ ባህላዊ ዘዴዎች በባህሪያት ገጽታዎች ላይ የተመሰረቱ ናቸው ፣ አንዳንዶቹ ጣልቃ ገብተው ሾፌሮችን ሊያዘናጉ ይችላሉ ፣ አንዳንዶቹ ውድ ዳሳሾች ይፈልጋሉ። ስለዚህ ፣ በዚህ ጽሑፍ ውስጥ ፣ በ Android ትግበራ ላይ ቀላል ክብደት ያለው ፣ የእውነተኛ ጊዜ የአሽከርካሪ ድብታ ማወቂያ ስርዓት ተዘጋጅቶ ይተገበራል። ስርዓቱ የምስል ማቀነባበሪያ ቴክኒኮችን በመጠቀም ቪዲዮዎቹን ይመዘግባል እና በእያንዳንዱ ክፈፍ ውስጥ የአሽከርካሪውን ፊት ይለያል። በአመቻች ወሰን ላይ በመመርኮዝ የአሽከርካሪውን ድብታ ለመለየት ስርዓቱ የፊት ገጽታ ምልክቶችን የመለየት ችሎታ አለው ፣ የዓይን እይታ ሬቲዮ (ኢአር) እና የዓይን መዝጊያ ውድር (ECR) ን ያሰላል። የታቀደውን አቀራረብ ውጤታማነት ለመፈተሽ የማሽን መማሪያ ስልተ ቀመሮች ሥራ ላይ ውለዋል። ተጨባጭ ውጤቶች እንደሚያሳዩት የታቀደው ሞዴል የዘፈቀደ የደን ምደባን በመጠቀም 84% ትክክለኛነትን ማሳካት ይችላል።

ደረጃ 1: የሚያስፈልጉዎት ነገሮች

1. RASPBERRY PI

2.ዌብካም (ለተሻለ ውጤት C270 ኤችዲ ዌብ ካም)

የኮምፒተር ስሪት በኮዱ ውስጥ አንዳንድ ለውጦች ያስፈልጉ ይሆናል

ደረጃ 2 - የፓይዘን ኮድ ከዓይኖች ቅርፅ ትንበያ ዳታሴት (ፒሲ ስሪት)

በእውነተኛ ጊዜ ቪዲዮ ውስጥ ዓይኖችን በጣም ውጤታማ በሆነ መንገድ ለመለየት ፣ ይህንን ስውሎ.dat ፋይል መጠቀም እንችላለን።

drive.google.com/open?id=1UiSHe72L4TeN14VK…

የ.dat ፋይልን ከላይ ካለው አገናኝ ያውርዱ እና ከዚህ በታች ያለውን የፓይዘን ኮድ ያሂዱ

የፓይዘን ኮድ

ከ scipy.spatial ማስመጣት ርቀቱ imutils ከውጭ ያስመጣሉ የፊት_ዩቲል አስመጪዎች ዲሊብ ማስመጣት cv2

def eye_aspect_ratio (ዓይን):

ሀ = distance.euclidean (ዓይን [1] ፣ ዓይን [5]) B = distance.euclidean (ዓይን [2] ፣ ዓይን [4]) C = distance.euclidean (ዓይን [0] ፣ ዓይን [3]) ጆሮ = (A + B) / (2.0 * C) የመመለሻ ጆሮ ትሬሽ = 0.25 frame_check = 20 detect = dlib.get_frontal_face_detector () predict = dlib.shape_predictor (". / Shape_predictor_68_face_landmarks.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 እውነት ሲሆን - ret, frame = cap.read () frame = imutils.resize (ፍሬም ፣ ስፋት = 450) ግራጫ = cv2.: 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.convexHull (rightEye) drawContours (ፍሬም ፣ [leftEyeHull] ፣ -1 ፣ (0 ፣ 255 ፣ 0) ፣ 1) cv2.drawContours (ፍሬም ፣ [rightEyeHull] ፣ -1 ፣ (0 ፣ 255 ፣ 0) ፣ 1) ጆሮ ከሆነ = frame_check: cv2.putText (ፍሬም ፣ "**************** አረጋጋ! ****************" ፣ (10 ፣ 30) ፣ cv2. FONT_HERSHEY_SIMPLEX ፣ 0.7 ፣ (0 ፣ 0 ፣ 255) ፣ 2) cv2.putText (ፍሬም ፣ “**************** ALERT! *********** *****”፣ (10 ፣ 325) ፣ cv2. FONT_HERSHEY_SIMPLEX ፣ 0.7 ፣ (0 ፣ 0 ፣ 255) ፣ 2) #ህትመት (“ድሮ wsy ") ሌላ: ባንዲራ = 0 cv2.imshow (" ፍሬም ", ፍሬም) ቁልፍ = cv2.waitKey (1) እና 0xFF ቁልፍ ከሆነ == ord (" q "): cv2.destroyAllWindow () cap.stop ()

ደረጃ 3 - Raspberry Pi ሥሪት

Raspberry Pi ሥሪት
Raspberry Pi ሥሪት
Raspberry Pi ሥሪት
Raspberry Pi ሥሪት

ሰዎች ዓይኖቻቸውን ሲዘጉ የዛፍ ፍሬው ማንቂያውን ይሰጥዎታል

ጩኸትዎን ከፒን 23 ጋር ያገናኙት (ምስሉን ይመልከቱ)

ከ scipy.የቦታ ማስመጣት ርቀት

RPi. GPIO ን እንደ GPIO ያስመጡ

ከጊዜ ወደ ጊዜ እንቅልፍ ያስመጣሉ

GPIO. ማስጠንቀቂያዎች (ሐሰት)

GPIO.setmode (GPIO. BCM)

ከአይሙተሮች ፊት_ዩቱሎችን ያስመጣሉ

አስመጪዎችን ከውጭ አስገባ ዲሊብ ማስመጣት cv2

ጩኸት = 23

GPIO.setup (buzzer, GPIO. OUT)

def eye_aspect_ratio (ዓይን):

ሀ = distance.euclidean (ዓይን [1] ፣ ዓይን [5]) B = distance.euclidean (ዓይን [2] ፣ ዓይን [4]) C = distance.euclidean (ዓይን [0] ፣ ዓይን [3]) ጆሮ = (A + B) / (2.0 * C) የመመለሻ ጆሮ ትሬሽ = 0.25 frame_check = 20 detect = dlib.get_frontal_face_detector () predict = dlib.shape_predictor (". / Shape_predictor_68_face_landmarks.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 እውነት ሲሆን - ret, frame = cap.read () frame = imutils.resize (ፍሬም ፣ ስፋት = 450) ግራጫ = cv2.: 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.convexHull (rightEye) drawContours (ክፈፍ ፣ [leftEyeHull] ፣ -1 ፣ (0 ፣ 255 ፣ 0) ፣ 1) cv2.drawContours (ፍሬም ፣ [rightEyeHull] ፣ -1 ፣ (0 ፣ 255 ፣ 0) ፣ 1) ጆሮ ከሆነ = frame_check: cv2.putText (ፍሬም ፣ "**************** አረጋጋ! ****************" ፣ (10 ፣ 30) ፣ cv2. FONT_HERSHEY_SIMPLEX ፣ 0.7 ፣ (0 ፣ 0 ፣ 255) ፣ 2) cv2.putText (ፍሬም ፣ “**************** ALERT! *********** *****”፣ (10 ፣ 325) ፣ cv2. FONT_HERSHEY_SIMPLEX ፣ 0.7 ፣ (0 ፣ 0 ፣ 255) ፣ 2) #ህትመት (“ድሮ wsy ")

GPIO.output (buzzer, GPIO. HIGH)

ሌላ: ባንዲራ = 0

GPIO.output (buzzer, GPIO. LOW)

cv2.imshow ("ፍሬም" ፣ ፍሬም) ቁልፍ = cv2.waitKey (1) እና 0xFF ቁልፍ ከሆነ == ord ("q"): cv2.destroyAllWindow () cap.stop ()

የሚመከር: