Yüz tanıma modeli belirtme

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.

Bu kılavuzda, Azure AI Yüz Tanıma hizmetini kullanarak yüz algılama, tanımlama ve benzerlik araması için yüz tanıma modeli belirtme adımları gösterilmektedir.

Yüz Tanıma hizmeti, görüntülerdeki görünür 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, kullanım örneğine en uygun modeli seçerek yüz tanıma modelinin hangi sürümünü kullanmak istediklerini belirtebilir.

Model uyumluluğu

Azure Yapay Zeka Yüz Tanıma hizmetinin dört tanıma modeli vardır. Recognition_01 (yayın tarihi 2017), recognition_02 (2019) ve recognition_03 (2020'de yayımlandı) modelleri, bu modellerle oluşturulan FaceLists veya PersonGroupkullanan müşteriler için geriye dönük uyumluluk sağlamak amacıyla sürekli desteklenmektedir. FaceList veya PersonGroup her zaman birlikte oluşturulduğu tanıma modelini kullanır ve yeni yüzler eklendiğinde bu modelle ilişkilendirildi. Bu, oluşturulduktan sonra değiştirilemez ve müşterilerin ilgili tanıma modelini ilgili FaceList veya PersonGroup ile kullanması gerekir.

Daha sonra tanıma modellerine kendi kendinize geçebilirsiniz; ancak, seçtiğiniz tanıma modeliyle yeni FaceLists ve PersonGroup'lar oluşturmanız gerekir.

recognition_04 modeli (2021'de yayımlandı) şu anda en doğru modeldir. Yeni bir müşteriyseniz bu modeli kullanmanızı öneririz. Recognition_04 hem benzerlik karşılaştırmaları hem de kişi eşleştirme karşılaştırmaları için geliştirilmiş doğruluk sağlar. Recognition_04 yüz kapağı takan kayıtlı kullanıcılar için tanımayı iyileştirir (cerrahi maskeler, N95 maskeler, bez maskeleri). Artık kayıtlı bir kullanıcının yüz kapağı takıp takmadığını algılamak için en son detection_03 modelini kullanan güvenli ve sorunsuz kullanıcı deneyimleri oluşturabilirsiniz. Ardından kimliklerini tanımak için en son recognition_04 modelini kullanabilirsiniz. Her model diğerlerinden bağımsız olarak çalışır ve bir model için ayarlanan güvenilirlik eşiğinin diğer tanıma modelleriyle karşılaştırılması amaçlanmamıştır.

Model çakışmalarını önlerken farklı Yüz Tanıma işlemlerinde seçili modeli belirtmeyi öğrenmek için okumaya devam edin. Gelişmiş bir kullanıcıysanız ve en son modele geçmeniz gerekip gerekmediğini belirlemek istiyorsanız Farklı modelleri değerlendirme bölümüne atlayın. Geçerli veri kümenizi kullanarak yeni modeli değerlendirebilir ve sonuçları karşılaştırabilirsiniz.

Önkoşullar

Yapay zeka yüz algılama ve tanımlama kavramları hakkında bilgi sahibi olmanız gerekir. Değilseniz, önce şu kılavuzlara bakın:

Belirtilen modele sahip yüzleri algılama

Yüz algılama, insan yüzlerinin görsel yer işaretlerini tanımlar ve sınırlayıcı kutu konumlarını bulur. Ayrıca yüzün özelliklerini ayıklar ve tanımlama için 24 saate kadar geçici olarak depolar. Bu bilgilerin tümü tek bir yüzün temsilini oluşturur.

Tanıma modeli, yüz özellikleri ayıklandığında kullanılır, böylece Detect işlemini gerçekleştirirken bir model sürümü belirtebilirsiniz.

Yüz Tanıma - Algılama API'sini kullanırken, model sürümünü parametresiyle atayınrecognitionModel. Kullanılabilir değerler şunlardır:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

İsteğe bağlı olarak, recognitionModel'in yanıt olarak döndürülmesi gerekip gerekmediğini belirtmek için returnRecognitionModel parametresini (varsayılan false) belirtebilirsiniz. Dolayısıyla Yüz Tanıma - REST API'sini Algıla için bir istek URL'si şöyle görünür:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes][&recognitionModel][&returnRecognitionModel]&subscription-key=<Subscription key>

İstemci kitaplığını kullanıyorsanız, sürümünü temsil eden bir dize geçirerek değerini recognitionModel atayabilirsiniz. Atanmamış olarak bırakırsanız, varsayılan model sürümü recognition_01 kullanılır. .NET istemci kitaplığı için aşağıdaki kod örneğine bakın.

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: true, returnFaceLandmarks: true, recognitionModel: "recognition_01", returnRecognitionModel: true);

Not

Sonraki adımlarda yüz tanıma senaryolarını etkinleştirmek için returnFaceId parametresi olarak ayarlanmalıdır true .

Belirtilen modele sahip yüzleri tanımlama

Yüz Tanıma hizmeti bir görüntüden yüz verilerini ayıklayabilir ve bir Kişi nesnesiyle ilişkilendirebilir (örneğin Yüz ekleme API'si çağrısı aracılığıyla) ve bir PersonGroup'ta birden çok Kişi nesnesi birlikte depolanabilir. Ardından, yeni bir yüz bir PersonGroup ile karşılaştırılabilir (Yüz - Tanımlama çağrısıyla) ve bu gruptaki eşleşen kişi tanımlanabilir.

Bir PersonGroup,tümKişileriçin benzersiz bir tanıma modeline sahip olmalıdır ve grubu oluştururken parametresini kullanarak recognitionModel bunu belirtebilirsiniz (PersonGroup - Create veya LargePersonGroup - Create). Bu parametreyi belirtmezseniz, özgün recognition_01 model kullanılır. Bir grup her zaman birlikte oluşturulduğu tanıma modelini kullanır ve yeni yüzler bu modele eklendiklerinde bu modelle ilişkilendirilecektir. Grup oluşturulduktan sonra bu değiştirilemez. Bir PersonGroup'un hangi modelle yapılandırıldığını görmek için, returnRecognitionModel parametresi true olarak ayarlanmış PersonGroup - Get API'sini kullanın.

.NET istemci kitaplığı için aşağıdaki kod örneğine bakın.

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

Bu kodda, kimliği mypersongroupid olan bir PersonGroup oluşturulur ve yüz özelliklerini ayıklamak için recognition_04 modelini kullanacak şekilde ayarlanır.

Buna karşılık, bu PersonGroup ile karşılaştırılacak yüzleri algılarken hangi modelin kullanılacağını belirtmeniz gerekir (Yüz Tanıma - Algılama API'si aracılığıyla). Kullandığınız model her zaman PersonGroup yapılandırmasıyla tutarlı olmalıdır; aksi takdirde uyumsuz modeller nedeniyle işlem başarısız olur.

Yüz Tanıma - Tanımlama API'sinde bir değişiklik yoktur; yalnızca algılamada model sürümünü belirtmeniz gerekir.

Belirtilen modele sahip benzer yüzleri bulma

Benzerlik araması için bir tanıma modeli de belirtebilirsiniz. FaceList - Create API veya LargeFaceList - Create ile FaceList oluştururken ile model sürümünü recognitionModel atayabilirsiniz. Bu parametreyi belirtmezseniz model recognition_01 varsayılan olarak kullanılır. FaceList her zaman birlikte oluşturulduğu tanıma modelini kullanır ve yeni yüzler listeye eklendiklerinde bu modelle ilişkilendirilecektir; oluşturma işleminden sonra bunu değiştiremezsiniz. Bir FaceList'in hangi modelle yapılandırıldığını görmek için returnRecognitionModel parametresi true olarak ayarlanmış FaceList - Get API'sini kullanın.

.NET istemci kitaplığı için aşağıdaki kod örneğine bakın.

await faceClient.FaceList.CreateAsync(faceListId, "My face collection", recognitionModel: "recognition_04");

Bu kod, özellik ayıklama için recognition_04 modelini kullanarak adlı My face collectionbir FaceList oluşturur. Bu FaceList'de algılanan yeni bir yüze benzer yüzler için arama yaptığınızda, bu yüzün recognition_04 modeli kullanılarak algılanmış olması gerekir (Yüz - Algılama). Önceki bölümde olduğu gibi modelin tutarlı olması gerekir.

Yüz Tanıma - Benzerini Bul API'sinde bir değişiklik yoktur; yalnızca model sürümünü algılamada belirtirsiniz.

Belirtilen modelle yüzleri doğrulama

Yüz - Doğrulama API'si, iki yüzün aynı kişiye ait olup olmadığını denetler. Tanıma modelleriyle ilgili doğrulama API'sinde değişiklik yoktur, ancak yalnızca aynı modelle algılanan yüzleri karşılaştırabilirsiniz.

Farklı modelleri değerlendirme

Farklı tanıma modellerinin performanslarını kendi verilerinizde karşılaştırmak isterseniz şunları yapmanız gerekir:

  1. Sırasıyla recognition_01, recognition_02, recognition_03 ve recognition_04 kullanarak dört PersonGroupoluşturun.
  2. Yüzleri algılamak ve bu dört PersonGroup'uniçindeki Kişiler'ekaydetmek için görüntü verilerinizi kullanın.
  3. PersonGroup- Train API'sini kullanarak PersonGroup'unuzu eğitin.
  4. Yüz Tanıma ile Test - Dört PersonGroup'unher birini belirleyin ve sonuçları karşılaştırın.

Normalde bir güvenilirlik eşiği (sıfır ile modelin bir yüzü tanımlamak için ne kadar güvenli olması gerektiğini belirleyen bir değer) belirtirseniz, farklı modeller için farklı eşikler kullanmanız gerekebilir. Bir model için eşik, başka bir modelle paylaşılmamalıdır ve aynı sonuçları üretmesi gerekmez.

Sonraki adımlar

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