Complete guide to configuring FaceVerify.
FaceVerify supports three configuration methods (in order of precedence):
from faceverify import FaceVerifier
from faceverify.config import VerifierConfig
config = VerifierConfig(
detector_backend="opencv", # Fast detection
embedding_model="deepface", # Uses DeepFace with Facenet512
threshold=0.65, # Match threshold
)
verifier = FaceVerifier(config)
[!NOTE]
VerificationConfigis an alias forVerifierConfig. Both work identically.
export FACEVERIFY_DETECTOR=opencv
export FACEVERIFY_THRESHOLD=0.65
# config.yaml
detector:
backend: opencv
confidence_threshold: 0.9
embedding:
model: deepface
decision:
threshold: 0.65
config = VerifierConfig.from_yaml("config.yaml")
config = VerifierConfig(detector_backend="opencv")
pip install mtcnnconfig = VerifierConfig(detector_backend="mtcnn")
pip install retinafaceconfig = VerifierConfig(detector_backend="retinaface")
pip install mediapipeconfig = VerifierConfig(detector_backend="mediapipe")
[!TIP] Use
opencvfor speed,retinafacefor accuracy.
config = VerifierConfig(embedding_model="deepface")
[!IMPORTANT] The embedding model uses DeepFace library with Facenet512. First run downloads model weights (~90MB).
config = VerifierConfig(embedding_model="facenet")
config = VerifierConfig(similarity_metric="cosine")
config = VerifierConfig(similarity_metric="euclidean")
config = VerifierConfig(similarity_metric="manhattan")
| Threshold | Effect |
|---|---|
| Higher (0.7+) | Stricter matching, fewer false positives |
| Lower (0.5-) | Looser matching, fewer false negatives |
| Use Case | Recommended Threshold |
|---|---|
| High security | 0.75 - 0.80 |
| Standard verification | 0.60 - 0.70 |
| Loose matching | 0.50 - 0.55 |
[!IMPORTANT] Always test with your specific dataset to find optimal threshold.
# At initialization
config = VerifierConfig(threshold=0.70)
# Or modify later
verifier.threshold = 0.70
config = VerifierConfig(enable_gpu=True)
[!NOTE] GPU requires CUDA-compatible TensorFlow installation.
config = VerifierConfig(batch_size=32)
Larger batch sizes improve throughput but use more memory.
```python from faceverify import FaceVerifier from faceverify.config import VerifierConfig
config = VerifierConfig( # Detection detector_backend=”retinaface”, detector_confidence=0.95,
# Embedding
embedding_model="deepface",
normalize_embeddings=True,
# Similarity
similarity_metric="cosine",
# Decision
threshold=0.70,
# Performance
enable_gpu=True,
batch_size=16, )
verifier = FaceVerifier(config)