Visual retrieval / October 2025

Helping people find themselves in hours of event footage.

Upload a selfie, search indexed event videos, and jump to the moments where that person appears.

Core stack

ArcFaceQdrantAWSNext.jsPostgreSQL

90%

less processing time

01 / Where it started

The problem I was trying to solve.

After an event, finding every moment you appear in can mean scrubbing through hours of video. Faces also change with angle, lighting, occlusion, and camera quality, so a simple frame-by-frame lookup was not enough.

02 / What I built

My approach.

I split the work into two pipelines. Videos are indexed ahead of time with face detection, tracking, 512-dimensional ArcFace embeddings, and Qdrant. At search time, a selfie becomes a query vector and matching frames are grouped into useful video segments.

03 / Architecture

How the pieces fit together.

System map / 01
Node 01 / 04Signal active ●
Operation / 01

Index

Upload and process event videos

Auto cycle engaged
ArcFaceQdrantAWSNext.jsPostgreSQL

04 / What changed

What came out of it.

  1. 01

    Reduced video processing time by 90%

  2. 02

    Returned identity matches in under a second

  3. 03

    Added tap-to-select faces, progress states, and buffered timestamp controls

What I learned

The model was only part of the project. A two-second temporal grouping gap, clearer progress feedback, and easy timestamp seeking made the search results much more useful in practice.