Gecikme süresini azaltma ve performansı geliştirme

Bu kılavuzda, Yüz Tanıma hizmeti kullanılırken ağ gecikmesinin nasıl azaltıldığı ve hizmet performansının nasıl artırıldığı açıklanmaktadır. Uygulamanızın hızı ve performansı, kaydolan ve yüz belirleme sistemi kullanan kişiler gibi son kullanıcılarınızın deneyimini etkiler.

Gecikme süresini azaltma

Yüz Tanıma hizmetini kullanırken gecikmeyle karşılaşabilirsiniz. Gecikme süresi, sistemler bir ağ üzerinden iletişim kurarken oluşan herhangi bir gecikme türünü ifade eder. Genel olarak, gecikme süresinin olası nedenleri şunlardır:

  • Her paketin kaynaktan hedefe kat etmesi gereken fiziksel mesafe.
  • İletim ortamıyla ilgili sorunlar.
  • İletim yolu boyunca yönlendiricilerde veya anahtarlarda hatalar.
  • Paketleri incelemek için virüsten koruma uygulamaları, güvenlik duvarları ve diğer güvenlik mekanizmalarının gerektirdiği süre.
  • İstemci veya sunucu uygulamalarında arızalar.

Bu bölümde, Azure Yapay Zeka Yüz Tanıma hizmetine özgü gecikme süresinin çeşitli nedenlerini nasıl azaltabileceğiniz açıklanmaktadır.

Not

Azure AI hizmetleri gecikme süresiyle ilgili herhangi bir Hizmet Düzeyi Sözleşmesi (SLA) sağlamaz.

Yüz Tanıma kaynağınız için uygun bölgeyi seçin

Ağ gecikme süresi, bilgilerin kaynaktan (uygulamanız) hedefe (Azure kaynağınız) geçmesi için geçen süre, istekte bulunan uygulama ile bu isteklere yanıt veren Azure sunucusu arasındaki coğrafi uzaklıktan güçlü bir şekilde etkilenir. Örneğin, Yüz Tanıma kaynağınız içinde EastUSbulunuyorsa, New York'taki kullanıcılar için yanıt süresi daha kısadır ve Asya'daki kullanıcılar daha uzun bir gecikme yaşar.

Gecikme süresini en aza indirmek için kullanıcılarınıza en yakın bölgeyi seçmenizi öneririz. Kullanıcılarınız dünya çapında dağıtılmışsa, farklı bölgelerde birden çok kaynak oluşturmayı ve istekleri müşterilerinize en yakın bölgeye yönlendirmeyi göz önünde bulundurun. Alternatif olarak, tüm müşterilerinizin coğrafi merkezine yakın bir bölge seçebilirsiniz.

Uzak URL'ler için Azure blob depolama kullanma

Yüz Tanıma hizmeti, işleme için görüntüleri karşıya yüklemek için iki yol sağlar: görüntünün ham bayt verilerini doğrudan istekte karşıya yükleme veya uzak görüntünün URL'sini sağlama. Yöntemi ne olursa olsun, Yüz Tanıma hizmetinin görüntüyü kaynak konumundan indirmesi gerekir. Yüz Tanıma hizmetinden istemciye veya uzak sunucuya bağlantı yavaşsa veya zayıfsa, isteklerin yanıt süresini etkiler. Gecikme süresiyle ilgili bir sorununuz varsa, görüntüyü Azure Blob Depolama'da depolamayı ve görüntü URL'sini istekte geçirmeyi göz önünde bulundurun. Diğer uygulama ayrıntıları için bkz. Görüntüyü Azure Premium Blob Depolama depolama. Örnek BIR API çağrısı:

var faces = await client.Face.DetectWithUrlAsync("https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name>");

Yüz Tanıma kaynağıyla aynı bölgede bir depolama hesabı kullandığınızdan emin olun. Bu, Yüz Tanıma hizmeti ile depolama hesabı arasındaki bağlantının gecikme süresini azaltır.

En uygun dosya boyutlarını kullanma

Kullandığınız görüntü dosyaları büyükse, Yüz Tanıma hizmetinin yanıt süresini iki şekilde etkiler:

  • Dosyayı karşıya yüklemek daha fazla zaman alır.
  • Hizmetin dosyayı işlemesi, dosya boyutuyla orantılı olarak daha fazla zaman alır.

Doğruluk ve ağ hızı arasındaki denge

Giriş görüntülerinin kalitesi, Yüz Tanıma hizmetinin hem doğruluğunu hem de gecikme süresini etkiler. Daha düşük kaliteye sahip görüntüler hatalı sonuçlara neden olabilir. Daha yüksek kalitede görüntüler daha hassas yorumlara olanak tanıyabilir. Ancak daha yüksek kalitede görüntüler, daha büyük dosya boyutları nedeniyle ağ gecikme süresini de artırır. Hizmet, dosyanın tamamını istemciden almak ve dosya boyutuyla orantılı olarak işlemek için daha fazla zaman gerektirir. Belirli bir düzeyin üzerinde, daha fazla kalite geliştirmeleri doğruluğu önemli ölçüde geliştirmez.

Doğruluk ve hız arasında en uygun dengeyi elde etmek için giriş verilerinizi iyileştirmek için bu ipuçlarını izleyin.

  • Yüz algılama ve tanıma işlemleri için bkz . Yüz algılama için giriş verileri ve yüz tanıma için giriş verileri.
  • Canlılık algılama için öğreticiye bakın.

Diğer dosya boyutu ipuçları

Aşağıdaki ek ipuçlarına dikkat edin:

  • Yüz algılama için, algılama modeli DetectionModel.Detection01kullanılırken görüntü dosyası boyutunun azaltılması işlem hızını artırır. Algılama modelini DetectionModel.Detection02kullandığınızda, görüntü dosyasının boyutunu azaltmak yalnızca görüntü dosyası 1920x1080 pikselden küçükse işlem hızını artırır.
  • Yüz tanıma için, yüz boyutunu küçültmek yalnızca görüntü 200x200 pikselden küçükse hızı artırır.
  • Yüz algılama yöntemlerinin performansı, bir görüntüde kaç yüz olduğuna da bağlıdır. Yüz Tanıma hizmeti bir görüntü için en fazla 100 yüz döndürebilir. Yüzler, büyükten küçüke yüz dikdörtgeni boyutuna göre sıralanır.

Mümkün olduğunda API'leri paralel olarak çağırma

Birden çok API çağırmanız gerekiyorsa, uygulama tasarımınız izin veriyorsa bunları paralel olarak çağırmayı göz önünde bulundurun. Örneğin, yüz karşılaştırması gerçekleştirmek için iki görüntüdeki yüzleri algılamanız gerekiyorsa, bunları zaman uyumsuz bir görevde çağırabilirsiniz:

var faces_1 = client.Face.DetectWithUrlAsync("https://www.biography.com/.image/t_share/MTQ1MzAyNzYzOTgxNTE0NTEz/john-f-kennedy---mini-biography.jpg");
var faces_2 = client.Face.DetectWithUrlAsync("https://www.biography.com/.image/t_share/MTQ1NDY3OTIxMzExNzM3NjE3/john-f-kennedy---debating-richard-nixon.jpg");

Task.WaitAll (new Task<IList<DetectedFace>>[] { faces_1, faces_2 });
IEnumerable<DetectedFace> results = faces_1.Result.Concat (faces_2.Result);

Yüksek trafik üzerinde sorunsuz

Yüz Tanıma hizmetinin performansı trafik artışlarından etkilenebilir ve bu da azaltma, daha düşük aktarım hızı ve daha yüksek gecikme süresine neden olabilir. API çağrılarının sıklığını aşamalı olarak artırmanızı ve hemen yeniden denemelerden kaçınmanızı öneririz. Örneğin, yüz algılama gerçekleştirmek için 3000 fotoğrafınız varsa, aynı anda 3000 istek göndermeyin. Bunun yerine, ağ trafiğini daha tutarlı hale getirmek için 5 dakikadan (saniyede yaklaşık 10 istek) 3000 istek gönderin. Tamamlanma süresini azaltmak istiyorsanız, trafiği düzeltmek için saniye başına çağrı sayısını kademeli olarak artırın. Herhangi bir hatayla karşılaşırsanız, yanıtı işlemek için Hataları etkili bir şekilde işleme bölümüne bakın.

Hataları etkili bir şekilde işleme

Ve hataları 429503 çeşitli nedenlerle Yüz Tanıma API'si çağrılarınızda oluşabilir. Uygulamanız her zaman bu hataları işlemeye hazır olmalıdır. İşte birkaç öneri:

HTTP hata kodu Açıklama Öneri
429 Azaltma Eşzamanlı çağrılarda hız sınırıyla karşılaşabilirsiniz. Çağrıların sıklığını azaltmalı ve üstel geri alma ile yeniden denemelisiniz. Hemen yeniden denemelerden kaçının ve çok sayıda isteği aynı anda yeniden göndermekten kaçının.

Sınırı artırmak istiyorsanız kotalar kılavuzunun Artış isteme bölümüne bakın.
503 Hizmet kullanılamıyor Hizmet meşgul olabilir ve isteğinize hemen yanıt veremiyor olabilir. hatasına 429benzer bir geri dönüş stratejisi benimsemeniz gerekir.

Güvenilirlik ve destek sağlama

Uygulamanızın güvenilirliğini ve yüksek desteğini sağlamaya ilişkin diğer ipuçları aşağıdadır:

  • HTTP isteği üst bilgisi olarak client-request-id benzersiz bir GUID oluşturun ve her istekle birlikte gönderin. Bu, Microsoft ile ilgili bir sorun bildirmeniz gerekiyorsa Microsoft'un hataları daha kolay incelemesine yardımcı olur.
    • Beklenmeyen bir yanıtla karşılaştığınızda her zaman aldığınız ve yanıtını kaydedin client-request-id . Herhangi bir yardıma ihtiyacınız varsa, azure kaynak kimliği ve sorunun oluştuğu zaman aralığıyla birlikte bu bilgileri Microsoft Desteği sağlayın.
  • Uygulamanızı üretime sunmadan önce bir pilot test gerçekleştirin. Uygulamanızın hataları düzgün ve etkili bir şekilde işleyebileceğinden emin olun.

Sonraki adımlar

Bu kılavuzda, Yüz Tanıma hizmetini kullanırken performansı geliştirmeyi öğrendiniz. Ardından, kullanıcılarda yüz canlılığı algılaması yapmak için sunucu tarafı ve istemci tarafı mantığını birleştiren çalışan bir yazılım çözümü ayarlamak için öğreticiyi izleyin.