Angeben eines Gesichtserkennungsmodells

Vorsicht

Der Gesichtsdienstzugriff ist auf der Grundlage von Berechtigungs- und Nutzungskriterien begrenzt, um unsere verantwortungsbewussten KI-Prinzipien zu unterstützen. Face Service ist nur für Microsoft verwaltete Kunden und Partner verfügbar. Verwenden Sie das Face Recognition Aufnahmeformular, um Zugriff zu beantragen. Weitere Informationen finden Sie auf der Seite " Eingeschränkter Zugriff auf Face ".

In diesem Leitfaden erfahren Sie, wie Sie mithilfe des Azure-Gesichtserkennung-Diensts ein Gesichtserkennungsmodell für die Gesichtserkennung, Identifizierung und Ähnlichkeitssuche angeben.

Der Face-Dienst verwendet Machine Learning-Modelle, um Vorgänge auf sichtbaren menschlichen Gesichtern in Bildern auszuführen. Wir verbessern weiterhin die Genauigkeit unserer Modelle basierend auf Kundenfeedback und Fortschritten in der Forschung, und wir liefern diese Verbesserungen als Modellupdates. Entwickler können angeben, welche Version des Gesichtserkennungsmodells sie verwenden möchten, und das Modell auswählen, das am besten zu ihrem Anwendungsfall passt.

Voraussetzungen

Sie sollten mit den Konzepten der KI-Gesichtserkennung und -identifizierung vertraut sein. Wenn Sie noch nicht vorbereitet sind, lesen Sie zunächst diese Anleitungen:

Modellkompatibilität

Der Azure-Gesichtserkennung-Dienst verfügt über vier Erkennungsmodelle. Die Modelle recognition_01 (veröffentlicht 2017), recognition_02 (veröffentlicht 2019) und recognition_03 (veröffentlicht 2020) werden kontinuierlich unterstützt, um die Abwärtskompatibilität für Kunden sicherzustellen, die FaceLists oder PersonGroups mit diesen Modellen erstellt haben. Eine FaceList oder PersonGroup verwendet immer das Erkennungsmodell, mit dem sie erstellt wurde, und neue Gesichter werden diesem Modell zugeordnet, wenn sie hinzugefügt werden. Dies kann nach der Erstellung nicht geändert werden, und Kunden müssen das entsprechende Erkennungsmodell mit der entsprechenden FaceList oder PersonGroup verwenden.

Sie können zu späteren Erkennungsmodellen auf eigene Faust wechseln; Sie müssen jedoch neue FaceLists und PersonGroups mit dem Erkennungsmodell Ihrer Wahl erstellen.

Modellempfehlungen

Das recognition_04-Modell (veröffentlicht 2021) ist das aktuell genaueste Modell. Wenn Sie ein neuer Kunde sind, verwenden Sie dieses Modell. Recognition_04 bietet eine verbesserte Genauigkeit sowohl für Ähnlichkeitsvergleiche als auch für Vergleiche zwischen Personen. Recognition_04 verbessert die Erkennung für registrierte Benutzer, die Gesichtsdecken tragen (chirurgische Masken, N95 Masken, Tuchmasken). Sie können sichere und nahtlose Benutzeroberflächen erstellen, die das neueste detection_03-Modell verwenden, um zu erkennen, ob ein registrierter Benutzer eine Gesichtsabdeckung trägt, und dann das neueste recognition_04 Modell verwenden, um seine Identität zu erkennen. Jedes Modell funktioniert unabhängig von den anderen, und ein Konfidenzschwellenwert, der für ein Modell festgelegt ist, sollte nicht in den anderen Erkennungsmodellen verglichen werden.

In den folgenden Abschnitten wird erklärt, wie ein ausgewähltes Modell in verschiedenen Gesichtsvorgängen spezifiziert wird, während Modellkonflikte vermieden werden. Wenn Sie ein erweiterter Benutzer sind und ermitteln möchten, ob Sie zum neuesten Modell wechseln sollten, fahren Sie mit dem Abschnitt " Verschiedene Modelle auswerten " fort, um das neue Modell auszuwerten und Die Ergebnisse mithilfe Ihres aktuellen Datasets zu vergleichen.

Erkennen von Gesichtern mit angegebenem Modell

Die Gesichtserkennung identifiziert die visuellen Orientierungspunkte menschlicher Gesichter und findet ihre Begrenzungsfeldpositionen. Es extrahiert auch die Features des Gesichts und speichert sie vorübergehend für bis zu 24 Stunden für die Verwendung in der Identifizierung. Alle diese Informationen bilden die Darstellung eines Gesichtes.

Das Erkennungsmodell wird verwendet, wenn die Gesichtsfeatures extrahiert werden, sodass Sie beim Ausführen des Erkennungsvorgangs eine Modellversion angeben können.

Weisen Sie der Modellversion bei Verwendung der Erkennungs-API den recognitionModel Parameter zu. Die verfügbaren Werte sind:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

Optional können Sie den returnRecognitionModel-Parameter (Standard false) angeben, um anzugeben, ob recognitionModel als Antwort zurückgegeben werden soll. Daher sieht eine Anforderungs-URL für die Detect REST-API wie folgt aus:

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

Wenn Sie die Clientbibliothek verwenden, können Sie den Wert recognitionModel zuweisen, indem Sie eine Zeichenfolge übergeben, die die Version darstellt. Wenn Sie es nicht zuweisen, wird die Standardmodellversion recognition_01 verwendet. Sehen Sie sich das folgende Codebeispiel für die .NET-Clientbibliothek an.

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;

Hinweis

Der Parameter returnFaceId muss auf true gesetzt werden, um die Gesichtserkennungsszenarien in späteren Schritten zu aktivieren.

Identifizieren von Gesichtern mit dem angegebenen Modell

Der Face-Dienst kann Gesichtsdaten aus einem Bild extrahieren und sie einem Person-Objekt zuordnen (z. B. über den Aufruf der Add-Person-Group-Person-Face-API), und mehrere Personenobjekte können in einer PersonGroup zusammen gespeichert werden. Anschließend kann ein neues Gesicht mit einer PersonGroup (über den Aufruf "Personengruppe identifizieren") verglichen werden, und die entsprechende Person innerhalb dieser Gruppe kann identifiziert werden.

Eine PersonGroup sollte über ein eindeutiges Erkennungsmodell für alle Personenverfügen, und Sie können dies mithilfe des recognitionModel Parameters angeben, wenn Sie die Gruppe erstellen (Personengruppe erstellen oder große Personengruppe erstellen). Wenn Sie diesen Parameter nicht angeben, wird das ursprüngliche recognition_01 Modell verwendet. Eine Gruppe verwendet immer das Erkennungsmodell, mit dem sie erstellt wurde, und neue Gesichter werden diesem Modell zugeordnet, wenn sie dem Modell hinzugefügt werden. Dies kann nach der Erstellung einer Gruppe nicht geändert werden. Um zu sehen, mit welchem Modell eine PersonGroup konfiguriert ist, verwenden Sie die Get Person Group-API , wobei der parameter returnRecognitionModel auf "true" festgelegt ist.

Sehen Sie sich das folgende .NET Codebeispiel an.

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

In diesem Code wird eine PersonGroup mit ID mypersongroupid erstellt, und sie ist so eingerichtet, dass das recognition_04-Modell zum Extrahieren von Gesichtsfeatures verwendet wird.

Entsprechend müssen Sie angeben, welches Modell beim Erkennen von Gesichtern zum Vergleichen mit dieser PersonGroup (über die Erkennungs-API ) verwendet werden soll. Das verwendete Modell sollte immer mit der Konfiguration der PersonGroup konsistent sein; andernfalls schlägt der Vorgang aufgrund von inkompatiblen Modellen fehl.

Es gibt keine Änderung in der Identify From Person Group API; Sie müssen nur die Modellversion in der Erkennung angeben.

Suchen ähnlicher Gesichter mit dem angegebenen Modell

Sie können auch ein Erkennungsmodell für die Ähnlichkeitssuche angeben. Sie können die Modellversion mit recognitionModel beim Erstellen der FaceList mit der Create Face List API oder Create Large Face List zuweisen. Wenn Sie diesen Parameter nicht angeben, wird das recognition_01 Modell standardmäßig verwendet. Eine FaceList verwendet immer das Erkennungsmodell, mit dem es erstellt wurde, und neue Gesichter werden diesem Modell zugeordnet, wenn sie der Liste hinzugefügt werden. Sie können dies nach der Erstellung nicht mehr ändern. Um zu sehen, mit welchem Modell eine FaceList konfiguriert ist, verwenden Sie die Get Face List-API , wobei der parameter returnRecognitionModel auf "true" festgelegt ist.

Sehen Sie sich das folgende .NET Codebeispiel an.

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

Dieser Code erstellt eine FaceList namens My face collection und verwendet das Modell recognition_04 zur Merkmalextraktion. Wenn Sie diese FaceList nach ähnlichen Gesichtern mit einem neuen erkannten Gesicht durchsuchen, muss dieses Gesicht mithilfe des recognition_04-Modells erkannt (Erkennen) erkannt worden sein. Wie im vorherigen Abschnitt muss das Modell konsistent sein.

Es gibt keine Änderung in der Find Similar API; Sie geben nur die Modellversion bei der Erkennung an.

Überprüfen von Gesichtern mit dem angegebenen Modell

Die Verify Face To Face API überprüft, ob zwei Gesichter derselben Person angehören. Es gibt keine Änderung der Verify-API in Bezug auf Erkennungsmodelle, aber Sie können nur Gesichter vergleichen, die mit demselben Modell erkannt wurden.

Evaluierung verschiedener Modelle

Wenn Sie die Leistung verschiedener Erkennungsmodelle in Ihren eigenen Daten vergleichen möchten, müssen Sie:

  1. Erstellen Sie vier PersonGroupsmit recognition_01, recognition_02, recognition_03 und recognition_04 .
  2. Verwenden Sie Ihre Bilddaten, um Gesichter zu erkennen und sie innerhalb dieser vier PersonGroupsfür Personenzu registrieren.
  3. Schulen Sie Ihre PersonGroups mithilfe der Train Person Group API.
  4. Teste mit Identify From Person Group bei allen vier PersonGroups und vergleiche die Ergebnisse.

Wenn Sie normalerweise einen Konfidenzschwellenwert angeben (ein Wert zwischen Null und ein Wert, der bestimmt, wie sicher das Modell sein muss, um ein Gesicht zu identifizieren), müssen Sie möglicherweise unterschiedliche Schwellenwerte für verschiedene Modelle verwenden. Ein Schwellenwert für ein Modell soll nicht für ein anderes freigegeben werden und erzeugt nicht unbedingt dieselben Ergebnisse.

Nächster Schritt

In diesem Artikel haben Sie erfahren, wie Sie das Erkennungsmodell angeben, das mit verschiedenen Gesichtsdienst-APIs verwendet werden soll. Folgen Sie als Nächstes einer Schnellstartanleitung, um mit der Gesichtserkennung zu beginnen.