Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dikkat
Yüz tanıma hizmeti erişimi, Sorumlu yapay zeka ilkelerimizi desteklemek için uygunluk ve kullanım ölçütlerine göre sınırlıdır. Yüz tanıma hizmeti yalnızca Microsoft tarafından yönetilen müşteriler ve iş ortakları tarafından kullanılabilir. Erişim için başvurmak için Yüz Tanıma giriş formunu kullanın. Daha fazla bilgi için Yüz sınırlı erişim sayfasına bakın.
Benzerini Bul işlemi, hedef yüz ile bir dizi aday yüz arasında bir eşleştirme yapar ve hedef yüze benzer daha küçük bir yüz grubunu bulur. Bu, görüntüye göre yüz araması yapmak için kullanışlıdır.
Bu kılavuzda, farklı dil SDK'larında Benzerini Bul özelliğinin nasıl kullanılacağı gösterilmektedir. Aşağıdaki örnek kodda, bir Yüz Tanıma istemci nesnesinin kimliğini zaten doğruladığınız varsayılır. Bunun nasıl yapılacağının ayrıntıları için hızlı başlangıç rehberini izleyin.
Karşılaştırma için yüzleri algılama
Bunları karşılaştırmadan önce görüntülerdeki yüzleri algılamanız gerekir. Bu kılavuzda, kaynak olarak findsimilar.jpg adlı aşağıdaki uzak görüntü kullanılacaktır:
Bu kılavuz, URL tarafından erişilen uzak görüntüleri kullanır. Temel URL dizesine bir referans kaydedin. Bu kılavuzda erişilen tüm görüntüler bu URL yolunda bulunur.
string baseUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/";
Aşağıdaki yüz algılama yöntemi karşılaştırma işlemleri için iyileştirilmiştir. Ayrıntılı yüz özniteliklerini ayıklamaz ve iyileştirilmiş bir tanıma modeli kullanır.
private static async Task<List<FaceDetectionResult>> DetectFaceRecognize(FaceClient faceClient, string url)
{
// Detect faces from image URL.
var response = await faceClient.DetectAsync(new Uri(url), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, true, [FaceAttributeType.QualityForRecognition]);
IReadOnlyList<FaceDetectionResult> detectedFaces = response.Value;
List<FaceDetectionResult> sufficientQualityFaces = new List<FaceDetectionResult>();
foreach (FaceDetectionResult detectedFace in detectedFaces)
{
QualityForRecognition? faceQualityForRecognition = detectedFace.FaceAttributes.QualityForRecognition;
if (faceQualityForRecognition.HasValue && (faceQualityForRecognition.Value != QualityForRecognition.Low))
{
sufficientQualityFaces.Add(detectedFace);
}
}
Console.WriteLine($"{detectedFaces.Count} face(s) with {sufficientQualityFaces.Count} having sufficient quality for recognition detected from image `{Path.GetFileName(url)}`");
return sufficientQualityFaces;
}
Aşağıdaki kod, bir dizi görüntüden yüz verilerini almak için yukarıdaki yöntemi kullanır.
Console.WriteLine("========FIND SIMILAR========");
Console.WriteLine();
List<string> targetImageFileNames = new List<string>
{
"Family1-Dad1.jpg",
"Family1-Daughter1.jpg",
"Family1-Mom1.jpg",
"Family1-Son1.jpg",
"Family2-Lady1.jpg",
"Family2-Man1.jpg",
"Family3-Lady1.jpg",
"Family3-Man1.jpg"
};
string sourceImageFileName = "findsimilar.jpg";
List<Guid> targetFaceIds = new List<Guid>();
foreach (string targetImageFileName in targetImageFileNames)
{
// Detect faces from target image url.
List<FaceDetectionResult> faces = await DetectFaceRecognize(client, $"{baseUrl}{targetImageFileName}");
// Add detected faceId to list of GUIDs.
targetFaceIds.Add(faces[0].FaceId.Value);
}
// Detect faces from source image url.
List<FaceDetectionResult> detectedFaces = await DetectFaceRecognize(client, $"{baseUrl}{sourceImageFileName}");
Console.WriteLine();
Eşleşmeleri bulma ve yazdırma
Bu kılavuzda, Family1-Dad1.jpg görüntüde algılanan yüz, kaynak görüntü yüzüne benzer bir yüz olarak döndürülmelidir.
Aşağıdaki kod, kaydedilen yüz listesinde Benzerini Bul API'sini çağırır.
// Find a similar face(s) in the list of IDs. Comapring only the first in list for testing purposes.
var response = await client.FindSimilarAsync(detectedFaces[0].FaceId.Value, targetFaceIds);
List<FaceFindSimilarResult> similarResults = response.Value.ToList();
Aşağıdaki kod, eşleşme ayrıntılarını konsola yazdırır:
foreach (FaceFindSimilarResult similarResult in similarResults)
{
Console.WriteLine($"Faces from {sourceImageFileName} & ID:{similarResult.FaceId} are similar with confidence: {similarResult.Confidence}.");
}
Console.WriteLine();
Sonraki adım
Bu kılavuzda, daha büyük bir yüz grubundaki benzerliğe göre yüz araması yapmak için Benzerini Bul API'sini çağırmayı öğrendiniz. Ardından yüz karşılaştırma işlemleri için kullanılabilen farklı tanıma modelleri hakkında daha fazla bilgi edinin.