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
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.
Image ou frame RTSP
JPEG, PNG, WebP ou la dernière frame de caméra en direct.
SCRFD multirésolution
Détecter les visages, fusionner les candidats et appliquer un NMS global.
Aligner et générer l’embedding
Alignement cinq points, embedding ArcFace et normalisation L2.
Collection liée au modèle
Fixer modèle, prétraitement, détecteur, seuil et capacité.
Recherche exacte CPU/GPU
Évaluer exhaustivement chaque FaceSample actif du profil sélectionné.
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.

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.
Maximum mesuré pour des vecteurs de 512 dimensions sur une RTX 5090.
Mesuré avec exactement 10M vecteurs et une seule requête en vol.
Débit mesuré de recherche exhaustive Top-5 avec 10M vecteurs.
Multiplicateur de capacité INT8 mesuré sur le même GPU.
| Type de données GPU | Vecteurs maximum | 10M Top-5 p50 | 10M QPS série |
|---|---|---|---|
| FP32 | 15.8M | 12.84 ms | 77.85 |
| FP16 | 30.7M | 6.83 ms | 146.32 |
| BF16 | 30.7M | 6.83 ms | 146.33 |
| INT8 | 58.9M | 3.84 ms | 260.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.

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.
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/healthCPU
Linux x86_64 avec Docker Engine et Docker Compose. Une voie pratique pour l’évaluation et les charges modérées.
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.
Limite du déploiement
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.
Guides d’implémentation
Du premier conteneur à une intégration fonctionnelle.
Utilisez le démarrage rapide ciblé pour votre premier déploiement privé, puis passez au workflow REST API et SDK Python lorsque vous êtes prêt à connecter une application.
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.