Erkennen und Analysieren von Gesichtern
Um die Azure Vision Face-API zu verwenden, müssen Sie eine Ressource für den Dienst in einem Azure-Abonnement bereitstellen. Sie können Face als Einzeldienstressource bereitstellen oder die Face-API in einer Ressource mit mehreren Diensten foundry Tools verwenden. die als eigenständige Ressource oder als Teil eines Microsoft Foundry-Projekts bereitgestellt werden können.
Um Ihre Ressource aus einer Clientanwendung zu verwenden, müssen Sie entweder über die schlüsselbasierte Authentifizierung oder die Microsoft Entra AI-Authentifizierung eine Verbindung mit seinem Endpunkt herstellen. Bei Verwendung der REST-Schnittstelle können Sie den Authentifizierungsschlüssel oder das Token im Anforderungsheader bereitstellen. Wenn Sie ein sprachspezifisches SDK (z. B. das Python azure-ai-vision-face-Paket oder das Microsoft .NET Azure.AI.Vision.Face-Paket ) verwenden, verwenden Sie ein FaceClient-Objekt , um eine Verbindung mit dem Dienst herzustellen.
from azure.ai.vision.face import FaceClient
from azure.ai.vision.face.models import *
from azure.core.credentials import AzureKeyCredential
face_client = FaceClient(
endpoint="<YOUR_RESOURCE_ENDPOINT>",
credential=AzureKeyCredential("<YOUR_RESOURCE_KEY>"))
using Azure;
using Azure.AI.Vision.Face;
FaceClient faceClient = new FaceClient(
new Uri("<YOUR_RESOURCE_ENDPOINT>"),
new AzureKeyCredential("<YOUR_RESOURCE_KEY>"));
Um Gesichter in einem Bild zu erkennen und zu analysieren, müssen Sie die modellspezifischen Features angeben, die der Dienst zurückgeben soll, und dann den Client verwenden, um die Detect-Methode aufzurufen.
# Specify facial features to be retrieved
features = [FaceAttributeTypeDetection01.HEAD_POSE,
FaceAttributeTypeDetection01.OCCLUSION,
FaceAttributeTypeDetection01.ACCESSORIES]
# Use client to detect faces in an image
with open("<IMAGE_FILE_PATH>", mode="rb") as image_data:
detected_faces = face_client.detect(
image_content=image_data.read(),
detection_model=FaceDetectionModel.DETECTION01,
recognition_model=FaceRecognitionModel.RECOGNITION01,
return_face_id=True,
return_face_attributes=features,
)
// Specify facial features to be retrieved
FaceAttributeType[] features = new FaceAttributeType[]
{
FaceAttributeType.Detection01.HeadPose,
FaceAttributeType.Detection01.Occlusion,
FaceAttributeType.Detection01.Accessories
};
// Use client to detect faces in an image
using (var imageData = File.OpenRead(imageFile))
{
var response = await faceClient.DetectAsync(
BinaryData.FromStream(imageData),
FaceDetectionModel.Detection01,
FaceRecognitionModel.Recognition01,
returnFaceId: false,
returnFaceAttributes: features);
IReadOnlyList<FaceDetectionResult> detected_faces = response.Value;
}
Die Antwort des Diensts hängt von folgenden Faktoren ab:
- Die angeforderten modellspezifischen Merkmale.
- Die Anzahl der im Bild erkannten Gesichter.
Eine Antwort auf ein Bild, das ein einzelnes Gesicht enthält, sieht möglicherweise ähnlich wie im folgenden Beispiel aus:
[
{
'faceRectangle': {'top': 174, 'left': 247, 'width': 246, 'height': 246}
'faceAttributes':
{
'headPose':{'pitch': 3.7, 'roll': -7.7, 'yaw': -20.9},
'accessories':
[
{'type': 'glasses', 'confidence': 1.0}
],
'occlusion':{'foreheadOccluded': False, 'eyeOccluded': False, 'mouthOccluded': False}
}
}
]