A compact, easy-to-follow repository for experimenting with face detection and face recognition using classical computer vision and (optionally) deep learning approaches. This project collects utilities, example notebooks/scripts, and training/evaluation guidance so you can go from images ➝ working face recognition pipeline quickly.
✅ Detect faces in images and video (Webcam / file) ✅ Extract face embeddings and perform recognition/verification ✅ Train / evaluate a simple recognition model or use pretrained embeddings ✅ Example scripts and notebooks included for quick experimentation
- 🔎 Project overview
- ✨ Features
- 🚀 Quick demo
- 📦 Requirements
- ⚙️ Installation
- 📂 Repository layout
- 🖼️ Dataset format / preparing your data
- 🏋️ Training (optional)
- 🖥️ Inference / Usage
- 📊 Model evaluation
- 🛠️ Tips & troubleshooting
- 🤝 Contributing
- 🙏 Acknowledgements / References
- 📧 Contact
This repository aims to be a hands-on toolkit for learning and prototyping face recognition systems.
It demonstrates a typical pipeline:
- 👀 Face detection (OpenCV Haar/Cascade, DNN, or MTCNN)
- ✨ Alignment & preprocessing
- 🧬 Feature extraction (classical descriptors or deep embeddings)
- 🎯 Classification / similarity matching (SVM, KNN, cosine similarity, or neural nets)
- 🖼️ Face detection scripts (images & webcam)
- ⚡ Preprocessing & alignment helpers
- 🔗 Embedding extraction (using
face_recognition, TensorFlow, or PyTorch models) - 🤖 Simple recognition with KNN / SVM / cosine similarity
- 📓 Example notebooks & configs
- 📊 Evaluation utilities (accuracy, confusion matrix)
# 1. Detect faces in an image
python scripts/detect_faces.py --input examples/group_photo.jpg --output examples/group_photo_out.jpg
# 2. Extract embeddings
python scripts/extract_embeddings.py --dataset data/images --output data/embeddings.pkl
# 3. Train recognizer
python scripts/train_recognizer.py --embeddings data/embeddings.pkl --model models/recognizer.pkl
# 4. Recognize face from image
python scripts/recognize_image.py --image examples/person1.jpg --model models/recognizer.pkl-
🐍 Python 3.8+
-
📚 Libraries:
numpy,scikit-learn,pandasopencv-pythonface_recognition(optional, uses dlib)dlib(requires CMake + compiler)tensorflowortorch(if deep models included)imutils,matplotlib
💡 GPU recommended for training deep models but not required.
# 1. Clone repo
git clone https://github.com/GRUMPY-TUCKER/Face_Recognition_ComputerVision.git
cd Face_Recognition_ComputerVision
# 2. Create virtual environment
python -m venv venv
source venv/bin/activate # Mac / Linux
venv\Scripts\activate # Windows
# 3. Install dependencies
pip install -r requirements.txtscripts/
├─ detect_faces.py
├─ extract_embeddings.py
├─ train_recognizer.py
├─ recognize_image.py
└─ recognize_video.py
notebooks/
└─ demo.ipynb
data/
├─ images/ # training images
└─ test/ # validation images
models/
├─ embeddings/
└─ recognizer.pkl
utils/
├─ preprocessing.py
└─ visualization.py
examples/
└─ sample images
requirements.txt
README.md
data/images/
├─ person_1/
│ ├─ img001.jpg
│ └─ img002.jpg
├─ person_2/
│ ├─ img001.jpg
│ └─ img002.jpg
✅ Tips:
- Collect multiple images per person with varied lighting, poses, backgrounds.
- Ensure face detector works well before training.
- For large datasets, maintain a CSV/JSON index mapping.
# Step 1: Extract embeddings
python scripts/extract_embeddings.py --dataset data/images --detector hog --output data/embeddings.pkl
# Step 2: Train classifier
python scripts/train_recognizer.py --embeddings data/embeddings.pkl --model models/recognizer.pkl --method svm
# Step 3: Evaluate model
python scripts/evaluate.py --model models/recognizer.pkl --test data/test# Single image recognition
python scripts/recognize_image.py --image examples/test.jpg --model models/recognizer.pkl
# Realtime recognition (webcam)
python scripts/recognize_video.py --model models/recognizer.pkl --source 0- ✅ Accuracy
- ✅ Precision / Recall / F1
- ✅ ROC / AUC
- ✅ Confusion matrix
- Fork the repo 🍴
- Create a new branch 🌱
- Add your changes + tests ✅
- Submit a pull request 🔄