Python Real-Time Facial Recognition

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 2Provide 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.

Leave a Comment