Dela via


Ange en ansiktsavkänningsmodell

Den här guiden visar hur du anger en modell för ansiktsidentifiering för Azure AI Face-tjänsten.

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

Läs vidare för att lära dig hur du anger ansiktsidentifieringsmodellen i vissa ansiktsåtgärder. Ansiktstjänsten använder ansiktsidentifiering när den konverterar en bild av ett ansikte till någon annan form av data.

Om du inte är säker på om du ska använda 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 resultat med din aktuella datauppsättning.

Förutsättningar

Du bör känna till begreppet ai-ansiktsidentifiering. Om du inte är det kan du läsa den konceptuella guiden för ansiktsidentifiering eller instruktioner:

Utvärdera olika modeller

De olika modellerna för ansiktsidentifiering är optimerade för olika uppgifter. I följande tabell finns en översikt över skillnaderna.

Modell beskrivning Prestandaanteckningar Attribut Landmärken
detection_01 Standardval för alla ansiktsidentifieringsåtgärder. Inte optimerad för små, sidovyer eller suddiga ansikten. Returnerar huvudattribut (huvudställning, glasögon och så vidare) om de anges i identifieringsanropet. Returnerar ansiktsmärken om de anges i identifieringsanropet.
detection_02 Släpptes i maj 2019 och finns som valfritt i alla ansiktsidentifieringsåtgärder. Förbättrad noggrannhet på små, sidovyer och suddiga ansikten. Returnerar inte ansiktsattribut. Returnerar inte ansiktsmärken.
detection_03 Släpptes i februari 2021 och finns valfritt i alla ansiktsidentifieringsåtgärder. Ytterligare förbättrad noggrannhet, inklusive på mindre ansikten (64 x 64 bildpunkter) och roterade ansiktsorienteringar. Returnerar mask-, oskärpa- och huvudpositionsattribut om de anges i identifieringsanropet. Returnerar ansiktsmärken om de anges i identifieringsanropet.

Det bästa sättet att jämföra prestanda för identifieringsmodellerna är att använda dem på en exempeldatauppsättning. Vi rekommenderar att du anropar Detect API på en mängd olika bilder, särskilt bilder av många ansikten eller ansikten som är svåra att se med varje identifieringsmodell. Var uppmärksam på antalet ansikten som varje modell returnerar.

Identifiera ansikten med angiven modell

Ansiktsidentifiering hittar avgränsningsrutans platser för mänskliga ansikten och identifierar deras visuella landmärken. Den extraherar ansiktets funktioner och lagrar dem för senare användning i igenkänningsåtgärder .

När du använder Identifierings-API:et kan du tilldela modellversionen med parametern detectionModel . De tillgängliga värdena är:

  • detection_01
  • detection_02
  • detection_03

En begärande-URL för DETECT REST API ser ut så här:

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

Om du använder klientbiblioteket kan du tilldela värdet för detectionModel genom att skicka in en lämplig sträng. Om du lämnar det otilldelat använder API:et standardmodellversionen (detection_01). Se följande kodexempel för .NET-klientbiblioteket.

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: false, returnFaceLandmarks: false, recognitionModel: "recognition_04", detectionModel: "detection_03");

Lägg till ansikte i Person med angiven modell

Ansiktstjänsten kan extrahera ansiktsdata från en bild och associera dem med ett personobjekt via ANSIKTS-API:et Lägg till persongrupp. I det här API-anropet kan du ange identifieringsmodellen på samma sätt som i Identifiera.

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

// Create a PersonGroup and add a person with face detected by "detection_03" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

string personId = (await faceClient.PersonGroupPerson.CreateAsync(personGroupId, "My Person Name")).PersonId;

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
await client.PersonGroupPerson.AddFaceFromUrlAsync(personGroupId, personId, imageUrl, detectionModel: "detection_03");

Den här koden skapar en PersonGroup med ID mypersongroupid och lägger till en person i den. Sedan lägger den till ett ansikte till den här personen med hjälp av detection_03 modellen. Om du inte anger parametern detectionModel använder API:et standardmodellen . detection_01

Kommentar

Du behöver inte använda samma identifieringsmodell för alla ansikten i ett personobjekt och du behöver inte använda samma identifieringsmodell när du identifierar nya ansikten som ska jämföras med ett personobjekt (till exempel i API:et Identifiera från persongrupp ).

Lägg till ansikte i FaceList med angiven modell

Du kan också ange en identifieringsmodell när du lägger till ett ansikte i ett befintligt FaceList-objekt . Se följande kodexempel för .NET-klientbiblioteket.

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

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
await client.FaceList.AddFaceFromUrlAsync(faceListId, imageUrl, detectionModel: "detection_03");

Den här koden skapar en Ansiktslista med namnet My face collection och lägger till ett ansikte i den detection_03 med modellen. Om du inte anger parametern detectionModel använder API:et standardmodellen . detection_01

Kommentar

Du behöver inte använda samma identifieringsmodell för alla ansikten i ett FaceList-objekt och du behöver inte använda samma identifieringsmodell när du identifierar nya ansikten att jämföra med ett FaceList-objekt .

Nästa steg

I den här artikeln har du lärt dig hur du anger den identifieringsmodell som ska användas med olika ansikts-API:er. Följ sedan en snabbstart för att komma igång med ansiktsidentifiering och analys.