ENGINE

Face Match Engine

Une reconnaissance faciale prête à intégrer à votre stack. Le Cams Face Match Engine transforme une photo en identité, avec un pipeline complet de détection, d'alignement, d'embedding et de comparaison reposant sur ArcFace ONNX et une anti-usurpation passive — le tout derrière trois endpoints HTTPS simples. Envoyez une image de visage ou un embedding pré-calculé.

Présentation

Enrôlement de visages, vérification 1:1 et identification 1:N côté serveur via REST — avec embeddings ArcFace, détection SCRFD, alignement et anti-usurpation intégrés.

Un service autonome de reconnaissance faciale exposant l'enrôlement, la vérification (1:1) et l'identification (1:N) sur /api/biometric/v1/face/. Chaque image passe par la détection SCRFD, un alignement sur 5 points par transformation de similarité, une détection d'attaque par présentation de classe MiniFASNet et un embedding ArcFace (insightface w600k_r50) en 512 dimensions, puis une similarité cosinus exacte notée de 0 à 100. Les galeries sont multi-tenant, cloisonnées par tenant et par utilisateur, avec un cache décodé préchargé et un pool de threads partagé pour un 1:N rapide. Il est prêt pour GPU grâce à un simple changement de provider ONNX (CPU, CUDA, TensorRT ou OpenVINO), sans modification de code.

ENGINERESTHTTPSJSONC++
⚡
Essayez en direct — FaceUp. La présence par reconnaissance faciale directement dans votre navigateur — enrôlez un visage et pointez avec détection du vivant, sans application à installer. Aucune connexion requise — commencez avec le numéro de série de votre appareil.
POST /api/biometric/v1/face/identify (1:N)
curl .../api/biometric/v1/face/identify \
  -H "sn: $SN" -H "auth-token: $TOKEN" \
  -d '{ "image": "<base64 jpeg>" }'
# -> detect -> PAD anti-spoof -> align -> ArcFace -> cosine
{ "ok":true, "match":true, "score":87,
  "candidates":5312, "user_id":"1042" }

Voir en action

Face Match Engine — démo en direct

Face Match Engine► Voir la démo

Fonctionnalités

Ce qu'il fait

Enrôler un visage

Stockez un ou plusieurs visages par utilisateur à partir d'une image base64 ou d'un embedding 512-d pré-calculé.

Vérifier (1:1)

Confirmez qu'un visage capturé correspond à un utilisateur déclaré, avec un indicateur de correspondance et un score de 0 à 100.

Identifier (1:N)

Recherchez un visage capturé dans toute la galerie du tenant et obtenez la meilleure correspondance au-dessus du seuil.

Anti-usurpation (PAD)

Le PAD MiniFASNet rejette les photos et les rejeux sur écran à chaque vérification et identification, avant tout calcul d'embedding.

Contrôle qualité

Rejette à l'enrôlement les visages trop petits, flous, sombres, surexposés ou de profil, pour que seuls des modèles propres entrent dans la galerie.

Comparaison 1:N à grande échelle

Un cache mémoire préchargé et un pool de threads borné maintiennent un cosinus en force brute rapide jusqu'à environ 1 M de modèles.

Caractéristiques

Tout est inclus

  • Trois endpoints — enrôlement, vérification (1:1) et identification (1:N) — acceptant une image base64 ou un embedding 512-d pré-calculé
  • Embeddings 512-d ArcFace R50 (insightface w600k_r50) normalisés L2, avec comparaison cosinus notée de 0 à 100
  • Détection de visages SCRFD det_10g intégrée, plus alignement en forme close sur 5 points vers ArcFace 112x112
  • Anti-usurpation passive sur image unique (PAD MiniFASNet) qui rejette les impressions et les rejeux sur écran avant l'embedding
  • Contrôle qualité à l'enrôlement : taille du visage, netteté, luminosité et frontalité, avec seuils réglables
  • Galeries multi-tenant cloisonnées par tenant et par utilisateur, avec filtrage par version de modèle lors des mises à niveau
  • Cache de galerie préchargé par tenant plus pool de threads partagé pour le 1:N (accélération mesurée d'environ 5,3x, ~104 ms sur une galerie de 1 M de modèles)
  • Bascule de provider ONNX prête pour GPU (cpu/cuda/tensorrt/openvino) avec repli sur CPU et sans modification de code
  • Seuil de correspondance configurable (60 par défaut) et politique d'entrée pouvant imposer des images seules sur les edges non fiables

Développez avec Face Match Engine

Obtenez une clé, lisez la documentation et livrez. Notre équipe vous accompagne pour votre première intégration.

FAQ

Questions fréquentes

Puis-je envoyer un embedding pré-calculé au lieu d'une image ?

Oui. Les requêtes acceptent soit un tableau JSON d'embedding, soit une image base64. L'entrée par embedding est comparée entièrement en direct dans le moteur ; l'entrée par image exécute le pipeline complet détection-alignement-PAD-embedding. L'entrée par embedding peut être désactivée par politique sur les edges non fiables.

Le Face Match Engine détecte-t-il l'usurpation ?

Oui. Chaque vérification et identification exécute un contrôle d'anti-usurpation passive (PAD) MiniFASNet sur le visage détecté avant l'embedding, en rejetant les impressions et les rejeux sur écran. Il s'agit d'un PAD RGB sur image unique ; les masques 3D et les rejeux vidéo de haute qualité nécessitent un matériel de profondeur ou infrarouge.

Quel modèle de reconnaissance faciale utilise-t-il ?

ArcFace R50 (insightface w600k_r50), qui produit des embeddings 512-d normalisés L2, avec SCRFD det_10g pour la détection et un aligneur sur 5 points par transformation de similarité.

Peut-il fonctionner sur GPU ?

Oui. Définissez le provider ONNX sur cuda (ou tensorrt/openvino) ; le détecteur, l'extracteur d'embeddings et le PAD utilisent tous le provider configuré, avec repli sur CPU et sans modification de code.

Quelle taille de galerie l'identification 1:N peut-elle gérer ?

Elle s'appuie sur un cache décodé préchargé et un pool de threads partagé pour une comparaison cosinus en force brute, mesurée à environ 104 ms sur une galerie de 1 M de modèles ; au-delà, la voie à suivre est un index de plus proches voisins approximatifs.

Voir aussi

Explorez le reste de la plateforme