Skip to content
imaged

Face detection

SCRFD 500MF BNKPS

The live-feed SCRFD variant, 2.4 MB and 21 fps on CPU.

MIT
Explore model

About this model

SCRFD 500MF is the lightweight sibling of the 10GF accuracy-pinned variant. Same family, same 5-point keypoint output, fixed 640x640 input, around 2.4 MB on disk. Use it when you need a live face detector inside a small app bundle.

On M1 Max CPU, warm runs land at 48 ms, about 21 fps. CoreML reaches 24 ms warm but pays a 799 ms cold start; pre-warm at app launch if you need both.

What you can build

  • Embed a fast face detector in a 3 MB on-device asset budget.
  • Track faces live in a camera viewfinder at 20+ fps.
  • Drive an AR sticker overlay on phones without GPU access.
  • Crop and align faces from video frames for downstream models.

Variants & downloads

Choose the build for your app

Model files are being prepared.

Explore the model’s examples, source links, and integration notes while download variants are added.

Example inference

Input
A frontal portrait of Albert Einstein from Wikimedia Commons.
Output
The Einstein portrait with a face box and 5-point landmarks.

Performance

Results depend on the device, runtime, and test conditions. Each measurement keeps its own context.

M1 Max, macOS 15, ONNX Runtime 1.17

See original catalog hardware notes · CPU

48.4 ms

Warm inference

Catalog reference · variant unspecifiedCold start (ms): 50.37

Reference result from the existing catalog; conversion variant and measurement date were not recorded.

M1 Max, macOS 15, ONNX Runtime 1.17

See original catalog hardware notes · CoreML

23.9 ms

Warm inference

Catalog reference · variant unspecifiedCold start (ms): 799.35

Reference result from the existing catalog; conversion variant and measurement date were not recorded.

RTX 2060, Ubuntu 24.04, ONNX Runtime 1.24.3

See original catalog hardware notes · CUDA

10.3 ms

Warm inference

Catalog reference · variant unspecified

Reference result from the existing catalog; conversion variant and measurement date were not recorded.

Integration examples

Vision SDK integration

cpp

#include "imaged/sdk.hpp"
#include "imaged/families/face_detection/face_detection_family.hpp"

imaged::SDK::AI ai;
auto& config = ai.getOptions();
config.set("face_detection.model", "weights/scrfd_500m_bnkps_640.onnx");
config.set("face_detection.inference.provider", "cpu");
config.set("face_detection.inputSize", 640);

imaged::SDK::FaceDetectionFamily family;
family.load(config);

imaged::SDK::Image image;
image.load("frame.jpg");

auto result = std::get<imaged::SDK::DetectionResult>(family.run(&image));