YuNet face detection (OpenCV Zoo, dynamic input)
Browser-ready import artifacts for face-detection, produced by SkillSafe's
reproducible converter (models/ in skillsafe.ai)
from a pinned upstream source. Every byte here is derivable from that source plus
the recipe below; nothing was edited by hand.
Provenance
| Upstream | https://media.githubusercontent.com/media/opencv/opencv_zoo/47534e27c9851bb1128ccc0102f1145e27f23f98/models/face_detection_yunet/face_detection_yunet_2026may.onnx |
| Upstream SHA-256 / commit | 47534e27c9851bb1128ccc0102f1145e27f23f98 |
| Recipe | recipes/yunet.yaml — sha256 cf27be4dcf7f3a280f4feaf9ce4a31ee2d1a0c87cbfb9697da99032abc7cae2d |
| Toolchain | Python 3.12.13, torch 2.10.0, onnx 1.23.0, onnxruntime 1.30.0 on Darwin 25.6.0 arm64 |
| Converted | 2026-09-22T18:56:07+00:00 |
Files
| file | class | size | SHA-256 |
|---|---|---|---|
face_detection_yunet_2026may.onnx |
registry | 0.22 MB | ebafce4e3c118d6554634be5c27ab333b4c047a9a8c3faf1d7cf93101c22f0f0 |
registry files are parameter files served from models.skillsafe.ai once vetted;
bundle files ship inside an app; registry-shared is a runtime library reused by
every model of the same architecture.
Verification
Imported as published upstream (no conversion). Each file is pinned by SHA-256 to its source; every ONNX file passed onnx.checker and a CPU smoke run under onnxruntime with zero-filled inputs at the declared shapes:
| file | inputs | outputs | ms |
|---|---|---|---|
face_detection_yunet_2026may.onnx |
input[1, 3, 320, 320] | cls_8[1, 1600, 1], cls_16[1, 400, 1], cls_32[1, 100, 1], obj_8[1, 1600, 1], obj_16[1, 400, 1], obj_32[1, 100, 1], bbox_8[1, 1600, 4], bbox_16[1, 400, 4], bbox_32[1, 100, 4], kps_8[1, 1600, 10], kps_16[1, 400, 10], kps_32[1, 100, 10] | 1.5 |
Use in the browser
import * as ort from "onnxruntime-web";
const session = await ort.InferenceSession.create("https://huggingface.co/skillsafe-ai/yunet/resolve/main/face_detection_yunet_2026may.onnx", { executionProviders: ["webgpu", "wasm"] });
Contract (face_detection_yunet_2026may.onnx): input input float32 [1, 3, 'height', 'width'] → output cls_8 float32 [1, 'anchors', 1], cls_16 float32 [1, 'anchors', 1], cls_32 float32 [1, 'anchors', 1], obj_8 float32 [1, 'anchors', 1], obj_16 float32 [1, 'anchors', 1], obj_32 float32 [1, 'anchors', 1], bbox_8 float32 [1, 'anchors', 4], bbox_16 float32 [1, 'anchors', 4], bbox_32 float32 [1, 'anchors', 4], kps_8 float32 [1, 'anchors', 10], kps_16 float32 [1, 'anchors', 10], kps_32 float32 [1, 'anchors', 10]. Opset 11.
Licence and attribution
YuNet: Copyright (c) 2020 Shiqi Yu. MIT License. Distributed via OpenCV Zoo (Apache-2.0). https://github.com/opencv/opencv_zoo/tree/main/models/face_detection_yunet
Licence: MIT — notice: https://github.com/opencv/opencv_zoo/blob/47534e27c9851bb1128ccc0102f1145e27f23f98/models/face_detection_yunet/LICENSE. The conversion recipe and this model card are part of the SkillSafe repository and carry its licence; the weights remain under the upstream licence above.
The full manifest.json in this repo records the recipe, sources, toolchain
(including the uv.lock hash) and per-file verification numbers.