Вы можете использовать opencv в Python вместе с несколькими другими библиотеками для обнаружения моргания глаз.
После того, как вы используете видеопоток,
EYE_AR_THRESH = 0.3
for rect in rects:
# determine the facial landmarks for the face region, then
# convert the facial landmark (x, y)-coordinates to a NumPy
# array
shape = predictor(gray, rect)
shape = face_utils.shape_to_np(shape)
# extract the left and right eye coordinates, then use the
# coordinates to compute the eye aspect ratio for both eyes
leftEye = shape[lStart:lEnd]
rightEye = shape[rStart:rEnd]
# EAR = eye aspect ratio
leftEAR = eye_aspect_ratio(leftEye) # important line
rightEAR = eye_aspect_ratio(rightEye) # important line
# average the eye aspect ratio together for both eyes
ear = (leftEAR + rightEAR) / 2.0
Переменная 'ear' дает соотношение сторон глаза. Теперь вы сравниваете, если он ниже порога. например,
if ear < EYE_AR_THRESH:
# eye is blinked. continue with your business logic.
Для более подробной информации, пожалуйста, обратитесь к этой ссылке.