Face Detection
Face detection is the first critical step in the Visage pipeline. This page explains how face detection works and the various backends available.
Overview
Face detection identifies the location of faces within an image, returning bounding box coordinates (x, y, width, height) for each detected face.
Available Detection Backends
Visage supports multiple detection backends through DeepFace:
OpenCV (Default)
Fast and lightweight Haar Cascade classifier.
Pros:
- Very fast (30-60 FPS)
- Low resource usage
- No additional dependencies
Cons:
- Less accurate with challenging angles
- May produce false positives
SSD (Single Shot Detector)
Deep learning-based detector with good balance of speed and accuracy.
Pros:
- Better accuracy than OpenCV
- Still relatively fast
- Good with various angles
Cons:
- Requires more computational resources
MTCNN (Multi-task CNN)
Multi-stage deep learning detector that also provides facial landmarks.
Pros:
- High accuracy
- Provides facial keypoints
- Good with various poses
Cons:
- Slower than OpenCV/SSD
- Higher resource usage
RetinaFace
State-of-the-art face detector with excellent accuracy.
Pros:
- Best accuracy
- Robust to occlusions
- Works with difficult lighting
Cons:
- Slowest option
- Highest resource requirements
Configuration
Set the detection backend in your .env file:
DETECTION_BACKEND=opencv # or ssd, mtcnn, retinaface
Performance Comparison
| Backend | Speed | Accuracy | Resource Usage |
|---|---|---|---|
| OpenCV | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | Low |
| SSD | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Medium |
| MTCNN | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Medium-High |
| RetinaFace | ⭐⭐ | ⭐⭐⭐⭐⭐ | High |
Next Steps
- Embeddings - Learn about face embeddings
- API Reference - Explore the API