LFW Face Verification Pairs
Web face photos in same-or-different pairs, the small classic that fixed verification testing on unconstrained faces.
Why Does This Exist?
Face recognition in the wild meets pose, light and age shifts. A shared pair test with fixed rules lets methods compare fairly. LFW gathered web faces as same-or-different pairs so verification could be scored by pair accuracy rather than closed-set guessing.
This page covers pair contract and appropriate use. Embedding training is in FaceNet.
Think of It Like This
A bouncer with photo pairs
A bouncer sees two photos and answers one question: same person or not. No names, no guest list, just the pair.
LFW is that shift. Thousands of pairs, one yes-or-no each.
How It Actually Works
Purpose is unconstrained face verification. Input is a photo pair, output is same or different via a distance threshold on embeddings. Appropriate use is light verification checks and teaching. Small size and near-saturation limit it, so confirm on larger harder sets before claims.
Toy pair walkthrough
Take 10 pairs where the model calls 8 right. Accuracy is . Splitting errors into false accepts versus false rejects then prices security against convenience.
Code
Pair accuracy with error split.
def pair_scores(right: int, total: int) -> float: return round(right / max(total, 1), 3)
print(pair_scores(8, 10))# -> 0.8Eight of ten pairs right gives 0.8.
Watch Out For
Claiming robustness from saturated pairs
High LFW scores coexist with weak profile, mask and age behavior. The symptom is a demo pass with live failures. Fix it by testing harder poses and larger sets alongside.
The Quick Version
- LFW maps face photo pairs to same-or-different answers for verification.
- Input is a pair, output is one binary verdict via embedding distance.
- Toy 8 of 10 right gives 0.8 pair accuracy.
- Use it for light checks and teaching before harder sets.
- Confirm on larger varied faces because it saturates.