Freigeben über


Angeben eines Gesichtserkennungsmodells

Achtung

Der Zugriff auf den Gesichtserkennungsdienst ist auf der Grundlage von Berechtigungs- und Nutzungskriterien begrenzt, um unsere Prinzipien für verantwortungsvolle KI zu unterstützen. Der Gesichtserkennungsdienst ist nur für von Microsoft verwaltete Kunden und Partner verfügbar. Verwenden Sie das Aufnahmeformular für die Gesichtserkennung, um sich für den Zugriff zu bewerben. Weitere Informationen finden Sie auf der Seite Eingeschränkter Zugriff auf die Gesichtserkennung.

In diesem Leitfaden erfahren Sie, wie Sie ein Gesichtserkennungsmodell für die Gesichtserkennung, Identifizierung und Ähnlichkeitssuche mit dem Azure KI-Gesichtserkennungsdienst angeben.

Der Gesichtserkennungsdienst nutzt Machine Learning-Modelle für Vorgänge mit sichtbaren menschlichen Gesichter in Bildern. Wir verbessern die Genauigkeit unserer Modelle auf der Grundlage von Kundenfeedback und Forschungsergebnissen kontinuierlich, und wir stellen diese Verbesserungen als Modellaktualisierungen zur Verfügung. Entwickler*innen können angeben, welche Version des Gesichtserkennungsmodells sie verwenden möchten. Sie können das Modell auswählen, das am besten zu ihrem Anwendungsfall passt.

Modellkompatibilität

Für den Azure KI-Gesichtserkennungsdienst sind vier Erkennungsmodelle verfügbar. Die Modelle recognition_01 (2017 veröffentlicht), recognition_02 (2019 veröffentlicht) und recognition_03 (2020 veröffentlicht) werden fortlaufend unterstützt, um Abwärtskompatibilität für Kund*innen sicherzustellen, die Gesichterlisten (FaceLists) oder Personengruppen (PersonGroups) verwenden, die mit diesen Modellen erstellt wurden. Für eine Gesichtsliste oder Personengruppe wird immer das Erkennungsmodell verwendet, mit dem sie erstellt wurde, und neue Gesichter werden diesem Modell beim Hinzufügen zugeordnet. Dies kann nach der Erstellung nicht mehr geändert werden, und Kundschaft muss das jeweilige Erkennungsmodell zusammen mit der entsprechenden Gesichtsliste oder Personengruppe verwenden.

Sie können jederzeit nach Wunsch zu späteren Erkennungsmodellen wechseln; allerdings müssen Sie neue Gesichtslisten und Personengruppen mit dem Erkennungsmodell Ihrer Wahl erstellen.

Das Modell recognition_04 (2021 veröffentlicht) ist das genaueste derzeit verfügbare Modell. Wenn Sie Neukunde sind, empfehlen wir die Verwendung dieses Modells. recognition_04 bietet eine höhere Genauigkeit sowohl bei Ähnlichkeitsvergleichen als auch bei Vergleichen zur Personenzuordnung. recognition_04 verbessert die Erkennung für registrierte Benutzer, die eine Mund-Nasen-Bedeckung (OP-Masken, N95-Masken, Stoffmasken) tragen. Sie können nun sichere und nahtlose Benutzerumgebungen erstellen, in denen mithilfe des neuesten Modells detection_03 ermittelt wird, ob ein registrierter Benutzer eine Mund-Nasen-Bedeckung trägt. Anschließend können Sie das neueste recognition_04-Modell verwenden, um ihre Identität zu erkennen. Beachten Sie, dass jedes Modell unabhängig von den anderen arbeitet und dass ein Übereinstimmungsschwellenwert, der für ein Modell festgelegt wurde, nicht mit Werten in den anderen Erkennungsmodellen verglichen werden kann.

Im Folgenden erfahren Sie, wie Sie in verschiedenen Vorgängen zur Gesichtserkennung ein ausgewähltes Modell angeben und dabei Modellkonflikte vermeiden. Wenn Sie ein fortgeschrittener Benutzer sind und bestimmen möchten, ob ein Wechsel zum neuesten Modell sinnvoll ist, gehen Sie zum Abschnitt Auswerten verschiedener Modelle. Sie können das neue Modell testen und die Ergebnisse mit Ihrem aktuellen Dataset vergleichen.

Voraussetzungen

Sie sollten mit den Konzepten der KI-Gesichtserkennung und -identifikation vertraut sein. Wenn dies nicht der Fall ist, lesen Sie zuerst die folgenden Anleitungen:

Erkennen von Gesichtern mit dem angegebenen Modell

Die Gesichtserkennung identifiziert die besonderen visuellen Merkmale von menschlichen Gesichtern und findet deren Positionen im Begrenzungsrahmen. Zudem werden die Gesichtsmerkmale extrahiert und bis zu 24 Stunden lang für die Identifikation gespeichert. Alle diese Informationen bilden die Darstellung eines Gesichts.

Das Erkennungsmodell wird beim Extrahieren der Gesichtsmerkmale verwendet, sodass Sie bei der Ausführung des Erkennungsvorgangs eine Modellversion angeben können.

Wenn Sie die API Detect verwenden, weisen Sie die Modellversion mit dem Parameter recognitionModel zu. Die verfügbaren Werte sind:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

Optional können Sie den Parameter returnRecognitionModel (Standardwert false) angeben, um festzulegen, ob recognitionModel als Antwort zurückgegeben werden soll. Eine Anforderungs-URL für die REST-API Detect sieht also 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 für recognitionModel zuweisen, indem Sie eine Zeichenfolge übergeben, die die Version darstellt. Wenn Sie diesen Wert nicht zuweisen, wird die Standardmodellversion recognition_01 verwendet. Nachfolgend ist ein Codebeispiel für die .NET-Clientbibliothek aufgeführt.

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 festgelegt werden, um die Gesichtserkennungsszenarien in späteren Schritten zu aktivieren.

Identifizieren von Gesichtern mit dem angegebenen Modell

Der Gesichtserkennungsdienst kann Gesichtsdaten aus einem Bild extrahieren und sie mit einem Person-Objekt verknüpfen (z. B. über den Aufruf der API Add Person Group Person Face). Mehrere Person-Objekte können zusammen in einem PersonGroup-Objekt gespeichert werden. Dann kann ein neues Gesicht mit einem PersonGroup-Objekt (mit dem Aufruf Identify From Person Group) verglichen und die entsprechende Person innerhalb dieser Gruppe identifiziert werden.

Ein PersonGroup-Objekt sollte ein eindeutiges Erkennungsmodell für alle Person-Objekte aufweisen, und Sie können dies mit dem Parameter recognitionModel beim Erstellen der Gruppe (Create Person Group oder Create Large Person Group) angeben. Wenn Sie diesen Parameter nicht angeben, wird das ursprüngliche recognition_01-Modell verwendet. Für eine Gruppe wird immer das Erkennungsmodell verwendet, mit dem sie erstellt wurde, und neue Gesichter werden diesem Modell beim Hinzufügen zugeordnet. Dies kann nach der Erstellung einer Gruppe nicht mehr geändert werden. Verwenden Sie die API Get Person Group mit dem Parameter returnRecognitionModel, der auf true festgelegt ist, um festzustellen, mit welchem Modell ein PersonGroup-Objekt konfiguriert ist.

Betrachten Sie das folgende .NET-Codebeispiel.

// 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 ein PersonGroup-Objekt mit der ID mypersongroupid erstellt, das so eingerichtet ist, dass es das Modell recognition_04 zum Extrahieren von Gesichtsmerkmalen verwendet.

Dementsprechend müssen Sie angeben, welches Modell bei der Gesichtserkennung verwendet werden soll, um es mit diesem PersonGroup-Objekt zu vergleichen (über die API Detect). Das von Ihnen verwendete Modell sollte immer mit der Konfiguration des PersonGroup-Objekts übereinstimmen, da bei der Operation andernfalls aufgrund inkompatibler Modelle Fehler auftreten können.

Es gibt keine Änderung bei der API Identify From Person Group. Sie müssen nur die Modellversion bei 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 des FaceList -Objekts mit der API Create Face List oder Create Large Face List zuweisen. Wenn Sie diesen Parameter nicht angeben, wird standardmäßig das Modell recognition_01 verwendet. Eine FaceList verwendet immer das Erkennungsmodell, mit dem sie erstellt wurde, und neue Gesichter werden diesem Modell beim Hinzufügen zur Liste zugeordnet. Dies kann nach der Erstellung nicht mehr geändert werden. Verwenden Sie die API Get Face List mit dem Parameter returnRecognitionModel, der auf true festgelegt ist, um festzustellen, mit welchem Modell ein FaceList-Objekt konfiguriert ist.

Betrachten Sie das folgende .NET-Codebeispiel.

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, die das Modell recognition_04 zum Extrahieren von Merkmalen verwendet. Wenn Sie diese FaceList für ein neu erkanntes Gesicht nach ähnlichen Gesichtern durchsuchen, dann muss dieses Gesicht mit dem Modell recognition_04 erkannt worden sein (Detect). Wie im vorherigen Abschnitt muss das Modell konsistent sein.

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

Überprüfen von Gesichtern mit dem angegebenen Modell

Die API Verify Face To Face prüft, ob zwei Gesichter zu derselben Person gehören. Hinsichtlich der Erkennungsmodelle gibt es keine Änderung bei der Verify-API, aber Sie können nur Gesichter vergleichen, die mit demselben Modell erkannt wurden.

Auswerten unterschiedlicher Modelle

Wenn Sie die Leistungen verschiedener Erkennungsmodelle mit Ihren eigenen Daten vergleichen möchten, müssen Sie wie folgt vorgehen:

  1. Erstellen Sie vier Personengruppen, für die Sie recognition_01, recognition_02, recognition_03 bzw. recognition_04 verwenden.
  2. Verwenden Sie Ihre Bilddaten, um Gesichter zu erkennen und sie für Personen innerhalb dieser vier Personengruppen zu registrieren.
  3. Trainieren Sie Ihr PersonGroup-Objekt mithilfe der API Trainieren Person Group.
  4. Testen Sie mit Identify From Person Group alle diese vier PersonGroup-Objekte, und vergleichen Sie die Ergebnisse.

Wenn Sie normalerweise einen Übereinstimmungsschwellenwert angeben (ein Wert zwischen Null und Eins, der bestimmt, wie sicher das Modell sein muss, um ein Gesicht zu identifizieren), müssen Sie möglicherweise verschiedene Schwellenwerte für unterschiedlichen Modelle verwenden. Ein Schwellenwert für ein Modell ist nicht dazu vorgesehen, mit einem anderen geteilt zu werden und führt nicht unbedingt zu denselben Ergebnissen.

Nächste Schritte

In diesem Artikel haben Sie gelernt, wie Sie das Erkennungsmodell für die Verwendung mit verschiedenen APIs für den Gesichtserkennungsdienst festlegen. Durchlaufen Sie als Nächstes eine Schnellstartanleitung zu den ersten Schritten mit der Gesichtserkennung.