Face Recognition Model
A CNN-based face recognition model built from scratch using Keras/TensorFlow.
People it recognizes
- Aafreen
- Syeda
- Taha
Model Architecture
- 4 Convolutional Blocks (Conv2D β BatchNorm β ReLU β MaxPool)
- Filters: 32 β 64 β 128 β 256
- Dense(256) β Dropout(0.5) β Dense(3, Softmax)
- Input size: 128Γ128Γ3
Training Details
- Dataset: ~71 images (22β26 per person)
- Augmentation: 7 variants per training image (flip, rotation, brightness, zoom)
- Split: 70% train / 15% val / 15% test
- Optimizer: Adam (lr=0.001)
- Loss: Categorical Crossentropy
- Callbacks: EarlyStopping, ReduceLROnPlateau, ModelCheckpoint
Files
| File | Description |
|---|---|
face_model.h5 |
Trained Keras model |
class_names.json |
Label index mapping |
training_curves.png |
Accuracy & loss plots |
confusion_matrix.png |
Evaluation results |
How to use
from tensorflow.keras.models import load_model
import json, numpy as np
model = load_model('face_model.h5')
with open('class_names.json') as f:
class_names = json.load(f)
# Predict on a 128x128 face crop
img = img / 255.0
img = np.expand_dims(img, axis=0)
pred = model.predict(img)
label = class_names[str(np.argmax(pred))]
conf = np.max(pred)
print(f"{label} ({conf*100:.1f}%)")
Project
Applied AI Final Project β COMP 6721 Concordia University, Winter 2026
- Downloads last month
- -