Skip to content
imaged

Face detection

SCRFD 10GF BNKPS

InsightFace SCRFD with 5-point keypoints, the accuracy-pinned variant.

MIT
Explore model

About this model

SCRFD 10GF returns face boxes plus 5 keypoints: left eye, right eye, nose, left mouth, right mouth. The build is the InsightFace fp32 ONNX, around 17 MB, with dynamic input. The keypoints align cleanly into a 112x112 crop for downstream face models.

On M1 Max with CoreML, warm runs land at 49 ms, around 20 fps. Pair with the 500MF variant when you need live-feed speed and a smaller asset.

What you can build

  • Auto-frame faces in a portrait camera or video call.
  • Drive a face filter app with stable 5-point landmarks.
  • Crop and align faces before downstream attribute models.
  • Detect faces in user uploads for an AR sticker pipeline.

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 green box and red 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

355.4 ms

Warm inference

Catalog reference · variant unspecifiedCold start (ms): 358.49

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

48.6 ms

Warm inference

Catalog reference · variant unspecifiedCold start (ms): 204.03

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

22.5 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_10g_bnkps.onnx");
config.set("face_detection.inference.provider", "coreml");

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

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

auto result = std::get<imaged::SDK::DetectionResult>(family.run(&image));
for (const auto& face : result.detections) {
    // face.boundingBox, face.score, face.keypoints (5 points)
}