Views
No views yet
onnxruntime (CPU or CUDA) with no PyTorch dependency
at inference time..ckpt and
this project's inference worker runs on onnxruntime.| Name | Shape | Notes | |
|---|---|---|---|
| Input | input | (batch, 3, 112, 112) | ArcFace-aligned BGR face, normalized (x - 127.5) / 127.5 |
| Output | embedding | (batch, 512) | Face feature; L2-normalize before cosine comparison |
FaceRecognizerSF.alignCrop), keep channels in BGR,
then scale with (x - 127.5) / 127.5.1import cv2, numpy as np, onnxruntime as ort
2
3sess = ort.InferenceSession("adaface_ir50_ms1mv2.onnx", providers=["CPUExecutionProvider"])
4
5def embed(aligned_bgr_112: np.ndarray) -> np.ndarray:
6 x = (aligned_bgr_112.astype(np.float32) - 127.5) / 127.5 # (112,112,3) BGR
7 x = np.transpose(x, (2, 0, 1))[None] # (1,3,112,112)
8 e = sess.run(["embedding"], {"input": x})[0][0] # (512,)
9 return e / np.linalg.norm(e)
10
11# cosine similarity
12# sim = float(embed(face_a) @ embed(face_b))onnx.checker passes.(1, 512); embedding L2 norm ≈ 1.0.1@inproceedings{kim2022adaface,
2 title = {AdaFace: Quality Adaptive Margin for Face Recognition},
3 author = {Kim, Minchul and Jain, Anil K. and Liu, Xiaoming},
4 booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
5 year = {2022}
6}