Loading...

Face Recognition with Python Step-by-Step Guide

By Sumit Pandey

27 Oct, 2025

Introduction

Face recognition technology identifies or verifies individuals based on facial features captured in images or video frames. It uses powerful machine learning models capable of extracting unique face encodings. In this blog, we will build a simple but functional face recognition system using Python, OpenCV, and the face_recognition library.

What You Will Build

By the end of this tutorial, you will have a webcam-based face recognition application that can detect known faces in real-time and label them directly on screen.

Prerequisites

  • Basic knowledge of Python
  • A working webcam
  • Python 3.8+ installed on your system

Step 1 — Create a Project Folder

Open your terminal or PowerShell and create a new folder:

mkdir face-recognition
cd face-recognition

Step 2 — Create a Folder for Face Images

Inside the project folder, create a new folder named faces and add clear front-facing images:

faces/
  sumit.jpg
  tony.jpg

Tip: Adding 2–3 different images per person can improve accuracy.

Step 3 — Install Required Libraries

Run the following commands to install the necessary dependencies:

pip install face_recognition
pip install opencv-python
pip install numpy

Windows Tip: If you face dlib/CMake errors, install CMake first:

pip install cmake

Step 4 — Write the Code

Create a file named face_recognition.py and paste the following code:

import face_recognition
import cv2
import numpy as np

# 1) Load known face images and create encodings
sumit_img = face_recognition.load_image_file("faces/sumit.jpg")
sumit_encode = face_recognition.face_encodings(sumit_img)[0]

tony_img = face_recognition.load_image_file("faces/tony.jpg")
tony_encode = face_recognition.face_encodings(tony_img)[0]

known_faces = [sumit_encode, tony_encode]
names = ["Sumit Pandey", "Tony Stark"]

# 2) Open webcam
video = cv2.VideoCapture(0)

while True:
    ret, frame = video.read()
    if not ret:
        break

    # 3) Convert BGR to RGB
    rgb_frame = frame[:, :, ::-1]

    # 4) Detect faces and get encodings
    face_locations = face_recognition.face_locations(rgb_frame)
    face_encodings = face_recognition.face_encodings(rgb_frame, face_locations)

    # 5) Compare detected faces with known faces
    for (top, right, bottom, left), encoding in zip(face_locations, face_encodings):
        matches = face_recognition.compare_faces(known_faces, encoding)
        name = "Unknown"

        # 6) Get best match
        face_distances = face_recognition.face_distance(known_faces, encoding)
        best_match_index = np.argmin(face_distances)

        if matches[best_match_index]:
            name = names[best_match_index]

        # 7) Draw box and label
        cv2.rectangle(frame, (left, top), (right, bottom), (0,255,0), 2)
        cv2.putText(frame, name, (left, top - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0,255,0), 2)

    # 8) Display the frame
    cv2.imshow("Face Recognition", frame)

    # 9) Exit
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

video.release()
cv2.destroyAllWindows()

Step-by-Step Code Explanation

  1. Import libraries: Handle webcam input, arrays, and face encodings.
  2. Load known faces: Convert each face into a 128-dimension encoding.
  3. Open webcam: Capture video frame-by-frame.
  4. Convert RGB: OpenCV is BGR-based; face_recognition expects RGB.
  5. Detect faces: Identify coordinates for faces inside each frame.
  6. Generate encodings: Create encoding vectors for detected faces.
  7. Compare: Match encodings with saved known faces.
  8. Draw bounding boxes: Highlight face area and display the name.
  9. Quit: Press ‘q’ to stop the webcam safely.

Step 5 — Run the Script

Execute the script in the terminal:

python face_recognition.py

Your webcam will open and display face labels in real-time.

Common Errors & Fixes

  • ModuleNotFoundError: Ensure dependencies are correctly installed.
  • dlib build errors (Windows): Install CMake or download prebuilt wheels.
  • No camera feed: Try using cv2.VideoCapture(1) if you have multiple cameras.
  • Unknown face label: Try adding more training images of the person.

Accuracy Improvement Tips

  • Use high-resolution images while capturing training data.
  • Add multiple face samples per person.
  • Use better lighting conditions.
  • Fine-tune detection frequency for performance.

Real-World Use Cases

  • Automated attendance systems
  • Classroom monitoring
  • Secure access authentication
  • Smart door locks
  • Fraud detection

Privacy & Security Considerations

Face recognition deals with sensitive biometric data. Always store metadata securely, use encryption, and follow data protection laws such as GDPR. Avoid tracking individuals without consent.

Conclusion

With just a few powerful libraries, Python makes face recognition extremely easy and accessible. This tutorial covered everything needed to build a working prototype — from installation to real-time detection. You can now extend this system into attendance tracking, authentication, or access control applications.

RECENT POSTS

From First Call to Project Launch — A BD’s Guide to Seamless Client Onboarding

From First Call to Project Launch — A BD’s Guide to Seamless Client Onboarding Chirag Verma 29/10/2025 In the IT industry, a client’s first impression can define the entire relationship. From the very first call to the moment a project officially begins, every step of the onboarding journey shapes how the client perceives your company’s […]

Understanding Event Loop & Async Behavior in Node.js

Understanding Event Loop & Async Behavior in Node.js Divya Pal 26 September, 2025 Node.js is known for its speed and efficiency, but the real magic powering it is the Event Loop. Since Node.js runs on a single thread, understanding how the Event Loop manages asynchronous tasks is essential to writing performant applications. In this blog, […]

REST vs GraphQL vs tRPC: Performance, Caching, and DX Compared with Real-World Scenarios

REST vs GraphQL vs tRPC: Performance, Caching, and DX Compared with Real-World Scenarios Shubham Anand 29-Oct-2025 API architecture selection—REST, GraphQL, and tRPC—directly impacts an application’s performance, caching, and developer experience (DX). In 2025, understanding how each performs in real-world scenarios is critical for teams seeking the right balance between reliability and agility. 1. REST: The […]

Collaborating in a Multi-Disciplinary Tech Team: Frontend and Beyond

Collaborating in a Multi-Disciplinary Tech Team: Frontend and Beyond Gaurav Garg 28-10-2025 Cross-functional collaboration is a force multiplier for product velocity and quality when teams align on shared goals, clear interfaces, and feedback loops across design, frontend, backend, DevOps, data, and QA. High-performing teams in 2025 emphasize structured rituals, shared artifacts (design systems, API contracts), […]

The Role of a BDE in Helping Businesses Modernize with Technology

The Role of a BDE in Helping Businesses Modernize with Technology Karan Kumar 28/10/2025 At Speqto Technologies, we’ve witnessed firsthand how technology has become the foundation of business success in 2025. But adopting new technologies isn’t just about staying trendy it’s about staying relevant, competitive, and efficient. That’s where a Business Development Executive (BDE) plays […]

POPULAR TAG

POPULAR CATEGORIES