martinbadrous/Facial-Recognition-Verification
1
๐ CNN โ Facial Expression Recognition
CNN-based facial expression classifier trained to recognize 7 emotion categories from face images with a clean, reproducible pipeline.
๐ Model Summary
๐ง Emotion Classes
๐ How to Use
import torch
import torch.nn.functional as F
from torchvision import transforms
from PIL import Image
# Load model
model = torch.jit.load("model.pt", map_location="cpu")
model.eval()
# Preprocessing
transform = transforms.Compose([
transforms.Grayscale(),
transforms.Resize((48, 48)),
transforms.ToTensor(),
transforms.Normalize([0.5], [0.5]),
])
EMOTIONS = ["Angry", "Disgust", "Fear", "Happy", "Neutral", "Sad", "Surprise"]
# Inference
image = Image.open("face.jpg")
tensor = transform(image).unsqueeze(0)
with torch.no_grad():
probs = F.softmax(model(tensor), dim=1)[0]
predicted = EMOTIONS[probs.argmax()]
confidence = probs.max().item()
print(f"Prediction: {predicted} ({confidence:.0%})")๐๏ธ Training Data
- Base dataset: FER-2013 (Facial Expression Recognition)
- Input format: 48ร48 grayscale face images
- Classes: 7 universal emotion categories
โ ๏ธ Limitations
- Optimized for frontal face images
- Performance may degrade with partial occlusion, extreme lighting, or non-frontal poses
- Not intended for surveillance or identity recognition โ expression classification only
๐ Related Resources
- ๐ค Live Demo Space
- ๐ป GitHub Repository
๐ค Author
Martin Badrous โ Computer Vision & Deep Learning Engineer
  
