Partager via


Spécifier un modèle de reconnaissance faciale

Attention

L’accès au service visage est limité en fonction des critères d’éligibilité et d’utilisation afin de prendre en charge nos principes d’IA responsable. Le service visage est disponible uniquement pour les clients et partenaires gérés par Microsoft. Utilisez le Formulaire d’admission de la reconnaissance faciale pour demander l’accès. Pour plus d’informations, consultez la page Accès limité visage.

Ce guide vous montre comment spécifier un modèle de reconnaissance faciale pour la détection des visages, l’identification et la recherche de similarités à l’aide du service Azure AI Visage.

Le service Visage utilise des modèles Machine Learning pour effectuer des opérations sur les visages humains visibles dans les images. Nous continuons d’améliorer la précision de nos modèles en fonction des commentaires de nos clients et des progrès de la recherche, et nous intégrons ces améliorations sous forme de mises à jour de modèles. Les développeurs peuvent spécifier la version du modèle de reconnaissance faciale qu’ils souhaitent utiliser, en choisissant le modèle qui correspond le mieux à leur cas d’usage.

Compatibilité du modèle

Le service Azure AI Visage propose quatre modèles de reconnaissance. Les modèles recognition_01 (publié en 2017), recognition_02 (publié en 2019) et recognition_03 (publié en 2020) sont continuellement pris en charge pour assurer la compatibilité descendante pour les clients utilisant les objets FaceList ou PersonGroup créés avec ces modèles. Un objet FaceList ou PersonGroup utilise toujours le modèle de reconnaissance avec lequel il a été créé et les nouveaux visages sont associés à ce modèle lorsqu’ils y sont ajoutés. Cela ne peut plus être changé après la création et les clients doivent utiliser le modèle de reconnaissance correspondant avec l’objet FaceList ou PersonGroup correspondant.

Vous pouvez passer à des modèles de reconnaissance plus récents à votre convenance. Cependant, vous devez créer de nouveaux objets FaceList et PersonGroup avec le modèle de reconnaissance de votre choix.

Le modèle recognition_04 (publié en 2021) est le modèle le plus précis actuellement disponible. Si vous êtes un nouveau client, nous vous recommandons d’utiliser ce modèle. Recognition_04 offre une meilleure précision pour les comparaisons de similarité et les comparaisons de correspondance de personne. Recognition_04 améliore la reconnaissance pour les utilisateurs inscrits qui portent des masques (chirurgicaux, N95, en tissu). Vous pouvez désormais créer des expériences utilisateur sûres et fluides qui utilisent le dernier modèle detection_03 pour détecter si un utilisateur inscrit porte un masque. Vous pouvez ensuite utiliser le dernier modèle recognition_04 pour reconnaître leur identité. Chaque modèle fonctionne indépendamment l’un de l’autre et un seuil de confiance défini pour un modèle n’est pas destiné à être comparé parmi les autres modèles de reconnaissance.

Poursuivez la lecture pour en savoir plus sur la détermination d’un modèle spécifique dans différentes opérations de détection de visages, tout en évitant les conflits de modèles. Si vous êtes un utilisateur expérimenté et souhaitez déterminer si vous devez passer au modèle le plus récent, passez à la section Évaluer des modèles différents. Vous pouvez évaluer le nouveau modèle et comparer les résultats avec votre jeu de données actuel.

Prérequis

Vous devez maîtriser les concepts de la détection et de l'identification de visages par intelligence artificielle (AI). Si ce n’est pas les cas, consultez d’abord ces guides :

Détecter des visages avec le modèle spécifié

La détection des visages identifie les repères visuels des visages humains et trouve leur emplacement dans les cadres englobants. Elle extrait également les traits du visage et les stocke temporairement pour 24 heures pour les utiliser à des fins d’identification. Toutes ces informations forment la représentation d’un visage.

Le modèle de reconnaissance est utilisé lors de l’extraction des traits du visage, de sorte que vous pouvez spécifier une version du modèle lors de l’exécution de l'opération de détection.

Lorsque vous utilisez l’API Détecter, attribuez la version du modèle avec le paramètre recognitionModel. Les valeurs disponibles sont :

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

Si vous le souhaitez, vous pouvez spécifier le paramètre returnRecognitionModel (par défaut false) pour indiquer si recognitionModel doit être retourné comme réponse. Une URL de requête pour l’API REST Détecter se présentera alors comme suit :

https://westus.api.cognitive.microsoft.com/face/v1.0/detect?detectionModel={detectionModel}&recognitionModel={recognitionModel}&returnFaceId={returnFaceId}&returnFaceAttributes={returnFaceAttributes}&returnFaceLandmarks={returnFaceLandmarks}&returnRecognitionModel={returnRecognitionModel}&faceIdTimeToLive={faceIdTimeToLive}

Si vous utilisez la bibliothèque de client, vous pouvez affecter la valeur de recognitionModel en transmettant une chaîne représentant la version. Si vous ne lui attribuez aucune valeur, une version du modèle par défaut de recognition_01 est utilisée. Consultez l'exemple de code suivant pour la bibliothèque cliente .NET.

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var response = await faceClient.DetectAsync(new Uri(imageUrl), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: true, returnFaceLandmarks: true, returnRecognitionModel: true);
var faces = response.Value;

Notes

Le paramètre returnFaceId doit être défini sur true afin d’activer les scénarios de reconnaissance faciale dans les étapes ultérieures.

Identifier des visages avec le modèle spécifié

Le service Visage peut extraire les données de visage d’une image et les associer à un objet Personne (via l’appel d’API Ajouter un visage de personne d’un groupe de personnes, par exemple), et plusieurs objets Personne peuvent être stockés ensemble dans un objet PersonGroup. Ensuite, un nouveau visage peut être comparé à un objet PersonGroup (avec l’appel Identifier à partir d’un groupe de personnes), et la personne correspondante dans ce groupe peut être identifiée.

Un objet PersonGroup doit avoir un modèle de reconnaissance unique pour toutes les Personnes, et vous pouvez le spécifier en utilisant le paramètre recognitionModel lorsque vous créez le groupe (Créer un groupe de personnes ou Créer un grand groupe de personnes). Si vous ne spécifiez pas ce paramètre, le modèle recognition_01 initial est utilisé. Un groupe utilise toujours le modèle de reconnaissance avec lequel il a été créé, et les nouveaux visages sont associés à ce modèle lorsqu’ils y sont ajoutés. Cela ne peut pas changer une fois que le groupe a été créé. Pour voir avec quel modèle un objet PersonGroup est configuré, utilisez l'API Obtenir un groupe de personnes avec le jeu de paramètres returnRecognitionModel défini sur la valeur true.

Consultez l’exemple de code .NET suivant.

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Group Name", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}", content);
}

Dans ce code, un objet PersonGroup avec l’ID mypersongroupid est créé, et il est configuré pour utiliser le modèle recognition_04 afin d’extraire les traits de visages.

En conséquence, vous devez spécifier le modèle à utiliser lors de la détection des visages à comparer à cet objet PersonGroup (via l’API Détecter). Le modèle que vous utilisez doit toujours être cohérent avec la configuration de l’objet PersonGroup ; sinon, l'opération échouera en raison de modèles incompatibles.

Aucun changement n’est apporté à l'API Identifier à partir d’un groupe de personnes, il vous suffit de spécifier la version du modèle lors de la détection.

Rechercher des visages avec le modèle spécifié

Vous pouvez également spécifier un modèle de reconnaissance pour la recherche de similarités. Vous pouvez attribuer la version du modèle avec recognitionModel lors de la création de FaceList avec l’API Créer une liste de visages ou Créer une grande liste de visages. Si vous ne spécifiez pas ce paramètre, le modèle recognition_01 est utilisé par défaut. Un objet FaceList utilise toujours le modèle de reconnaissance avec lequel il a été créé, et les nouveaux visages sont associés à ce modèle lorsqu’ils sont ajoutés à la liste. Vous ne pouvez pas changer cela après la création. Pour voir avec quel modèle une FaceList est configurée, utilisez l’API Obtenir une liste de visages avec le paramètre returnRecognitionModel défini sur la valeur true.

Consultez l’exemple de code .NET suivant.

using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My face collection", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}", content);
}

Ce code crée un FaceList nommé My face collection, en utilisant le modèle recognition_04 pour l’extraction des caractéristiques. Lorsque vous recherchez dans cette FaceList des visages similaires à un nouveau visage détecté, ce visage doit avoir été détecté (Détecter) en utilisant le modèle recognition_04. Comme dans la section précédente, le modèle doit être cohérent.

Aucun changement n’est apporté à l'API Rechercher des visages semblables, vous spécifiez uniquement la version du modèle lors de la détection.

Vérifier des visages avec le modèle spécifié

L’API Vérifier visage à visage évalue si deux visages appartiennent à la même personne. Aucun changement n’est apporté à l'API Verify au niveau des modèles de reconnaissance, mais vous pouvez uniquement comparer des visages qui ont été détectés avec le même modèle.

Évaluer des modèles différents

Si vous souhaitez comparer les performances de différents modèles de reconnaissance sur vos propres données, vous devez :

  1. Créer quatre objets PersonGroup utilisant respectivement recognition_01, recognition_02, recognition_03 et recognition_04.
  2. utiliser vos données d’image pour détecter des visages et les relier à des personnes au sein de ces quatre objets PersonGroup ;
  3. Effectuez l’apprentissage de vos objets PersonGroup en utilisant l’API Effectuer l’apprentissage d’un groupe de personnes.
  4. Effectuez un test avec Identifier à partir d’un groupe de personnes sur les quatre objets PersonGroup et comparez les résultats.

Si vous spécifiez normalement un seuil de confiance (une valeur comprise entre zéro et une valeur qui détermine le degré de confiance que doit avoir le modèle pour identifier un visage), vous devrez peut-être utiliser différents seuils pour différents modèles. Le seuil d’un modèle n'est pas destiné à être partagé avec un autre modèle, et il ne produira pas nécessairement les mêmes résultats.

Étapes suivantes

Dans cet article, vous avez appris comment spécifier le modèle de reconnaissance à utiliser avec différentes API du service Visage. Voici maintenant un guide de démarrage rapide pour commencer la détection des visages.