View on GitHub
Runnable reference for this extractor — inputs, parameters, output fields, embedding models, and copy-paste examples. Auto-generated from the live registry.
Tracking a specific person (person-of-interest / POI). This is the extractor to reach for when the goal is “find every clip a person / individual / face appears in” or “trace a person-of-interest across a video library.” Pass a reference face image as a
content query against the face embedding to run 1:N identification — see the Face Search recipe. (For what a person said, pair this with cross-lingual transcript search via the text extractor.)View extractor details at api.mixpeek.com/v1/collections/features/extractors/face_identity_extractor_v1 or fetch programmatically with
GET /v1/collections/features/extractors/{feature_extractor_id}.Pipeline Steps
- Filter Dataset (if collection_id provided)
- Filter to specified collection
- Content Type Routing
- Images: Direct to Step 3
- Videos: Frame extraction (sampling at
video_sampling_fps) → Step 3 - PDFs: Page rendering → Step 3
- Mixed: Branch by type, process separately, union results
- Face Detection (SCRFD)
- Detect all faces per image/frame/page
- Extract 5-point facial landmarks (eyes, nose, mouth)
- Filter by
min_face_sizeanddetection_threshold
- 5-Point Affine Face Alignment
- Warp face to canonical 112×112 template
- Ensures consistent embeddings
- ArcFace Embedding Generation
- arcface_r100 model
- 512D L2-normalized embeddings
- Cosine similarity for matching
- Quality Scoring (conditional: if
enable_quality_scoring=true)- Assess blur, size, landmark confidence
- Filter by
quality_thresholdif specified
- Video Deduplication (conditional: if
video_deduplication=trueAND video content)- Remove duplicate faces across frames
- Threshold-based similarity matching
- Track face timelines in video
- Output Validation
- Output
- Per-face documents with embeddings, bbox, landmarks, quality scores
When to Use
When NOT to Use
Supported Input Types
Supported formats:
- Image: JPEG, PNG, WebP, BMP
- Video: MP4, MOV, AVI, MKV, WebM
Input Schema
Provide one of the following inputs:Output Schema
Each detected face produces one document with the following fields:Parameters
Detection Parameters
Detection Models
Embedding Parameters
Embedding Models
Quality Parameters
Quality threshold guide:
null- Index all detected faces0.5- Moderate filtering (removes low quality)0.7- High quality only
Video Parameters
Output Parameters
Configuration Examples
Face Matching
Use cosine similarity to match faces:
Recommended threshold: 0.25-0.30 for same person verification
Performance & Costs
Video Processing
- Deduplication: Reduces 90-95% redundancy in video
- Sampling: 1 FPS recommended for most use cases
- Max length: 300 seconds (extraction only)
Vector Index
Pipeline Overview
- SCRFD Detection - Bounding boxes + 5 landmarks
- 5-Point Affine Alignment - 112x112 canonical face
- ArcFace Embedding - 512-d L2-normalized vector
- Quality Scoring (optional) - Filter low-quality faces
Limitations
- Face only: Does not identify age, gender, or expressions
- Pose sensitivity: Extreme angles may reduce accuracy
- Occlusion: Masks, glasses, hair may affect detection
- Resolution: Minimum 20px face size, 40px+ recommended
- Lighting: Poor lighting reduces quality scores
- Video length: Maximum 300 seconds per video
Search by face
Once faces are indexed, search them with a reference image (1:N identification) using afeature_search stage — pass the reference face as a content query. The feature URI is mixpeek://face_identity_extractor@v1/insightface__arcface — the output name is the model (insightface__arcface), not the internal vector-index name (face_identity_extractor_v1_embedding). If unsure, GET /v1/collections/features/extractors/face_identity_extractor_v1 returns the exact feature_uri:
reference_face_url in the retriever’s input_schema, then execute with {"inputs": {"reference_face_url": "https://.../person.jpg"}} to find every document featuring that person.
Build & maintain a named identity list
The 1:N search above matches one reference face at a time. To track a roster of known people — a watchlist that puts a name on faces found in your videos, that you add to and refine over time — build a reference collection of labeled faces and let new footage auto-identify against it. That whole lifecycle — enroll reference faces, label them with names, auto-label people in incoming video, review the “unknown” faces, and promote a newly-confirmed face back into the reference set so the list self-improves — is the Bootstrap a Labeled Dataset tutorial (see its People Identification / Face Recognition System path). Adding, correcting, or removing a person is just editing a document in the reference collection; the next video ingest identifies against the updated list.Rule of thumb: use 1:N search (above) when you already have the one photo
you’re chasing; use the reference-collection roster when you’re maintaining
an ongoing list of named identities to match every new video against.
Related
- Feature Search stage — query face embeddings
- Bootstrap a Labeled Dataset — build & maintain a named identity roster that auto-labels new video
- Video Understanding — faces alongside visual + transcript search
- Feature Extractors Overview
- Image Extractor
- Multimodal Extractor

