← Retour aux guides
InsightFacePythonInsightFace ServerDétection de présence réelle RGB en option

Activer la détection RGB de présence réelle dans Python et InsightFace Server

Ajoutez des contrôles avant la reconnaissance et recevez un état et des scores pour chaque visage. Conditionnez la reconnaissance au résultat de présence réelle ou utilisez le mode observation pour la détection, la comparaison, la recherche et les traitements RTSP.

•5 min de lecture

Ce que vous allez mettre en place

Utilisez FaceAnalysis pour les visages ou PersonAnalysis pour associer détection de personnes, comparaison faciale et ReID corporelle.

Désactivée par défaut. Les contrôles à l’enregistrement disposent d’un réglage distinct.

Avant de commencer

  • Le code source actualisé d’InsightFace 2 contenant python-package/docs/liveness.md, avec Python 3.10+ et les dépendances du paquet installées. Ce guide vise cette version du code ; un ancien paquet peut ne pas proposer l’API de l’extension.
  • Un fichier local input.jpg avec un visage et suffisamment d’image autour, ainsi que l’accès nécessaire pour installer le modèle de base et l’extension de liveness. Respectez les conditions fournies avec chaque modèle.
  • Utilisez le déploiement du guide Docker avec sa configuration existante. Les conteneurs fonctionnent déjà en root avec modèles et configuration accessibles en écriture. La CLI peut activer la fonction avant le premier démarrage.

1. Activer explicitement le contrôle dans Python

Depuis la racine du dépôt actualisé, installez le paquet Python dans votre environnement virtuel actif. Placez input.jpg dans le répertoire de travail avant de lancer l’exemple. L’exemple CPU sélectionne la détection et la reconnaissance ; addons=['liveness'] active le modèle indépendant de liveness.

La première exécution peut télécharger les modèles manquants. L’extension est stockée dans ~/.insightface/addons/liveness.onnx et son SHA-256 est vérifié avant chargement. Installer le fichier ne l’active pas : indiquez explicitement addons=['liveness']. Sans addons, le contrôle reste désactivé.

Installer depuis le code source actualisé
cd python-package
python -m pip install .
Exemple CPU avec résultats par visage
import cv2
from insightface.app import FaceAnalysis

image_bgr = cv2.imread("input.jpg")
if image_bgr is None:
    raise FileNotFoundError("input.jpg")

app = FaceAnalysis(
    name="buffalo_l",
    allowed_modules=["detection", "recognition"],
    addons=["liveness"],
    liveness_mode="normal",
    liveness_threshold=0.8,
    providers=["CPUExecutionProvider"],
)
app.prepare(ctx_id=-1, det_size=(640, 640))

for face in app.get(image_bgr):
    print(face.liveness)
    if face.liveness is not None:
        print(
            face.liveness.status,
            face.liveness.is_live,
            face.liveness.live_score,
        )

2. Lire les résultats et choisir la politique de reconnaissance

En mode normal, la reconnaissance ne s’exécute que si is_live vaut True. Les autres visages restent dans la liste avec leurs détections, sans embedding. En mode observe, la reconnaissance continue même si le résultat est négatif ou l’entrée rejetée, tout en conservant le résultat. Les erreurs de modèle, d’alignement et d’inférence lèvent des exceptions dans les deux modes.

  • status='ok' : is_live vaut True ou False et live_score est un nombre dans [0, 1]. Le seuil par défaut est 0.8 ; l’égalité suffit pour passer. Validez le seuil avec des entrées représentatives et le fournisseur d’exécution de votre déploiement.
  • status='input_rejected' : is_live et live_score valent None. Cela indique un manque de surface dans l’image source autour du visage aligné, pas une classification d’usurpation. Recentrez le visage, reculez ou utilisez une image moins serrée. reason explique le problème.
  • face.liveness vaut None si l’extension n’a pas été sélectionnée ; aucun visage détecté renvoie []. Utilisez status et is_live dans votre logique. Le texte reason de Python/API est en anglais et ne constitue pas un code d’état stable.

Facultatif : activer la détection RGB de présence réelle

Oui. Ajoutez --enable-liveness à l’installation du modèle ou activez la fonction dans Système via la Web UI, puis démarrez ou redémarrez Server. normal contrôle la reconnaissance ; observe enregistre les résultats et poursuit la reconnaissance. Désactivée par défaut, avec un réglage distinct pour l’inscription.

Pour une nouvelle installation, ajoutez --enable-liveness à la commande d’installation du modèle du guide Docker. Les modèles requis sont vérifiés et l’activation est enregistrée avant le premier démarrage.

Pour un service en cours d’exécution, utilisez la commande correspondante ci-dessous puis redémarrez-le. L’installation normale et models addons install liveness n’activent pas la fonction.

Vous pouvez aussi choisir le téléchargement avec activation après redémarrage dans Système → Détection de présence réelle. Web et CLI vérifient le modèle et ajoutent liveness aux deux listes en préservant les autres réglages. Un échec de téléchargement n’active rien ; attendez la sauvegarde réussie.

Démarrez une nouvelle installation après la préparation ; redémarrez un service existant avec la commande CPU/CUDA correspondante. Confirmez enabled=true et restart_required=false. installed décrit le fichier vérifié et configured_enabled le réglage enregistré. Un changement de montage exige de recréer le conteneur.

Liveness est désactivé par défaut. L’action Web ne modifie pas l’enregistrement des personnes : liveness_on_registration=false reste la valeur initiale. Réglez-le séparément sur true pour appliquer normal/observe lors de l’enregistrement. Pour désactiver liveness, enregistrez des listes vides pour inference.addons et addons.auto_download, puis redémarrez.

CPU
docker compose -f server/deploy/compose.cpu.yml run --rm models install buffalo_l --accept-license --enable-liveness
CUDA 12
docker compose -f server/deploy/compose.cuda12.yml run --rm models install buffalo_l --accept-license --enable-liveness
Appliquer les réglages enregistrés au déploiement CPU existant
docker compose -f server/deploy/compose.cpu.yml restart server
Appliquer les réglages enregistrés au déploiement CUDA 12 existant
docker compose -f server/deploy/compose.cuda12.yml restart server

Besoin d’aide pour le déploiement en production ?

Contactez InsightFace pour les licences de modèles, l’optimisation runtime et le support de déploiement sur votre matériel cible.

Envoyer une demande entreprise