Live
Pics Picker
Guests scan a QR code, upload a selfie, and get every event photo they appear in.
The context
At weddings and events, hundreds of photos are taken, and guests struggle to find their own. Pics Picker finds them by face.
What I built
- Event setup for organisers, with a unique code, link and QR code
- Selfie upload, matched photo gallery, and download one by one or as a ZIP file
- Face matching with ArcFace embeddings and cosine similarity, returning "Unknown Person" when nothing is close enough
- Face grouping across an event with DeepFace embeddings and DBSCAN clustering
- Green boxes around the matched person, red around others, plus a JSON report with confidence scores
- Photos fetched from a separate gallery server, embeddings cached, and selfies deleted after processing
The hard parts
Dark and low-quality photos
Event photos are often badly lit. Each image gets brighter, sharper and higher-contrast copies, detection runs at several sizes, and duplicate detections are removed.
When the fast model misses
Several detectors act as fallbacks, and a slower, more accurate model runs if the fast one finds no face.
Speed at event scale
Embeddings are cached, so the same photo is never processed twice.
What I'd improve next
- Compare every face in a group photo, since the web app currently checks only one
- Use a stricter matching rule, so people who weren't at the event get no results
- Store embeddings in a vector index such as FAISS for faster search