Yüz tanıma modeli belirtme
Bu kılavuzda, Azure yüz hizmetini kullanarak yüz algılama, tanımlama ve benzerlik arama için bir yüz tanıma modeli belirtme konusu gösterilmektedir.
Yüz hizmeti, görüntülerde insan yüzeyleri üzerinde işlem gerçekleştirmek için makine öğrenimi modellerini kullanır. Müşteri geri bildirimlerine ve araştırmada ilerlemeleri temel alan modellerimizin doğruluğunu geliştirmeye devam ediyoruz ve bu geliştirmeleri model güncelleştirmeleri olarak sunduk. Geliştiriciler, yüz tanıma modeli 'nin hangi sürümünü kullanmak istediğinizi belirtme seçeneğine sahiptir; Kullanım durumlarına en uygun modeli seçebilirler.
Azure yüz hizmeti 'nin kullanılabilir dört tanıma modeli vardır. Modeller recognition_01 (yayımlanan 2017), recognition_02 (yayımlanan 2019) ve recognition_03 (yayımlanmış 2020), bu modellerle oluşturulan çok yönlü listeler veya persongroup'lar kullanan müşteriler için geriye dönük uyumluluk sağlamak amacıyla sürekli olarak desteklenmektedir. Bir çok yönlü liste veya kişilik grubu her zaman ile oluşturulduğu tanınma modelini kullanır ve eklendiklerinde yeni yüzler bu modelle ilişkilendirilir. Bu, oluşturulduktan sonra değiştirilemez ve müşterilerin karşılık gelen çok yönlü liste veya persongroup ile ilgili tanıma modelini kullanması gerekir.
Daha sonraki tanıma modellerine daha kolay geçiş yapabilirsiniz; Ancak, tercih ettiğiniz tanıma modeliyle yeni bir çok yönlü listeler ve kişiler oluşturmanız gerekecektir.
Recognition_04 modeli (yayımlanan 2021) Şu anda kullanılabilir 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 ile eşleşen karşılaştırmalar için iyileştirilmiş doğruluk sağlar. Recognition_04 , yüz kapamaları (Surgical maskeleri, N95 maskeleri, kumaş maskeleri) takan kullanıcılar için tanımayı geliştirir. Artık, kayıtlı bir kullanıcının yüz kapağı içerip içermediğini tespit etmek ve ardından en son recognition_04 modeliyle nerede olduklarını tanımak için en son detection_03 modelini kullanan güvenli ve sorunsuz kullanıcı deneyimleri oluşturabilirsiniz. Her bir modelin diğerlerinden bağımsız olarak çalıştığını ve bir model için bir güven eşiği kümesinin diğer tanıma modelleriyle karşılaştırılmadığını unutmayın.
Model çakışmalarını önleyerek, farklı yüz işlemlerinde seçili bir modeli nasıl belirteceğinizi öğrenmek için okumaya devam edin. İleri düzey bir kullanıcıysanız ve en son modele geçiş yapmanız gerekip gerekmediğini öğrenmek isterseniz, yeni modeli değerlendirmek ve sonuçları geçerli veri kümesi kullanarak karşılaştırmak için farklı modelleri değerlendir bölümüne atlayın.
Önkoşullar
AI yüz tanıma ve tanımlama kavramlarını tanımanız gerekir. Değilseniz, önce şu kılavuzlara bakın:
Belirtilen modelle yüzler Algıla
Yüz algılama, insan yüzlerini görsel olarak tanımlar ve bunların sınırlayıcı kutu konumlarını bulur. Ayrıca, yüzün özelliklerini ayıklar ve bu özellikleri, kimlik ' de kullanılmak üzere depolar. Bu bilgilerin tümü bir yüzün temsilini oluşturur.
Tanınma modeli, yüz özellikleri ayıklandığında kullanılır, bu nedenle algılama işlemini gerçekleştirirken bir model sürümü belirtebilirsiniz.
[Yüz algılama] API 'sini kullanırken, model sürümünü recognitionModel parametresiyle atayın. Kullanılabilir değerler şunlardır:
- recognition_01
- recognition_02
- recognition_03
- recognition_04
İsteğe bağlı olarak, Recognıtionmodel 'in yanıt olarak döndürülüp döndürülmeyeceğini belirtmek Için returnrecognıtionmodel parametresini (varsayılan yanlış) belirtebilirsiniz. Bu nedenle, [yüz algılama] REST API 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, recognitionModel sürümünü temsil eden bir dize geçirerek değerini atayabilirsiniz. Atanmamış olarak bırakırsanız, varsayılan bir model sürümü recognition_01 kullanılacaktı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(imageUrl, true, true, recognitionModel: "recognition_01", returnRecognitionModel: true);
Belirtilen modelle yüzeyleri tanımla
Yüz tanıma hizmeti bir görüntüden yüz verileri çıkarabilir ve bunu bir kişi nesnesiyle (örneğin, yüz tanıma API çağrısı aracılığıyla) Ilişkilendirebilir ve birden çok kişi nesnesi bir persongroup'ta birlikte depolanabilir. Daha sonra Yeni bir yüz , bir Person ( [yüz] tanıma çağrısıyla) ile karşılaştırılabilir ve bu gruptaki eşleşen kişi belirlenebilir.
Bir persongroup 'un tüm kişiler için benzersiz bir tanıma modeli olması gerekir ve bunu, recognitionModel grubu oluştururken ([Persongroup-Create] veya [largepersongroup-Create]) parametresini kullanarak belirtebilirsiniz. Bu parametreyi belirtmezseniz, özgün recognition_01 model kullanılır. Bir grup her zaman ile oluşturulduğu tanıma modelini kullanır ve bu modele eklendiğinde yeni yüzler bu modelle ilişkilendirilir; Bu, bir grubun oluşturulduktan sonra değiştirilemez. Bir persongroup 'un hangi modele yapılandırıldığını görmek Için, Returnrecognıtionmodel parametresi true olarak ayarlanmış olan [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 olan bir Persongroup mypersongroupid oluşturulur ve yüz özelliklerini ayıklamak için recognition_04 modelini kullanmak üzere ayarlanır.
Buna karşılık, bu kişinin karşılaştırılacağı yüzeyleri tespit etmek için kullanılacak modeli ( [yüz tanıma] API 'si aracılığıyla) belirlemeniz gerekir. Kullandığınız model, her zaman Persongroup'un yapılandırmasıyla tutarlı olmalıdır; Aksi takdirde, işlem uyumsuz modeller nedeniyle başarısız olur.
[Yüz] tanıma API 'sinde değişiklik yoktur; Yalnızca algılama sürümünde model sürümünü belirtmeniz gerekir.
Belirtilen modelle benzer yüzler bulun
Ayrıca, benzerlik arama için bir tanıma modeli de belirtebilirsiniz. Çok yönlü liste oluşturma recognitionModel API 'si veya [Largeçok yönlü liste-oluştur]ile çok yönlü liste oluştururken model sürümünü atayabilirsiniz. [] Bu parametreyi belirtmezseniz, recognition_01 model varsayılan olarak kullanılır. Çok yönlü bir liste , her zaman ile oluşturulduğu tanıma modelini kullanır ve listeye eklendiğinde yeni yüzler bu modelle ilişkilendirilir; Bu, oluşturulduktan sonra değiştirilemez. Çok yönlü bir listenin hangi modelde yapılandırıldığını görmek için, tam olarak, Returnrecognıtionmodel parametresi true olarak ayarlanmış olan çok [yönlü liste-Al] 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 My face collection , özellik ayıklama için recognition_04 modeli kullanılarak adlı bir çok yönlü liste oluşturur. Benzer yüzler için bu çok yönlü listeyi yeni algılanan bir yüze aradığınızda, bu yüz recognition_04 modeli kullanılarak algılanan ([yüz Algıla]) olmalıdır. Önceki bölümde olduğu gibi, modelin tutarlı olması gerekir.
Yüz, benzer bir API 'yi [bulun] ; Yalnızca algılama sürümünde model sürümünü belirtirsiniz.
Belirtilen modelle yüzeyleri doğrula
Yüz doğrulama API 'si, iki [yüzün] aynı kişiye ait olup olmadığını denetler. Doğrulama API 'sinde, tanıma modelleriyle ilgili bir değişiklik yoktur, ancak yalnızca aynı modelde algılanan yüzeyleri karşılaştırabilirsiniz.
Farklı modelleri değerlendirin
Kendi verilerinizde farklı tanıma modellerinin performanslarını karşılaştırmak isterseniz, şunları yapmanız gerekir:
- Sırasıyla recognition_01, recognition_02, Recognition_03 ve recognition_04 kullanarak dört kişilik oluşturun.
- Yüzleri algılamak ve bu dört kişilik Bu kişilerin içindeki kişilere kaydetmek için görüntü verilerinizi kullanın.
- PersonGroup-tren API 'sini kullanarak kişi gruplarınızı eğitme.
- Yüz ile test edin ve tüm dört Persongroup'Lar üzerinde tanımlayarak sonuçları karşılaştırın.
Normalde bir güvenirlik eşiği (sıfır ile arasında bir değer, modelin bir yüzü belirlemek için ne kadar güvenli olacağını belirleyen bir değer) belirtirseniz, farklı modeller için farklı eşikler kullanmanız gerekebilir. Bir modelin eşiği, diğer ile paylaşılmak üzere tasarlanmamıştır ve aynı sonuçları üretmeyecektir.
Sonraki adımlar
Bu makalede, farklı yüz hizmeti API 'Leri ile kullanmak üzere tanınma modelini nasıl belirtdiğinize öğrendiniz. Sonra, yüz algılamayı kullanmaya başlamak için hızlı başlangıç izleyin.