What code should I add here to print the statement print("Hello") when the unknown person is seen, for example
import face_recognition
import cv2
import numpy as np
video_capture = cv2.VideoCapture(0)
admin_image = face_recognition.load_image_file("admin.jpg")
admin_face_encoding = face_recognition.face_encodings(admin_image)[0]
known_face_encodings = [
admin_face_encoding,
]
known_face_names = [
" Admin",
]
face_locations = []
face_encodings = []
face_names = []
process_this_frame = False
while True:
ret, frame = video_capture.read()
if process_this_frame:
small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25)
rgb_small_frame = small_frame[:, :, ::-1]
face_locations = face_recognition.face_locations(rgb_small_frame)
face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations)
face_names = []
for face_encoding in face_encodings:
matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
name = "Unknown"
face_distances = face_recognition.face_distance(known_face_encodings, face_encoding)
best_match_index = np.argmin(face_distances)
if matches[best_match_index]:
name = known_face_names[best_match_index]
face_names.append(name)
process_this_frame = not process_this_frame
for (top, right, bottom, left), name in zip(face_locations, face_names):
top *= 4
right *= 4
bottom *= 4
left *= 4
cv2.rectangle(frame, (left, top), (right, bottom), (0, 225, 0), 2)
cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 225 , 0), cv2.FILLED)
font = cv2.FONT_HERSHEY_DUPLEX
cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (0, 0, 0), 1)
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
The problem is that wherever you write an order for unknown people, the order is executed continuously and for all people, whether they are anonymous or admin! For example, take the following code: print() For after seeing unknown people, as soon as anyone is seen, even the admin starts executing the conditional order .
HELP ME.