Aracılığıyla paylaş


Yüz algılama modeli belirtme

Bu kılavuzda, Azure AI Yüz Tanıma hizmeti için yüz algılama modeli belirtme adımları gösterilmektedir.

Yüz Tanıma hizmeti, görüntülerdeki insan yüzleri üzerinde işlemler gerçekleştirmek için makine öğrenmesi modellerini kullanır. Müşteri geri bildirimlerine ve araştırmalardaki ilerlemelere dayanarak modellerimizin doğruluğunu geliştirmeye devam ediyoruz ve bu iyileştirmeleri model güncelleştirmeleri olarak sunacağız. Geliştiriciler yüz algılama modelinin hangi sürümünü kullanmak istediklerini belirtebilir; kullanım örneğine en uygun modeli seçebilirler.

Belirli yüz tanıma işlemlerinde yüz algılama modelini belirtmeyi öğrenmek için okumaya devam edin. Yüz Tanıma hizmeti, bir yüzün görüntüsünü başka bir veri biçimine dönüştürdüğünde yüz algılamayı kullanır.

En son modeli kullanmanız gerekip gerekmediğinden emin değilseniz, yeni modeli değerlendirmek ve geçerli veri kümenizi kullanarak sonuçları karşılaştırmak için Farklı modelleri değerlendir bölümüne atlayın.

Önkoşullar

Yapay zeka yüz algılama kavramı hakkında bilgi sahibi olmanız gerekir. Değilseniz yüz algılama kavramsal kılavuzuna veya nasıl yapılır kılavuzuna bakın:

Farklı modelleri değerlendirme

Farklı yüz algılama modelleri farklı görevler için iyileştirilmiştir. Farklılıklara genel bakış için aşağıdaki tabloya bakın.

Model Açıklama Performans notları Ünlü yapıtlar
detection_01 Tüm yüz algılama işlemleri için varsayılan seçenek. Küçük, yan görünümlü veya bulanık yüzler için iyileştirilmemiş. Algılama çağrısında belirtilirse yüz yer işaretlerini döndürür.
detection_02 Mayıs 2019'da yayımlanan ve isteğe bağlı olarak tüm yüz algılama işlemlerinde kullanılabilir. Küçük, yan görünüm ve bulanık yüzlerde geliştirilmiş doğruluk. Yüz işaretlerini döndürmez.
detection_03 Şubat 2021'de yayımlandı ve isteğe bağlı olarak tüm yüz algılama işlemlerinde kullanılabilir. Daha küçük yüzler (64x64 piksel) ve döndürülmüş yüz yönlendirmeleri de dahil olmak üzere daha fazla geliştirilmiş doğruluk. Algılama çağrısında belirtilirse yüz yer işaretlerini döndürür.

Öznitelikler, algılama çağrısında belirtilirse isteğe bağlı olarak algılanabilir özellikler kümesidir:

Model Aksesuar -lar Bulanıklaştır teşhir gözlük headPose maske gürültü Tıkanık -lığı qualityForRecognition
detection_01 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ (recognition_03 veya 04 için)
detection_02
detection_03 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ (recognition_03 veya 04 için)

Algılama modellerinin performanslarını karşılaştırmanın en iyi yolu bunları örnek bir veri kümesinde kullanmaktır. Algılama API'sini çeşitli görüntülerde, özellikle de her algılama modelini kullanarak birçok yüz veya görülmesi zor olan yüzlerin görüntüleri üzerinde çağırmanızı öneririz. Her modelin döndürdüğü yüz sayısına dikkat edin.

Belirtilen modele sahip yüzleri algılama

Yüz algılama, insan yüzlerinin sınırlayıcı kutu konumlarını bulur ve görsel yer işaretlerini tanımlar. Yüzün özelliklerini ayıklar ve daha sonra tanıma işlemlerinde kullanmak üzere depolar.

Algılama API'sini kullandığınızda, model sürümünü parametresiyle detectionModel atayabilirsiniz. Kullanılabilir değerler şunlardır:

  • detection_01
  • detection_02
  • detection_03

Detect REST API için istek URL'si şöyle görünür:

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

İstemci kitaplığını kullanıyorsanız, uygun bir dize geçirerek değerini detectionModel atayabilirsiniz. Atanmamış olarak bırakırsanız, API varsayılan model sürümünü (detection_01 ) kullanır. .NET istemci kitaplığı için aşağıdaki kod örneğine bakın.

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;

Belirtilen modele sahip kişiye yüz ekleme

Yüz Tanıma hizmeti, Bir görüntüdeki yüz verilerini ayıklayabilir ve Kişi Grubu Kişi Yüz Tanıma API'si aracılığıyla bir Kişi nesnesiyle ilişkilendirebilir. Bu API çağrısında algılama modelini Algıla'dakiyle aynı şekilde belirtebilirsiniz.

Aşağıdaki .NET kod örneğine bakın.

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

Bu kod, kimliği olan bir PersonGroup oluşturur ve buna bir Kişi ekler.mypersongroupid Ardından modeli kullanarak detection_03 bu Kişiye bir Yüz ekler. detectionModel parametresini belirtmezseniz, API varsayılan modeli detection_01olan kullanır.

Not

Bir Kişi nesnesindeki tüm yüzler için aynı algılama modelini kullanmanız gerekmez ve bir Kişi nesnesiyle karşılaştırmak için yeni yüzleri algılarken aynı algılama modelini kullanmanız gerekmez (örneğin, Kişi Grubundan Tanımlama API'sinde).

Belirtilen modelle FaceList'e yüz ekleme

Ayrıca, var olan bir FaceList nesnesine yüz eklediğinizde bir algılama modeli de belirtebilirsiniz. Aşağıdaki .NET kod örneğine bakın.

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

Bu kod adlı My face collection bir FaceList oluşturur ve modelle buna detection_03 bir Yüz Ekler. detectionModel parametresini belirtmezseniz, API varsayılan modeli detection_01olan kullanır.

Not

Bir FaceList nesnesindeki tüm yüzler için aynı algılama modelini kullanmanız gerekmez ve bir FaceList nesnesiyle karşılaştırmak için yeni yüzleri algılarken aynı algılama modelini kullanmanız gerekmez.

Sonraki adımlar

Bu makalede, farklı Yüz Tanıma API'leriyle kullanılacak algılama modelini belirtmeyi öğrendiniz. Ardından, yüz algılama ve analize başlamak için hızlı başlangıcı izleyin.