Speed¶
py-feat's end-to-end detector throughput (frames/sec), tracked over
releases. Numbers come from scripts/bench_detectors.py --json, are
appended to the
py-feat/benchmarks
dataset by a scheduled run, and this page re-renders whenever new data
lands. Accuracy benchmarks are on the Accuracy page;
methodology and the per-run archive are at the bottom.
Live data from py-feat/benchmarks, updated each scheduled run.
Throughput by detector and hardware¶
End-to-end frames per second for the v1 Detectorv1 (img2pose and
retinaface face models) and v2 Detectorv2, on the shared test video.
Left panel is single-frame (batch 1); right is batch 16. Bars are grouped
by hardware — fps is only comparable within the same device.
Methodology¶
scripts/bench_detectors.py measures the detection + landmark + AU +
emotion + identity path on reproducible test fixtures from
feat/tests/data/:
single_face.mp4(72 frames, 1 face/frame)WolfgangLanger_Pexels.mp4(472 frames, 1 face/frame)multi_face.jpg× 16 = 80 faces
Three configurations are timed head-to-head: Detectorv1 with the
img2pose and retinaface face models (both au_model='xgb',
emotion_model='resmasknet', identity_model='arcface') and the v2
Detectorv2 multitask network. Swept axes: device × batch_size ×
num_workers. Each run is produced by bench_detectors.py --json (or
--markdown for the archived reports) and ingested into the
py-feat/benchmarks dataset above.
Run history¶
Milestone reports are archived in
docs/benchmarks/:
2026-05-14,
2026-05-04,
2026-05-03.