Ange en ansiktsigenkänningsmodell

Den här guiden visar hur du anger en ansiktsigenkänningsmodell för ansiktsavkänning, identifiering och likhetssökning med hjälp av Azures ansiktsigenkänningstjänst.

Ansiktstjänsten använder maskininlärningsmodeller för att utföra åtgärder på ansikten i bilder. Vi fortsätter att förbättra noggrannheten i våra modeller baserat på kundfeedback och framsteg i forskningen, och vi levererar dessa förbättringar som modelluppdateringar. Utvecklare har möjlighet att ange vilken version av ansiktsigenkänningsmodellen som de vill använda. De kan välja den modell som bäst passar deras användningsfall.

Tjänsten Ansiktsigenkänning i Azure har fyra tillgängliga igenkänningsmodeller. Modellerna recognition_01 (publicerad 2017), recognition_02 (publicerad 2019) och recognition_03 (publicerad 2020) stöds kontinuerligt för att säkerställa bakåtkompatibilitet för kunder som använder FaceLists eller PersonGroup s som skapats med dessa modeller. En FaceList eller Persongroup använder alltid igenkänningsmodellen som den skapades med, och nya ansikten associeras med den här modellen när de läggs till. Detta kan inte ändras efter skapandet och kunderna måste använda motsvarande igenkänningsmodell med motsvarande FaceList eller PersonGroup.

Du kan gå över till senare igenkänningsmodeller när det passar dig. Du måste dock skapa nya FaceLists och PersonGroups med valfri igenkänningsmodell.

Modellen recognition_04 (publicerad 2021) är den mest exakta modellen som är tillgänglig för närvarande. Om du är en ny kund rekommenderar vi att du använder den här modellen. Recognition_04 ger bättre precision för både likhetsjämförelser och personmatchningsjämförelser. Recognition_04 förbättrar igenkänningen för registrerade användare som bär ansiktsöverdrag (maskmasker, N95-masker, maskmasker). Nu kan du skapa säkra och sömlösa användarupplevelser som använder den senaste detection_03-modellen för att identifiera om en registrerad användare använder ett ansiktsskydd och sedan känna igen vem de är med den senaste recognition_04 modellen. Observera att varje modell fungerar oberoende av de andra och att ett tröskelvärde för konfidens som angetts för en modell inte är avsett att jämföras med de andra igenkänningsmodellerna.

Läs vidare om du vill lära dig hur du anger en vald modell i olika ansiktsåtgärder samtidigt som du undviker modellkonflikter. Om du är en avancerad användare och vill avgöra om du ska växla till den senaste modellen går du vidare till avsnittet Utvärdera olika modeller för att utvärdera den nya modellen och jämföra resultaten med hjälp av din aktuella datauppsättning.

Förutsättningar

Du bör känna till begreppen för ansiktsavkänning och identifiering i AI. Om du inte är det kan du först se de här guiderna:

Identifiera ansikten med angiven modell

Ansiktsavkänning identifierar de visuella landmärkena för ansikten och hittar deras platser för begränsningsrutor. Den extraherar även ansiktets funktioner och lagrar dem för användning vid identifiering. All den här informationen utgör representationen av ett ansikte.

Igenkänningsmodellen används när ansiktsfunktionerna extraheras, så du kan ange en modellversion när du utför identifieringsåtgärden.

När du använder [API:et Ansikts] – Identifiera tilldelar du modellversionen med recognitionModel parametern . Tillgängliga värden är:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

Alternativt kan du ange parametern returnRecognitionModel (falskt som standard) för att ange om recognitionModel ska returneras som svar. Därför ser en begärande-URL [för ansikts- och] REST API ut så här:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes][&recognitionModel][&returnRecognitionModel]&subscription-key=<Subscription key>

Om du använder klientbiblioteket kan du tilldela värdet för genom att skicka en sträng recognitionModel som representerar versionen. Om du lämnar den otilldelade används en recognition_01 standardmodellversion av. Se följande kodexempel för .NET-klientbiblioteket.

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(imageUrl, true, true, recognitionModel: "recognition_01", returnRecognitionModel: true);

Identifiera ansikten med angiven modell

Ansiktstjänsten kan extrahera ansiktsdata från en bild och associera den med ett Person-objekt (till exempel via anropet Lägg till ansikts-API) och flera Person-objekt kan lagras tillsammans i en PersonGroup. Sedan kan ett nytt ansikte jämföras med en PersonGroup (med anropet [Ansikte –] Identifiera) och den matchande personen i gruppen kan identifieras.

En PersonGroup bör ha en unik igenkänningsmodell för alla personer och du kan ange detta med hjälp av parametern när du skapar gruppen recognitionModel ([PersonGroup - Create] eller [LargePersonGroup – Skapa).] Om du inte anger den här parametern recognition_01 används den ursprungliga modellen. En grupp använder alltid igenkänningsmodellen som den skapades med, och nya ansikten associeras med den här modellen när de läggs till i den. Detta kan inte ändras när en grupp har skapats. Om du vill se vilken modell en PersonGroup har konfigurerats med använder du API:et PersonGroup – Hämta med parametern returnRecognitionModel inställd som true.

Se följande kodexempel för .NET-klientbiblioteket.

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

I den här koden skapas en PersonGroup med ID och den är konfigurerad att använda mypersongroupid recognition_04 för att extrahera ansiktsfunktioner.

På motsvarande sätt måste du ange vilken modell som ska användas när du identifierar ansikten att jämföra med den här PersonGroup (via [API:et För ansikts identifiering).] Den modell som du använder bör alltid vara konsekvent med PersonGroups konfiguration. Annars misslyckas åtgärden på grund av inkompatibla modeller.

Ansikts- och identifierings-API:et [har inte ändrats.] du behöver bara ange modellversionen i identifieringen.

Hitta liknande ansikten med angiven modell

Du kan också ange en igenkänningsmodell för likhetssökning. Du kan tilldela modellversionen med recognitionModel när du skapar FaceList med FaceList – Skapa API eller [LargeFaceList – Skapa.] Om du inte anger den här recognition_01 parametern används modellen som standard. En FaceList använder alltid igenkänningsmodellen som den skapades med, och nya ansikten associeras med den här modellen när de läggs till i listan. Du kan inte ändra detta när du har skapat det. Om du vill se vilken modell som en FaceList har konfigurerats med använder du API:et [FaceList – Get] med parametern returnRecognitionModel inställd som true.

Se följande kodexempel för .NET-klientbiblioteket.

await faceClient.FaceList.CreateAsync(faceListId, "My face collection", recognitionModel: "recognition_04");

Den här koden skapar en FaceList med My face collection namnet , med hjälp recognition_04 modell för extrahering av funktioner. När du söker i den här FaceList efter liknande ansikten som ett nytt identifierat ansikte måste ansiktet ha identifierats ([Ansikte – Identifiera]) med hjälp av recognition_04 modellen. Precis som i föregående avsnitt måste modellen vara konsekvent.

Det finns ingen ändring i [ansikts-API:et – Hitta liknande] API: du anger bara modellversionen i identifieringen.

Verifiera ansikten med angiven modell

[API:et För] ansiktskontroll kontrollerar om två ansikten tillhör samma person. Det finns ingen ändring i API:et Verifiera när det gäller igenkänningsmodeller, men du kan bara jämföra ansikten som har identifierats med samma modell.

Utvärdera olika modeller

Om du vill jämföra prestanda för olika igenkänningsmodeller på dina egna data måste du:

  1. Skapa fyra PersonGroups med recognition_01, recognition_02, recognition_03 och recognition_04 respektive.
  2. Använd dina bilddata för att identifiera ansikten och registrera dem till Personer inom dessa fyra PersonGroups.
  3. Träna dina PersonGroups med hjälp av API:et PersonGroup – Träna.
  4. Testa med Ansikte – Identifiera på alla fyra PersonGroups och jämför resultaten.

Om du normalt anger ett tröskelvärde för konfidens (ett värde mellan noll och ett som avgör hur säker modellen måste vara för att identifiera ett ansikte) kan du behöva använda olika tröskelvärden för olika modeller. Ett tröskelvärde för en modell är inte avsett att delas med en annan och ger inte nödvändigtvis samma resultat.

Nästa steg

I den här artikeln har du lärt dig hur du anger vilken igenkänningsmodell som ska användas med olika API:er för ansiktstjänsten. Följ sedan en snabbstart för att komma igång med ansiktsavkänning.