Retour à l’accueil
Nouveau · InsightFace Server

Une infrastructure de reconnaissance faciale qui reste dans votre réseau.

Maîtrisez toute la chaîne de reconnaissance faciale dans un service Linux autohébergé unique : détection, comparaison, enrôlement, recherche exacte 1:N et surveillance RTSP persistante via une Web UI, une API REST et un SDK Python. Des mesures INT8 réalisées sur une seule RTX 5090 montrent que la recherche monte jusqu’à 58.9M vecteurs d’image et atteint une latence Top-5 de 3.84 ms sur 10M vecteurs.

Licences de modèles pour la production

Le code du Server et du SDK est sous licence MIT ; les droits sur les modèles sont distincts. Obtenez une licence pour exploiter commercialement les modèles publics, ou demandez des modèles privés plus précis pour la recherche 1:N à l’échelle de millions et de dizaines de millions.

Demander une licence de modèle
Prêt
Dashboard InsightFace Server montrant un déploiement local CUDA de reconnaissance faciale prêt
50M+
Vecteurs d’image interrogeables sur un seul GPU
Quantification INT8 des caractéristiques
Aucune perte de précision
3.84 ms
Latence Top-5 sur 10M de vecteurs (p50)
260.81 QPS
Recherche exhaustive séquentielle sur 10M de vecteurs

Un service autohébergé

Privé par son architecture, pratique par sa conception.

Images, embeddings, modèles et index peuvent rester dans l’infrastructure que vous contrôlez. La console multilingue utilise la même API publique que vos applications, sans CDN, analytics, polices distantes ni JavaScript tiers.

Détecter

Renvoie bounding boxes, cinq landmarks, confiance du détecteur et signaux de qualité locaux pour les images JPEG, PNG et WebP.

Comparer

Compare un visage sélectionné dans chacune de deux images avec un seuil explicite et une similarité cosinus brute, pas une probabilité.

Inscrire

Organise les identités en Collections, People et FaceSamples, avec inscription multi-image, modes de revue et motifs de rejet explicites.

Rechercher

Exécute une recherche exhaustive de personnes 1:N. Chaque Person est classée selon le FaceSample correspondant le plus fort au-dessus du seuil de la Collection.

Surveiller

Exécute des tâches de reconnaissance RTSP persistantes avec événements récents d’entrée, sortie, erreur et reprise, ainsi qu’un aperçu opérateur facultatif.

Intégrer

Utilisez la Web UI, 29 opérations REST, la référence OpenAPI interactive ou le client Python léger et typé.

Pipeline de reconnaissance

De l’image à la correspondance classée.

Le même contrat de traitement explicite alimente la console, la REST API, le SDK Python et les moniteurs RTSP.

01

Image ou frame RTSP

JPEG, PNG, WebP ou la dernière frame de caméra en direct.

02

SCRFD multirésolution

Détecter les visages, fusionner les candidats et appliquer un NMS global.

03

Aligner et générer l’embedding

Alignement cinq points, embedding ArcFace et normalisation L2.

04

Collection liée au modèle

Fixer modèle, prétraitement, détecteur, seuil et capacité.

05

Recherche exacte CPU/GPU

Évaluer exhaustivement chaque FaceSample actif du profil sélectionné.

06

Correspondances de personnes

Renvoyer les personnes classées avec scores cosinus bruts et IDs de requête.

SQLite reste la référence

La base durable est la source de vérité ; les index exacts en mémoire sont des projections reconstruisibles. Les inscriptions acceptées sont ajoutées à l’index avant toute réponse réussie et les suppressions sont retirées des deux stockages.

Console Collections d’InsightFace Server avec une Collection d’identités liée au modèle
Les Collections isolent les espaces d’identité et fixent modèle, prétraitement, détecteur, seuil, profil de recherche et capacité.

Contrats d’identité explicites

Les Collections clarifient modèles, politiques et limites de données.

Chaque Collection fixe l’identité du modèle, la version de prétraitement, la dimension d’embedding, la politique du détecteur, le profil de recherche, la capacité et le seuil de correspondance. Ce contrat évite tout mélange silencieux lors d’un changement de modèle ou de runtime.

  • Ajoutez plusieurs FaceSamples par Person et inspectez les résultats partiels d’inscription au lieu de perdre tout un lot.
  • Choisissez off, standard ou strict pour contrôler nombre, taille, netteté, luminosité et pose des visages, ainsi que la cohérence au sein d’une Person.
  • Connectez un pipeline d’embeddings amont fiable via le contrat d’embedding de la Collection ; les images passent toujours par la détection et la revue.
  • Stockez facultativement un recadrage de bounding box 112×112 par visage accepté. Les originaux et entrées de reconnaissance alignées ne sont pas conservés.

Preuve de recherche mesurée

Recherche exacte à l’échelle d’un GPU unique.

Les profils natifs de recherche exhaustive permettent d’échanger précision vectorielle contre capacité et débit sans passer à un index approximatif des plus proches voisins.

58.9M
Vecteurs d’image INT8

Maximum mesuré pour des vecteurs de 512 dimensions sur une RTX 5090.

3.84 ms
Top-5 p50

Mesuré avec exactement 10M vecteurs et une seule requête en vol.

260.81
QPS série

Débit mesuré de recherche exhaustive Top-5 avec 10M vecteurs.

3.73×
Capacité FP32

Multiplicateur de capacité INT8 mesuré sur le même GPU.

Type de données GPUVecteurs maximum10M Top-5 p5010M QPS série
FP3215.8M12.84 ms77.85
FP1630.7M6.83 ms146.32
BF1630.7M6.83 ms146.33
INT858.9M3.84 ms260.81

91.25% pour FP32 et INT8

Sur ICCV21-MFR MR-ALL à FAR 1e-6, les deux profils affichent 91.25% avec une précision de deux décimales. L’écart INT8 non arrondi par rapport à FP32 est de −0.001102 point de pourcentage.

Mesures réalisées sur une NVIDIA GeForce RTX 5090. La capacité est la limite isolée de l’index natif, sans modèles ONNX chargés ni charge Server. La vitesse utilise exactement 10M vecteurs d’image de 512 dimensions, une recherche exhaustive Top-5 résidente GPU, une requête en vol, 10 warm-ups et 100 requêtes mesurées. Les déploiements en production doivent réserver de la VRAM pour les modèles, requêtes, concurrence, reconstructions d’index et marge de l’allocator. La recherche est exacte dans chaque représentation stockée ; un stockage de moindre précision peut néanmoins modifier scores et classements par rapport à FP32.

Moniteurs RTSP persistants

Une surveillance de caméra qui fonctionne sans navigateur.

Créez des Moniteurs RTSP côté serveur, réglez la cadence d’inférence et la confirmation des événements, puis laissez des clients indépendants interroger l’état courant et les événements récents. Fermer la console n’arrête pas la reconnaissance et les Moniteurs activés reprennent après redémarrage du Server. Les frames ne sont jamais enregistrées ; les événements récents sont bornés et non durables, et l’aperçu est désactivé par défaut.

Utilisez la reconnaissance comme aide à l’opérateur, pas comme seul contrôle d’une décision à fort impact. Définissez pour chaque déploiement des politiques de consentement, rétention, suppression, revue et réponse aux incidents.

Console de surveillance de caméras InsightFace Server avec un Moniteur RTSP persistant et une adresse privée masquée
La configuration du Monitor persiste dans SQLite. Les identifiants RTSP sont chiffrés et masqués ; les frames ne sont pas stockées et les événements récents restent uniquement en mémoire.

Déploiement Docker

Choisissez CPU pour commencer simplement ou CUDA 12 pour changer d’échelle.

Exécutez depuis un checkout complet du dépôt InsightFace. L’hôte n’a pas besoin de Python, OpenCV, ONNX Runtime, CUDA Toolkit ou cuDNN ; les conteneurs embarquent le runtime, tandis que les modèles restent une installation sous licence distincte.

Démarrage rapide CPUCPU
mkdir -p server/.models
docker compose -f server/deploy/compose.cpu.yml pull
docker compose -f server/deploy/compose.cpu.yml \
  run --rm models install buffalo_l --accept-license
docker compose -f server/deploy/compose.cpu.yml up -d
curl -fsS http://127.0.0.1:18097/v1/health

CPU

Linux x86_64 avec Docker Engine et Docker Compose. Une voie pratique pour l’évaluation et les charges modérées.

http://SERVER:18097

NVIDIA CUDA 12

Ajoutez un GPU NVIDIA compatible, son driver et NVIDIA Container Toolkit. Le démarrage échoue au lieu de basculer silencieusement sur CPU.

http://SERVER:18098

Limite du déploiement

Installez et vérifiez buffalo_l, buffalo_m, buffalo_sc, antelopev2 ou un paquet privé autorisé.
Montez /models en lecture seule et rendez /data persistant pour SQLite, les secrets chiffrés et les recadrages facultatifs.
Utilisez docker compose down sans -v pour conserver le volume de données nommé.
Arrêtez les écritures pour sauvegarder ou utilisez un snapshot sûr pour SQLite avant les mises à niveau.

Exploitation et sécurité

Une limite claire que vous pouvez renforcer.

Le Server expose l’état nécessaire à l’exploitation d’un déploiement privé tout en excluant secrets, images, embeddings et identifiants des diagnostics.

État et diagnostics

Vérifiez service, base de données, modèle, provider, capacité et résumés sûrs des erreurs récentes.

CUDA fail-fast

Validez au démarrage le provider réel, les sessions, bibliothèques, la compatibilité GPU et l’inférence de warm-up.

Limite de données durable

Gardez les modèles en lecture seule, rendez /data persistant et reconstruisez depuis SQLite les index exacts jetables.

Identifiants protégés

Hachez l’API Key, chiffrez les identifiants RTSP dans /data et masquez les sources dans les réponses.

Mode API uniquement

Désactivez console et guides tout en conservant /v1 et /openapi.json pour les services privés.

Sécurisez-le avant tout accès réseau

Les fichiers Compose fournis désactivent l’authentification pour les évaluations isolées. Cette version fournit du HTTP en clair dans le conteneur, une API Key unique sans rôles différenciés, et aucun compte utilisateur, RBAC, IAM, rate limiter, TLS ou couche de conformité légale intégré. Elle n’ajoute ni liveness, ni détection de deepfakes, ni analyse démographique, ni enregistrement/NVR, ni Workers distribués. Activez l’authentification, terminez HTTPS sur un reverse proxy fiable, restreignez CORS et l’accès réseau, appliquez en périphérie des limites de débit, taille et durée, et protégez volumes de données et backups comme des données biométriques.

Commencez par un déploiement privé.

Démarrez l’image CPU, créez une Collection, inscrivez une Person et lancez votre première recherche exacte. Une fois le workflow validé, dimensionnez le runtime et la limite de sécurité pour la production.

La licence du code source du Server et du SDK n’accorde aucun droit commercial sur les fichiers de modèles. Contactez InsightFace pour l’autorisation commerciale des modèles.