如何创建面部识别超时系统

时间:2020-11-06 23:18:25

标签: python face-recognition

当我尝试创建一个超时系统时,如果在10秒钟内未检测到人脸,它将锁定我的计算机,它将无法正常工作。我想发生的是,如果网络摄像头被阻塞或无法检测到人脸,它将触发一个if语句,该语句将使用子进程来锁定我的计算机。对此还很陌生,因此将不胜感激!

import sys, time, face_recognition, cv2, numpy as np, subprocess
faceconfirm = 0
video_capture = cv2.VideoCapture(0)
taylor_image = face_recognition.load_image_file("/Users/Myfullname/Desktop/Faces/taylorface.jpg")
taylor_face_encoding = face_recognition.face_encodings(taylor_image)[0]
known_face_encodings = [
    taylor_face_encoding,
]
known_face_names = [
    "Taylor",
]
while True:
    ret, frame = video_capture.read()
    rgb_frame = frame[:, :, ::-1]
    face_locations = face_recognition.face_locations(rgb_frame)
    face_encodings = face_recognition.face_encodings(rgb_frame, face_locations)
    for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
        matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
        timeout = 0
        correct = 0
        Confirm = False
        ctdtimeout = -100
        continue1 = 1
        while continue1 < 10:
            if continue1 == 1:
                time.sleep(1)
                timeout+=1
            if timeout == 5:
                print("Timeout")
                exit()
            if matches == face_recognition.compare_faces(taylor_face_encoding, known_face_encodings):
                print("Confirmed")
                Confirm = True
                continue1 = 100
            else:
                print("Negative")
                correct-=1
                if correct <= -3:
                    print("Userdisallowed")
                    subprocess.call('/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend',shell=True)
                    exit()
            if Confirm == True:
                exit()
            if Confirm == False:
                subprocess.call('/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend',shell=True)
                exit()
        face_distances = face_recognition.face_distance(known_face_encodings, face_encoding)
        best_match_index = np.argmin(face_distances)

0 个答案:

没有答案