How to detect face from 5 meters ?
Hello can somebody help me please
I try to run face detection
And face detection working only in red area on the picture.
What can i change in code for detecting face in doors ?? there is 5 meter
This is code :
import face_recognition import cv2 import numpy as np import os # This is a demo of running face recognition on live video from your webcam. It's a little more complicated # than the other example, but it includes some basic performance tweaks to make things run a lot faster: # 1. Process each video frame at 1/4 resolution (though still display it at full resolution) # 2. Only detect faces in every other frame of video. # PLEASE NOTE: This example requires OpenCV (the `cv2` library) to be installed only to read from your webcam. # OpenCV is *not* required to use the face_recognition library. It's only required if you want to run this # specific demo. If you have trouble installing it, try any of the other demos that don't require it instead. # rtsp streaming URL video_addr = 'rtsp://xxx:[email protected]:1222/cam/realmonitor?channel=1&subtype=02' # Get a reference to webcam #0 (the default one) video_capture = cv2.VideoCapture("rtsp://xxx:[email protected]:1222/cam/realmonitor?channel=1&subtype=02") #video_capture = cv2.VideoCapture(0) # Known face pictures directory #known_face_dir = './known_face/' known_face_dir = '/home/rafal/face/known_face/' files = os.listdir(known_face_dir) print(files) #for root, dirs, files in os.walk(known_face_dir, topdown=False): # print(dirs) # print(files) # Loading all the known face pictures known_face_encodings = [] known_face_names = [] face_encodings_handle = locals() for file_name in files: face_encodings_handle[file_name] = face_recognition.face_encodings(face_recognition.load_image_file(known_face_dir + file_name))[0] known_face_encodings.append(face_encodings_handle[file_name]) known_face_names.append(file_name.rsplit('.', 1)[0]) # Load a sample picture and learn how to recognize it. #obama_image = face_recognition.load_image_file(known_face_dir + "/zhzl.jpg") #obama_face_encoding = face_recognition.face_encodings(obama_image)[0] # Load a second sample picture and learn how to recognize it. #biden_image = face_recognition.load_image_file(known_face_dir + "/biden.jpg") #biden_face_encoding = face_recognition.face_encodings(biden_image)[0] # Create arrays of known face encodings and their names #known_face_encodings = [ # obama_face_encoding, # biden_face_encoding #] #known_face_names = [ # "Barack Obama", # "Joe Biden" #] # Initialize some variables face_locations = [] face_encodings = [] face_names = [] # Process video frame frequency process_frame_freq = 4 process_this_frame = process_frame_freq while True: # Grab a single frame of video ret, frame = video_capture.read() # Resize frame of video to 1/4 size for faster face recognition processing small_frame = cv2.resize(frame, (0, 0), fx=0.50, fy=0.50) # Convert the image from BGR color (which OpenCV uses) to RGB color (which face_recognition uses) rgb_small_frame = small_frame[:, :, ::-1] # Only process every other frame of video to save time if process_this_frame == process_frame_freq: # Find all the faces and face encodings in the current frame of video 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: # See if the face is a match for the known face(s) matches = face_recognition.compare_faces(known_face_encodings, face_encoding) name = "Unknown" # # If a match was found in known_face_encodings, just use the first one. # if True in matches: # first_match_index = matches.index(True) # name = known_face_names[first_match_index] # Or instead, use the known face with the smallest ...
add a comment