Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie ein Gesichtserkennungsmodell für den Azure AI Face-Dienst angeben.
Der Gesichtserkennungsdienst nutzt Machine Learning-Modelle für Vorgänge mit 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. Sie können angeben, welche Version des Gesichtserkennungsmodells Sie verwenden möchten. Wählen Sie das Modell aus, das am besten zu Ihrem Anwendungsfall passt. Im Folgenden erfahren Sie, wie Sie in bestimmten Gesichtserkennungsvorgängen das Gesichtserkennungsmodell angeben. Der Gesichtserkennungsdienst verwendet die Gesichtserkennung, sobald das Bild eines Gesichts in eine andere Datenform konvertiert wird.
Wenn Sie nicht sicher sind, ob Sie das neueste Modell verwenden sollten, lesen Sie den Abschnitt " Verschiedene Modelle auswerten ", um das neue Modell auszuwerten und Die Ergebnisse mithilfe Ihres aktuellen Datasets zu vergleichen.
Voraussetzungen
Sie sollten mit den Konzepten der KI-Gesichtserkennung vertraut sein. Wenn sie nicht sind, lesen Sie den konzeptionellen Leitfaden zur Gesichtserkennung oder Anleitungen:
Auswerten unterschiedlicher Modelle
Die verschiedenen Gesichtserkennungsmodelle wurden für unterschiedliche Aufgaben optimiert. In der folgenden Tabelle sind die Unterschiede übersichtlich dargestellt.
| Modell | Beschreibung | Leistungshinweise | Sehenswürdigkeiten |
|---|---|---|---|
| detection_01 | Standardauswahl für alle Gesichtserkennungsvorgänge. | Nicht optimiert für kleine oder unscharfe Gesichter bzw. Gesichter in der Profilansicht. | Gibt Sehenswürdigkeiten im Gesicht zurück, wenn Sie sie im Erkennungsaufruf angeben. |
| detection_02 | Im Mai 2019 veröffentlich und optional in allen Gesichtserkennungsvorgängen verfügbar. | Verbesserte Genauigkeit bei kleinen oder unscharfen Gesichtern bzw. Gesichtern in der Profilansicht. | Gibt keine Orientierungspunkte im Gesicht zurück. |
| detection_03 | Im Februar 2021 veröffentlich und optional bei allen Gesichtserkennungsvorgängen verfügbar. | Weitere Verbesserung der Genauigkeit, auch bei kleineren Gesichtern (64 × 64 Pixel) und bei gedrehten Gesichtern. | Gibt Sehenswürdigkeiten im Gesicht zurück, wenn Sie sie im Erkennungsaufruf angeben. |
Attribute sind eine Reihe von Features, die Sie optional erkennen können, wenn Sie sie im Erkennungsaufruf angeben:
| Modell | Zubehör | Weichzeichnung | Belichtung | glasses (Brillen) | Kopfhaltung | mask | noise | occlusion | Erkennungsqualität |
|---|---|---|---|---|---|---|---|---|---|
| detection_01 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ (für Erkennung_03 oder 04) | |
| detection_02 | |||||||||
| detection_03 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ (für Erkennung_03 oder 04) |
Am besten lassen sich die Ergebnisse der Erkennungsmodelle anhand eines Beispieldatasets vergleichen. Rufen Sie die Erkennungs-API für eine Vielzahl von Bildern auf, insbesondere Bilder von vielen Gesichtern oder Gesichtern, die mit jedem Erkennungsmodell schwer zu erkennen sind. Achten Sie auf die Anzahl der Gesichter, die jedes Modell zurückgibt.
Erkennen von Gesichtern mit dem angegebenen Modell
Bei der Gesichtserkennung werden die Positionen von menschlichen Gesichtern im Begrenzungsrahmen gesucht und ihre besonderen visuellen Merkmale identifiziert. Dabei werden die Gesichtsmerkmale extrahiert und gespeichert, um sie später in Gesichtserkennungsvorgängen zu nutzen.
Bei Verwendung der API Erkennung können Sie die Modellversion mit dem Parameter detectionModel zuweisen. Die verfügbaren Werte sind:
detection_01detection_02detection_03
Eine Anforderungs-URL für die REST-API zur Erkennung sieht 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 detectionModel zuweisen, indem Sie eine entsprechende Zeichenfolge übergeben. Wenn Sie keinen Wert zuweisen, verwendet die API die Standardmodellversion (detection_01). 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: false, returnFaceLandmarks: false);
var faces = response.Value;
Hinzufügen eines Gesichts zu einem Person-Objekt mit einem angegebenen Modell
Der Gesichtserkennungsdienst kann Gesichtsdaten aus einem Bild extrahieren und über die API Personengruppe hinzufügen – Gesicht hinzufügen einem Person-Objekt zuordnen. In diesem API-Aufruf können Sie das Erkennungsmodell auf die gleiche Weise wie bei Erkennung angeben.
Betrachten Sie das folgende .NET-Codebeispiel.
// Create a PersonGroup and add a person with face detected by "detection_03" 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);
}
string? personId = null;
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Name" }))))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
using (var response = await httpClient.PostAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}/persons", content))
{
string contentString = await response.Content.ReadAsStringAsync();
personId = (string?)(JsonConvert.DeserializeObject<Dictionary<string, object>>(contentString)?["personId"]);
}
}
string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["url"] = imageUrl }))))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
await httpClient.PostAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}/persons/{personId}/persistedfaces?detectionModel=detection_03", content);
}
Mit diesem Code wird ein PersonGroup-Objekt mit der ID mypersongroupid erstellt. Anschließend wird dem Objekt ein Person-Objekt hinzugefügt. Danach wird diesem Person-Objekt unter Verwendung des Modells detection_03 ein Gesicht hinzugefügt. Wenn Sie den detectionModel-Parameter nicht angeben, verwendet die API das Standardmodell detection_01.
Hinweis
Sie müssen nicht dasselbe Erkennungsmodell für alle Gesichter in einem Person-Objekt verwenden. Es ist auch nicht erforderlich, dasselbe Erkennungsmodell bei der Erkennung neuer Gesichter zu verwenden, um diese mit einem Person-Objekt zu vergleichen (beispielsweise in der API Identifizieren aus Personengruppe).
Hinzufügen eines Gesichts zu einem FaceList-Objekt mit einem angegebenen Modell
Sie können auch ein Erkennungsmodell angeben, wenn Sie ein Gesicht einem vorhandenen FaceList-Objekt hinzufügen. 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);
}
string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["url"] = imageUrl }))))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
await httpClient.PostAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}/persistedfaces?detectionModel=detection_03", content);
}
Mit diesem Code wird eine FaceList namens "FaceList" erstellt My face collection und dem Modell ein detection_03 Gesicht hinzugefügt. Wenn Sie den detectionModel-Parameter nicht angeben, verwendet die API das Standardmodell detection_01.
Hinweis
Sie müssen nicht dasselbe Erkennungsmodell für alle Gesichter in einem FaceList-Objekt verwenden. Es ist auch nicht erforderlich, dasselbe Erkennungsmodell bei der Erkennung neuer Gesichter zu verwenden, um diese mit einem FaceList-Objekt zu vergleichen.
Nächster Schritt
In diesem Artikel haben Sie gelernt, wie Sie das Erkennungsmodell angeben, das für verschiedene Gesichtserkennungs-APIs verwendet werden soll. Durchlaufen Sie als Nächstes eine Schnellstartanleitung zu den ersten Schritten mit der Gesichtserkennung und der Analyse.