Как распознать движение головы в открытом резюме? - PullRequest
0 голосов
/ 04 марта 2020

Добрый день, у меня в настоящее время есть некоторый код, который распознает глаза и лица с помощью каскадов Хаара. Мне было любопытно узнать, знает ли кто-нибудь, как заставить программу распознавать движение головы, например. кивок или движение глаза, например, моргание.

Вот что у меня сейчас есть:

   import cv2
import numpy as np
"""
Created on Mon Mar 2 11:38:49 2020

@author: bradl
"""
# Open Camera
camera = cv2.VideoCapture(0)
camera.set(10, 200)

face_cascade = cv2.CascadeClassifier('haarcascades/face.xml')
##smile = cv2.CascadeClassifier('haarcascades/smile.xml')
eye_cascade = cv2.CascadeClassifier('haarcascades/eye.xml')

while True:
    ret, img = camera.read()
    ## converts to gray
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    ## determines what a face is and how it is found
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x,y,w,h) in faces:
        ## Determines the starting and ending co-ordinates for a blue rectangle to be drawn around the face
        cv2.rectangle (img, (x,y), (x+w, y+h), (255,0,0), 2)
        ## Declares the region of the image where the eyes will be 
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = img[y:y+h, x:x+w]
        ## Determines what an eye is based on the eye haar cascade xml file
        eyes = eye_cascade.detectMultiScale(roi_gray)
        for (ex,ey,ew,eh) in eyes: 
            ##Draws green rectangles around the co-ordintates for eyes 
            cv2.rectangle(roi_color, (ex, ey),(ex+ew,ey+eh), (0,255,0),2)

    ##Displays camera        
    cv2.imshow('Image',img)
    ##Requires the user to press escape to exit the program
    k = cv2.waitKey(40) 
    if k == 27: 
            break

У кого-нибудь есть идеи, чтобы заставить программу распознавать движения головы или глаз?

1 Ответ

0 голосов
/ 04 марта 2020

Существует несколько способов обнаружения моргания глаз.

  • В области ROI глаз применяется определение белого цвета.
  • Нарисуйте контуры вокруг этой маски, если область контура выше порога, который вы можете интерпретировать как открытый глаз, когда происходит внезапное изменение области контура, то есть точка моргания. Этот метод потерпит неудачу, если вы переместитесь к камере и от нее.

Другим способом сделать это было бы определение ориентира лица с использованием библиотеки, такой как DLIB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...