Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce tutoriel, vous allez apprendre à détecter la vivacité des visages, à l’aide d’une combinaison de code côté serveur et d’une application mobile côté client.
Conseil / Astuce
Pour obtenir des informations générales sur la détection de la vivacité des visages, consultez le guide conceptuel.
Ce tutoriel montre comment utiliser une application en front-end et un serveur d’applications pour effectuer la détection d'activité, y compris l’étape facultative de vérification faciale, sur différentes plateformes et langues.
Important
Les Kits de développement logiciel (SDK) clients Face pour la vivacité sont une fonctionnalité contrôlée. Vous devez demander l’accès à la fonctionnalité liveness en remplissant le formulaire d’admission Face Recognition. Lorsque l'accès est accordé à votre abonnement Azure, vous pouvez télécharger le kit de développement logiciel Face liveness (SDK).
Conseil / Astuce
Une fois les prérequis terminés, vous pouvez essayer l’expérience liveness iOS de TestFlight et l’expérience web-liveness de Vision Studio. En outre, vous pouvez également générer et exécuter un exemple frontal complet (sur iOS, Android ou Web) à partir de la section Exemples .
Prérequis
- Abonnement Azure - En créer un gratuitement
- Votre compte Azure doit disposer d’un rôle Contributeur Cognitive Services attribué pour vous permettre d’accepter les termes de l’IA responsable et de créer une ressource. Pour que ce rôle soit attribué à votre compte, suivez les étapes de la documentation Attribuer des rôles ou contactez votre administrateur.
- Une fois que vous avez votre abonnement Azure, créez une ressource Détection de visages dans le portail Azure pour obtenir votre clé et votre point de terminaison. À la fin du déploiement, sélectionnez Accéder à la ressource.
- Vous avez besoin de la clé et du point de terminaison à partir de la ressource que vous créez pour connecter votre application au service Face.
- Vous pouvez utiliser le niveau tarifaire Gratuit (
F0
) pour tester le service, puis passer par la suite à un niveau payant pour la production.
- Accès au Kit de développement logiciel (SDK) azure AI Vision Face Client pour Mobile (IOS et Android) et au web. Pour commencer, vous devez appliquer les fonctionnalités d’accès limité à la reconnaissance faciale pour accéder au Kit de développement logiciel (SDK). Pour plus d’informations, consultez la page accès limité à la reconnaissance faciale.
- Connaissance de la fonctionnalité de détection de vivacité du visage. Consultez le guide conceptuel.
Préparer des kits SDK
Nous fournissons des kits SDK dans différents langages pour simplifier le développement sur les applications frontales et les serveurs d’applications :
Télécharger le SDK pour l’application front-end
Suivez les instructions fournies dans le référentiel GitHub azure-ai-vision-sdk pour intégrer l’interface utilisateur et le code à votre application mobile native. Le SDK liveness prend en charge Java/Kotlin pour les applications mobiles Android, Swift pour les applications mobiles iOS et JavaScript pour les applications web :
- Pour Swift iOS, suivez les instructions de l’exemple iOS
- Pour Kotlin/Java Android, suivez les instructions de l’exemple Android
- Pour JavaScript Web, suivez les instructions de l’exemple Web
Une fois le code ajouté à votre application, le SDK démarre l’appareil photo, guide l’utilisateur final pour ajuster sa position, compose la charge utile dynamique et appelle le service cloud Azure AI Visage pour traiter la charge utile dynamique.
Vous pouvez surveiller la section Releases du dépôt du KIT DE développement logiciel (SDK) pour connaître les nouvelles mises à jour de version du SDK.
Télécharger la bibliothèque de client Azure AI Visage pour un serveur d’applications
Le serveur d’applications/orchestrateur est responsable du contrôle du cycle de vie d’une session liveness. Le serveur d’applications doit créer une session avant d’effectuer la détection liveness, puis il peut interroger le résultat et supprimer la session lorsque la vérification liveness est terminée. Nous proposons une bibliothèque dans différentes langues pour implémenter facilement votre serveur d’applications. Suivez les étapes suivantes pour installer le package que vous souhaitez :
- Pour C#, suivez les instructions du fichier README dotnet
- Pour Java, suivez les instructions du README Java
- Pour Python, suivez les instructions du fichier Lisez-moi Python
- Pour JavaScript, suivez les instructions du fichier Lisez-moi JavaScript
Important
Pour créer des variables d’environnement pour votre clé et point de terminaison de service Azure Visage, consultez le guide de démarrage rapide
Effectuer la détection de la vivacité
Les étapes générales impliquées dans l’orchestration liveness sont illustrées ci-dessous :
L’application front-end démarre la vérification de liveness et notifie le serveur d’applications.
Le serveur d’applications crée une session liveness avec Azure AI Face Service. Le service crée une session liveness et répond avec un jeton d’autorisation de session. Vous trouverez plus d’informations sur chaque paramètre de requête impliqué dans la création d’une session liveness en référence dans Opération de création de session liveness.
var endpoint = new Uri(System.Environment.GetEnvironmentVariable("FACE_ENDPOINT")); var credential = new AzureKeyCredential(System.Environment.GetEnvironmentVariable("FACE_APIKEY")); var sessionClient = new FaceSessionClient(endpoint, credential); var createContent = new CreateLivenessSessionContent(LivenessOperationMode.Passive) { DeviceCorrelationId = "723d6d03-ef33-40a8-9682-23a1feb7bccd", EnableSessionImage = true, }; var createResponse = await sessionClient.CreateLivenessSessionAsync(createContent); var sessionId = createResponse.Value.SessionId; Console.WriteLine($"Session created."); Console.WriteLine($"Session id: {sessionId}"); Console.WriteLine($"Auth token: {createResponse.Value.AuthToken}");
Un exemple du corps de réponse :
{ "sessionId": "a6e7193e-b638-42e9-903f-eaf60d2b40a5", "authToken": "<session-authorization-token>", "status": "NotStarted", "modelVersion": "2024-11-15", "results": { "attempts": [] } }
Le serveur d’applications fournit le jeton d’autorisation de session à l’application front-end.
L’application front-end utilise le jeton d’autorisation de la session pour démarrer le détecteur d’authenticité du visage, qui lance le flux d’authenticité.
Le SDK démarre ensuite la caméra, guide l’utilisateur pour qu’il se positionne correctement, puis prépare la charge utile pour appeler le point de terminaison du service de détection dynamique.
Le kit de développement logiciel (SDK) appelle le service Azure AI Vision Face pour effectuer la détection de la vivacité. Une fois que le service répond, le kit de développement logiciel (SDK) informe l’application front-end que la vérification de la vivacité a été effectuée.
L’application front-end relaye la complétion de la vérification de la vivacité au serveur d’applications.
Le serveur d’applications peut désormais rechercher le résultat de la détection de vivacité du service Azure AI Vision Face.
var getResultResponse = await sessionClient.GetLivenessSessionResultAsync(sessionId); var sessionResult = getResultResponse.Value; Console.WriteLine($"Session id: {sessionResult.Id}"); Console.WriteLine($"Session status: {sessionResult.Status}"); Console.WriteLine($"Liveness detection decision: {sessionResult.Result?.Response.Body.LivenessDecision}");
Un exemple du corps de réponse :
{ "sessionId": "0acf6dbf-ce43-42a7-937e-705938881d62", "authToken": "", "status": "Succeeded", "modelVersion": "2024-11-15", "results": { "attempts": [ { "attemptId": 1, "attemptStatus": "Succeeded", "result": { "livenessDecision": "realface", "targets": { "color": { "faceRectangle": { "top": 763, "left": 320, "width": 739, "height": 938 } } }, "digest": "517A0E700859E42107FA47E957DD12F54211C1A021A969CD391AC38BB88295A2", "sessionImageId": "Ab9tzwpDzqdCk35wWTiIHWJzzPr9fBCNSqBcXnJmDjbI" } } ] } }
Une fois les résultats de la session interrogés, le serveur de l’application peut supprimer la session.
await sessionClient.DeleteLivenessSessionAsync(sessionId); Console.WriteLine($"The session {sessionId} is deleted.");
Effectuer une détection de vitalité avec vérification faciale
La combinaison de la vérification des visages avec la détection de la vivacité permet la vérification biométrique d’une personne d’intérêt particulière avec une garantie supplémentaire que la personne est physiquement présente dans le système.
Il y a deux éléments pour l'intégration de la caractéristique de vivacité avec la vérification :
Étape 1 - Sélectionner une image de référence
Suivez les conseils répertoriés dans les exigences de composition des scénarios de vérification d’ID pour vous assurer que vos images d’entrée donnent les résultats de reconnaissance les plus précis.
Étape 2 : configurez l’orchestration de la vivacité avec vérification.
Les étapes de haut niveau impliquées dans l'orchestration de la vivacité et de la vérification sont illustrées ci-dessous :
Fournir l’image de référence de vérification par l’une des deux méthodes suivantes :
Le serveur d’applications fournit l’image de référence lors de la création de la session liveness. Vous trouverez plus d’informations sur chaque paramètre de requête impliqué dans la création d’une session liveness avec vérification en référence dans Opération de création de session liveness avec Verify.
var endpoint = new Uri(System.Environment.GetEnvironmentVariable("FACE_ENDPOINT")); var credential = new AzureKeyCredential(System.Environment.GetEnvironmentVariable("FACE_APIKEY")); var sessionClient = new FaceSessionClient(endpoint, credential); var createContent = new CreateLivenessWithVerifySessionContent(LivenessOperationMode.Passive) { DeviceCorrelationId = "723d6d03-ef33-40a8-9682-23a1feb7bccd", EnableSessionImage = true, }; using var fileStream = new FileStream("test.png", FileMode.Open, FileAccess.Read); var createResponse = await sessionClient.CreateLivenessWithVerifySessionAsync(createContent, fileStream); var sessionId = createResponse.Value.SessionId; Console.WriteLine("Session created."); Console.WriteLine($"Session id: {sessionId}"); Console.WriteLine($"Auth token: {createResponse.Value.AuthToken}"); Console.WriteLine("The reference image:"); Console.WriteLine($" Face rectangle: {createResponse.Value.VerifyImage.FaceRectangle.Top}, {createResponse.Value.VerifyImage.FaceRectangle.Left}, {createResponse.Value.VerifyImage.FaceRectangle.Width}, {createResponse.Value.VerifyImage.FaceRectangle.Height}"); Console.WriteLine($" The quality for recognition: {createResponse.Value.VerifyImage.QualityForRecognition}");
Un exemple du corps de réponse :
{ "sessionId": "3847ffd3-4657-4e6c-870c-8e20de52f567", "authToken": "<session-authorization-token>", "status": "NotStarted", "modelVersion": "2024-11-15", "results": { "attempts": [], "verifyReferences": [ { "referenceType": "image", "faceRectangle": { "top": 98, "left": 131, "width": 233, "height": 300 }, "qualityForRecognition": "high" } ] } }
L’application front-end fournit l’image de référence lors de l’initialisation du kit de développement logiciel (SDK). Ce scénario n’est pas pris en charge dans la solution web.
Le serveur d’applications peut désormais interroger le résultat de vérification en plus du résultat de la détection de la vivacité.
var getResultResponse = await sessionClient.GetLivenessWithVerifySessionResultAsync(sessionId); var sessionResult = getResultResponse.Value; Console.WriteLine($"Session id: {sessionResult.Id}"); Console.WriteLine($"Session status: {sessionResult.Status}"); Console.WriteLine($"Liveness detection decision: {sessionResult.Result?.Response.Body.LivenessDecision}"); Console.WriteLine($"Verification result: {sessionResult.Result?.Response.Body.VerifyResult.IsIdentical}"); Console.WriteLine($"Verification confidence: {sessionResult.Result?.Response.Body.VerifyResult.MatchConfidence}");
Un exemple du corps de réponse :
{ "sessionId": "93fd6f13-4161-41df-8a22-80a38ef53836", "authToken": "", "status": "Succeeded", "modelVersion": "2024-11-15", "results": { "attempts": [ { "attemptId": 1, "attemptStatus": "Succeeded", "result": { "livenessDecision": "realface", "targets": { "color": { "faceRectangle": { "top": 669, "left": 203, "width": 646, "height": 724 } } }, "digest": "EE664438FDF0535C6344A468181E4DDD4A34AC89582D4FD6E9E8954B843C7AA7", "verifyResult": { "matchConfidence": 0.08172279, "isIdentical": false } } } ], "verifyReferences": [ { "faceRectangle": { "top": 98, "left": 131, "width": 233, "height": 300 }, "qualityForRecognition": "high" } ] } }
Le serveur d’applications peut supprimer la session si vous n’interrogez plus son résultat.
await sessionClient.DeleteLivenessWithVerifySessionAsync(sessionId); Console.WriteLine($"The session {sessionId} is deleted.");
Effectuer d’autres opérations de visage après la détection de la vivacité
Si vous le souhaitez, vous pouvez effectuer d'autres opérations de visage après la vérification de la vivacité, telles que l'analyse du visage (pour obtenir des attributs de visage, par exemple) et/ou des opérations sur l'identité du visage.
- Pour l’activer, vous devez définir le paramètre « enableSessionImage » sur « true » pendant l’étape deSession-Creation.
- Une fois la session terminée, vous pouvez extraire le « sessionImageId » à partir de l’étape session-Get-Result.
- Vous pouvez maintenant soit télécharger l’image de session (référencée dans l'API Liveness Get Session Image Operation), soit fournir le « sessionImageId » dans l’opération Detect from Session Image ID API pour continuer à effectuer d’autres analyses de visage ou opérations d’identité faciale. Pour plus d’informations sur ces opérations, consultez les concepts de détection des visages et les concepts de reconnaissance faciale.
Options de support
En plus d’utiliser les principales options de prise en charge des services Azure AI, vous pouvez également publier vos questions dans la section problèmes du dépôt du KIT de développement logiciel (SDK).
Contenu connexe
Pour savoir comment intégrer la solution liveness à votre application existante, consultez la référence du Kit de développement logiciel (SDK) Azure AI Vision.
Pour en savoir plus sur les fonctionnalités disponibles pour orchestrer la solution liveness, consultez la référence de l’API REST Session.