The difficult challenge of real-time face identification necessitates computer vision and machine learning knowledge. But you may create a face recognition system with several Python packages and tools.
OpenCV is a well-liked Python face recognition library (Open Source Computer Vision Library). The face detection and identification algorithms offered by OpenCV, a free and open-source library, cover a wide range of computer vision applications. Here is an illustration of real-time facial recognition with OpenCV
Steps For Python Real-Time Facial Recognition
Open any IDE you have.
Setup the Environment
Step 1: Install Python. What additional configuration is needed to run the code for capturing frames in a webcam?
Step 2: Provide instructions for installing OpenCV and face recognition libraries.
pip install opencv-python
pip install opencv-python
Step 3: Install the face recognition library.
1. How do I access the OpenCV GitHub repository to download the Haar Cascade classifier?
2. Are there any specific webcam or video file setup requirements?
3. Is any additional configuration needed to run the code for capturing frames in a webcam? pip install face_recognition
pip install face_recognition
Step 4: Download face detection classifiers
You can download the Haar Cascade classifier from the OpenCV GitHub repository at https://github.com/opencv/opencv/tree/master/data/haarcascades. Save the haarcascade_frontalface_default.xml file to your working directory.
Step 5: Setup webcam or video file
This code is for capturing frame in webcam.
import cv2
# Open the default camera
cap = cv2.VideoCapture(0)
# Capture a frame from the camera
ret, frame = cap.read()
# Release the camera
cap.release()
To Capture frame from video file.
import cv2
# Open the video file
cap = cv2.VideoCapture('video.mp4')
# Capture a frame from the video
ret, frame = cap.read()
# Release the video file
cap.release()
Source Code:-
import cv2
# Load the trained classifier for face detection
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# Load the trained model for face recognition
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.read('trained_model.yml')
# Open the webcam
cap = cv2.VideoCapture(0)
while True:
# Capture frame-by-frame
ret, frame = cap.read()
# Convert the frame to grayscale
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Detect faces in the grayscale frame
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5)
# Loop over each face and recognize it
for (x, y, w, h) in faces:
# Extract the face ROI (region of interest)
face_roi = gray[y:y+h, x:x+w]
# Recognize the face
label, confidence = recognizer.predict(face_roi)
# Draw a rectangle around the face and label it with the name of the recognized person
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.putText(frame, f'Person {label}', (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)
# Display the resulting frame
cv2.imshow('Face Recognition', frame)
# Exit the loop if the 'q' key is pressed
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Release the capture and close all windows
cap.release()
cv2.destroyAllWindows()
1. Simplify the technical terms and concepts used in the text to make it more accessible to readers who may not have a strong background in computer vision or facial recognition technology.
2. Provide a brief overview of facial recognition technology’s potential privacy and security implications, and offer suggestions for mitigating these risks.
3. Include a summary or conclusion at the end of the text that summarizes the key takeaways and implications of the example and provides readers with additional resources for learning more about facial recognition technology. n this example, we first use the ‘CascadeClassifier’ class from OpenCV to load the trained face detection classifier. Using the `LBPHFaceRecognizer_create` class from OpenCV, we then load the face recognition model that has been trained. Using the OpenCV VideoCapture class, we open the webcam and launch a loop to capture webcam frames. We transform each frame to grayscale, then use the face detection classifier to identify faces. The face ROI is extracted, and the face recognition model is used to identify each observed face. The name of the individual whose face has been recognized is then written inside a rectangle drawn around it.
The facial recognition model you trained on the dataset of labelled face photos is assumed to have been trained by this example. The trained model.yml file is used to load the trained model. Although training a facial recognition model is outside the purview of this example, numerous guides and resources online can assist you in getting started.