Een model voor gezichtsherkenning opgeven

Deze handleiding laat zien hoe u een model voor gezichtsherkenning kunt opgeven voor gezichtsdetectie, identificatie en overeenkomsten zoeken met behulp van de Azure Face-service.

De Face-service gebruikt machine learning om bewerkingen uit te voeren op menselijke gezichten in afbeeldingen. We blijven de nauwkeurigheid van onze modellen verbeteren op basis van feedback van klanten en ontwikkelingen in het onderzoek, en we leveren deze verbeteringen als modelupdates. Ontwikkelaars hebben de mogelijkheid om op te geven welke versie van het model voor gezichtsherkenning ze willen gebruiken; ze kunnen het model kiezen dat het beste past bij hun gebruikscase.

Er zijn vier herkenningsmodellen beschikbaar voor de Azure Face-service. De modellen recognition_01 (gepubliceerd in 2017), recognition_02 (gepubliceerd 2019) en recognition_03 (gepubliceerd in 2020) worden voortdurend ondersteund om achterwaartse compatibiliteit te garanderen voor klanten die FaceLists of PersonGroups gebruiken die met deze modellen zijn gemaakt. Een FaceList of Persongroup gebruikt altijd het herkenningsmodel dat ermee is gemaakt en er worden nieuwe gezichten aan dit model gekoppeld wanneer ze worden toegevoegd. Dit kan niet worden gewijzigd na het maken en klanten moeten het bijbehorende herkenningsmodel gebruiken met de bijbehorende FaceList of PersonGroup.

U kunt op uw eigen gemak naar latere herkenningsmodellen gaan; U moet echter nieuwe FaceLists en PersonGroups maken met het herkenningsmodel van uw keuze.

Het recognition_04 model (gepubliceerd in 2021) is het meest nauwkeurige model dat momenteel beschikbaar is. Als u een nieuwe klant bent, raden we u aan dit model te gebruiken. Recognition_04 biedt verbeterde nauwkeurigheid voor vergelijkingen van overeenkomsten en vergelijkingen met personen. Recognition_04 verbetert de herkenning voor geregistreerde gebruikers die gezichtsdekens dragen (maskers, N95-maskers, maskers). U kunt nu veilige en naadloze gebruikerservaringen bouwen die gebruikmaken van het meest recente detection_03-model om te detecteren of een ingeschreven gebruiker een gezichtsdekking draagt en vervolgens te herkennen wie ze zijn met het meest recente recognition_04-model. Houd er rekening mee dat elk model onafhankelijk van de andere modellen werkt en dat een betrouwbaarheidsdrempel die is ingesteld voor het ene model niet is bedoeld om te worden vergeleken met de andere herkenningsmodellen.

Lees verder voor meer informatie over het opgeven van een geselecteerd model in verschillende Face-bewerkingen terwijl u modelconflicten vermijdt. Als u een ervaren gebruiker bent en wilt bepalen of u moet overschakelen naar het meest recente model, gaat u naar de sectie Verschillende modellen evalueren om het nieuwe model te evalueren en de resultaten te vergelijken met behulp van uw huidige gegevensset.

Vereisten

U moet bekend zijn met de concepten van ai-gezichtsdetectie en -identificatie. Als u dat niet bent, bekijkt u eerst deze handleidingen:

Gezichten met opgegeven model detecteren

Gezichtsdetectie identificeert de visuele oriëntatiepunten van menselijke gezichten en zoekt de locaties van het begrenzesvak. Het extraheert ook de kenmerken van het gezicht en slaat deze op voor identificatie. Al deze informatie vormt de weergave van één gezicht.

Het herkenningsmodel wordt gebruikt wanneer de gezichtsfuncties worden geëxtraheerd, zodat u een modelversie kunt opgeven bij het uitvoeren van de detectiebewerking.

Wanneer u de [API Face - Detecteren] gebruikt, wijst u de modelversie toe met de parameter recognitionModel . De beschikbare waarden zijn:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

Desgewenst kunt u de parameter returnRecognitionModel (standaard onwaar) opgeven om aan te geven of recognitionModel als antwoord moet worden geretourneerd. Een aanvraag-URL voor de [face- REST API] ziet er als volgende uit:

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

Als u de clientbibliotheek gebruikt, kunt u de waarde voor toewijzen door een tekenreeks door te geven recognitionModel die de versie vertegenwoordigt. Als u deze niet-toegewezen laat, wordt een standaardmodelversie van recognition_01 gebruikt. Zie het volgende codevoorbeeld voor de .NET-clientbibliotheek.

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);

Gezichten met opgegeven model identificeren

De Face-service kan gezichtsgegevens extraheren uit een afbeelding en deze koppelen aan een Person-object (bijvoorbeeld via de aanroep Face-API toevoegen), en meerdere Person-objecten kunnen samen worden opgeslagen in een PersonGroup. Vervolgens kan een nieuw gezicht worden vergeleken met een PersonGroup (met de aanroep [Gezicht -] Identificeren), waarna de overeenkomende persoon binnen die groep kan worden geïdentificeerd.

Een PersonGroup moet één uniek herkenningsmodel hebben voor alle Person's en u kunt dit opgeven met behulp van de parameter wanneer u de groep maakt ( recognitionModel PersonGroup - Create of [LargePersonGroup - Create).] Als u deze parameter niet opgeeft, wordt het oorspronkelijke recognition_01 model gebruikt. Een groep gebruikt altijd het herkenningsmodel dat ermee is gemaakt en er worden nieuwe gezichten aan dit model gekoppeld wanneer ze eraan worden toegevoegd; dit kan niet worden gewijzigd nadat een groep is gemaakt. Als u wilt zien met welk model een PersonGroup is geconfigureerd, gebruikt u de API PersonGroup - Get met de parameter returnRecognitionModel ingesteld als true.

Zie het volgende codevoorbeeld voor de .NET-clientbibliotheek.

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

In deze code wordt een PersonGroup met id gemaakt en deze is ingesteld voor het gebruik van het recognition_04 om gezichtskenmerken mypersongroupid te extraheren.

Overeenkomstig moet u opgeven welk model moet worden gebruikt bij het detecteren van gezichten om te vergelijken met deze PersonGroup (via de [FACE - Detect-API).] Het model dat u gebruikt, moet altijd consistent zijn met de configuratie van de PersonGroup; anders mislukt de bewerking vanwege niet-compatibele modellen.

Er is geen wijziging in de [API Face - Identificeren;] u hoeft alleen de modelversie in detectie op te geven.

Vergelijkbare gezichten zoeken met het opgegeven model

U kunt ook een herkenningsmodel opgeven voor zoeken naar overeenkomsten. U kunt de modelversie toewijzen met recognitionModel bij het maken van de FaceList met [FaceList - API] maken of [LargeFaceList - Maken.] Als u deze parameter niet opgeeft, wordt recognition_01 het model standaard gebruikt. Een FaceList gebruikt altijd het herkenningsmodel dat ermee is gemaakt en er worden nieuwe gezichten aan dit model gekoppeld wanneer ze aan de lijst worden toegevoegd; u kunt dit na het maken niet meer wijzigen. Als u wilt zien met welk model een FaceList is geconfigureerd, gebruikt u de parameter FaceList - GET API met de parameter returnRecognitionModel ingesteld op true.

Zie het volgende codevoorbeeld voor de .NET-clientbibliotheek.

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

Met deze code maakt u een FaceList met de My face collection naam , met behulp van recognition_04 model voor functie-extractie. Wanneer u in deze FaceList zoekt naar vergelijkbare gezichten als een nieuw gedetecteerd gezicht, moet dat gezicht zijn gedetecteerd [(Face - Detecteren)]met behulp van het recognition_04-model. Net als in de vorige sectie moet het model consistent zijn.

Er is geen wijziging in de [Face - Vergelijkbare] API zoeken; u geeft alleen de modelversie op bij detectie.

Gezichten met opgegeven model verifiëren

De [API Face : controleert] of twee gezichten tot dezelfde persoon behoren. Er is geen wijziging in de Verificatie-API met betrekking tot herkenningsmodellen, maar u kunt alleen gezichten vergelijken die met hetzelfde model zijn gedetecteerd.

Verschillende modellen evalueren

Als u de prestaties van verschillende herkenningsmodellen op uw eigen gegevens wilt vergelijken, moet u het volgende doen:

  1. Maak vier PersonGroups met recognition_01, recognition_02, recognition_03 en recognition_04.
  2. Gebruik uw afbeeldingsgegevens om gezichten te detecteren en deze te registreren bij Person s binnen deze vier PersonGroup-s.
  3. Train uw PersonGroups met behulp van de API PersonGroup - Trainen.
  4. Testen met Face: identificeer op alle vier persongroups en vergelijk de resultaten.

Als u normaal gesproken een betrouwbaarheidsdrempel opgeeft (een waarde tussen nul en één die bepaalt hoe zeker het model moet zijn om een gezicht te identificeren), moet u mogelijk verschillende drempelwaarden gebruiken voor verschillende modellen. Een drempelwaarde voor het ene model is niet bedoeld om te worden gedeeld met een ander model en leidt niet noodzakelijkerwijs tot dezelfde resultaten.

Volgende stappen

In dit artikel hebt u geleerd hoe u het herkenningsmodel opgeeft dat moet worden gebruikt met verschillende API's van de Face-service. Volg vervolgens een quickstart om aan de slag te gaan met gezichtsdetectie.