A késés csökkentése és a teljesítmény javítása
Ez az útmutató bemutatja, hogyan csökkenthető a hálózati késés, és hogyan javítható a szolgáltatás teljesítménye a Face szolgáltatás használatakor. Az alkalmazás sebessége és teljesítménye hatással lesz a végfelhasználók élményére, például az arcfelismerési rendszerbe belépő és azt használó felhasználókra.
Késés csökkentése
A Face szolgáltatás használatakor késés léphet fel. A késés bármilyen késést jelent, amely akkor fordul elő, ha a rendszerek hálózaton keresztül kommunikálnak. A késés lehetséges okai általában a következők:
- Az egyes csomagok fizikai távolságának a forrástól a célig kell haladnia.
- Az átviteli adathordozóval kapcsolatos problémák.
- Útválasztók vagy kapcsolók hibái az átviteli útvonal mentén.
- A víruskereső alkalmazások, tűzfalak és más biztonsági mechanizmusok által a csomagok vizsgálatához szükséges idő.
- Hibák az ügyfél- vagy kiszolgálóalkalmazásokban.
Ez a szakasz az Azure AI Face szolgáltatásra jellemző késés különböző okainak enyhítését ismerteti.
Feljegyzés
Az Azure AI-szolgáltatások nem biztosítanak szolgáltatásiszint-szerződést (SLA) a késésre vonatkozóan.
Válassza ki a Face-erőforrásnak megfelelő régiót
A hálózati késést, a forrástól (az alkalmazástól) a célig (az Azure-erőforrásig) való utazáshoz szükséges időt erősen befolyásolja a kéréseket küldő alkalmazás és a kérésekre válaszoló Azure-kiszolgáló közötti földrajzi távolság. Ha például a Face-erőforrás EastUS
a new yorki felhasználók számára gyorsabb válaszidővel rendelkezik, az ázsiai felhasználók pedig hosszabb késést tapasztalnak.
Javasoljuk, hogy válasszon ki egy, a felhasználókhoz legközelebb eső régiót a késés minimalizálása érdekében. Ha a felhasználók világszerte vannak elosztva, érdemes lehet több erőforrást létrehozni különböző régiókban, és a kérelmeket az ügyfelekhez legközelebbi régióba továbbítani. Másik lehetőségként választhat egy régiót, amely az összes ügyfél földrajzi központjának közelében található.
Az Azure Blob Storage használata távoli URL-címekhez
A Face szolgáltatás kétféleképpen tölthet fel képeket feldolgozásra: a kép nyers bájtadatainak feltöltése közvetlenül a kérelemben, vagy EGY URL-cím megadása egy távoli képhez. A módszertől függetlenül a Face szolgáltatásnak le kell töltenie a képet a forráshelyéről. Ha a Face szolgáltatás és az ügyfél vagy a távoli kiszolgáló közötti kapcsolat lassú vagy gyenge, az hatással van a kérések válaszidejára. Ha késéssel kapcsolatos probléma merül fel, érdemes lehet a rendszerképet az Azure Blob Storage-ban tárolni, és átadni a rendszerkép URL-címét a kérésben. További megvalósítási részletek : A rendszerkép tárolása az Azure Premium Blob Storage-ban. Példa API-hívásra:
var url = "https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name>";
var response = await faceClient.DetectAsync(new Uri(url), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: false);
var faces = response.Value;
Ügyeljen arra, hogy a Face erőforrással azonos régióban használjon tárfiókot. Ez csökkenti a Face szolgáltatás és a tárfiók közötti kapcsolat késését.
Optimális fájlméretek használata
Ha a használt képfájlok nagyok, az kétféleképpen befolyásolja a Face szolgáltatás válaszidejének időtartamát:
- A fájl feltöltése több időt vesz igénybe.
- A szolgáltatás több időt vesz igénybe a fájl feldolgozásához a fájl méretének arányában.
A pontosság és a hálózati sebesség közötti kompromisszum
A bemeneti képek minősége befolyásolja a Face szolgáltatás pontosságát és késését is. Az alacsonyabb minőségű képek hibás eredményeket eredményezhetnek. A jobb minőségű képek pontosabb értelmezést tesznek lehetővé. A jobb minőségű képek azonban nagyobb fájlméretük miatt is növelik a hálózati késést. A szolgáltatásnak több időre van szüksége ahhoz, hogy megkapja a teljes fájlt az ügyféltől, és feldolgozhassa azt a fájl méretének megfelelő arányban. Egy bizonyos szint felett a további minőségi fejlesztések nem javítják jelentősen a pontosságot.
A pontosság és a sebesség közötti optimális egyensúly eléréséhez kövesse ezeket a tippeket a bemeneti adatok optimalizálásához.
- Az arcfelismerési és -felismerési műveletekhez tekintse meg az arcfelismerés bemeneti adatait és az arcfelismerés bemeneti adatait.
- Az élőség észleléséhez tekintse meg az oktatóanyagot.
Egyéb fájlméretre vonatkozó tippek
Vegye figyelembe a következő további tippeket:
- Az arcfelismeréshez az észlelési modell
FaceDetectionModel.Detection01
használata esetén a képfájl méretének csökkentése növeli a feldolgozási sebességet. Észlelési modellFaceDetectionModel.Detection02
használata esetén a képfájl méretének csökkentése csak akkor növeli a feldolgozási sebességet, ha a képfájl kisebb, mint 1920x1080 képpont. - Az arcfelismeréshez az arcméret csökkentése csak akkor növeli a sebességet, ha a kép kisebb, mint 200x200 képpont.
- Az arcészlelési módszerek teljesítménye attól is függ, hogy hány arc található a képen. A Face szolgáltatás legfeljebb 100 arcot adhat vissza egy képhez. Az arcok a nagytól a kicsiig az arc téglalapmérete szerint vannak rangsorolva.
Api-k meghívása párhuzamosan, ha lehetséges
Ha több API-t kell meghívnia, érdemes lehet párhuzamosan meghívni őket, ha az alkalmazás kialakítása lehetővé teszi. Ha például két képen kell arcokat észlelnie az arcok összehasonlításához, meghívhatja őket egy aszinkron feladatban:
string url1 = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
string url2 = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection2.jpg";
var response1 = client.DetectAsync(new Uri(url1), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: false);
var response2 = client.DetectAsync(new Uri(url2), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: false);
Task.WaitAll(new Task<Response<IReadOnlyList<FaceDetectionResult>>>[] { response1, response2 });
IEnumerable<FaceDetectionResult> results = response1.Result.Value.Concat(response2.Result.Value);
Gördülékeny forgalom
A Face szolgáltatás teljesítményét befolyásolhatja a forgalom kiugró száma, ami szabályozást, alacsonyabb átviteli sebességet és nagyobb késést okozhat. Javasoljuk, hogy fokozatosan növelje az API-hívások gyakoriságát, és kerülje az azonnali újrapróbálkozást. Ha például 3000 fényképe van az arcfelismerés elvégzéséhez, ne küldjön egyszerre 3000 kérést. Ehelyett 3000 kérést küldjön egymás után 5 perc alatt (azaz másodpercenként körülbelül 10 kérést) a hálózati forgalom konzisztensebbé tétele érdekében. Ha csökkenteni szeretné a befejezési időt, növelje a másodpercenkénti hívások számát a forgalom simításához. Ha bármilyen hibát tapasztal, a válasz kezeléséhez tekintse meg a Hibák hatékony kezelése című témakört.
Hibák hatékony kezelése
A hibák 429
és 503
a Face API-hívások során különböző okokból fordulhatnak elő. Az alkalmazásnak mindig készen kell állnia a hibák kezelésére. Íme néhány javaslat:
HTTP-hibakód | Leírás | Ajánlás |
---|---|---|
429 |
Szabályozás | Egyidejű hívások esetén sebességkorlát léphet fel. Csökkentse a hívások gyakoriságát, és próbálkozzon újra exponenciális visszalépéssel. Kerülje az azonnali újrapróbálkozást, és ne küldjön egyszerre több kérést. Ha növelni szeretné a korlátot, tekintse meg a kvótákra vonatkozó útmutató Növelés kérése szakaszát. |
503 |
A szolgáltatás nem érhető el | Előfordulhat, hogy a szolgáltatás foglalt, és nem tud azonnal válaszolni a kérésére. A hiba 429 esetén az egyikhez hasonló háttérstratégiát kell alkalmaznia. |
Megbízhatóság és támogatás biztosítása
Az alábbiakban további tippeket találhat az alkalmazás megbízhatóságának és magas támogatásának biztosításához:
- Hozzon létre egy egyedi GUID-t a
client-request-id
HTTP-kérés fejléceként, és küldje el az egyes kérésekkel együtt. Ez segít a Microsoftnak a hibák egyszerűbb kivizsgálásában, ha hibajelentést kell végeznie a Microsofttal kapcsolatban.- Mindig rögzítse a
client-request-id
váratlan válasz esetén kapott választ és választ. Ha segítségre van szüksége, adja meg ezeket az információkat Microsoft ügyfélszolgálata, valamint az Azure-erőforrás-azonosítót és a probléma előfordulásának időtartamát.
- Mindig rögzítse a
- Mielőtt éles környezetbe bocsátja az alkalmazást, végezzen próbatesztet. Győződjön meg arról, hogy az alkalmazás megfelelően és hatékonyan tudja kezelni a hibákat.
Következő lépések
Ebben az útmutatóban megtanulta, hogyan javíthatja a teljesítményt a Face szolgáltatás használatakor. Ezután kövesse az oktatóanyagot egy működő szoftvermegoldás beállításához, amely a kiszolgálóoldali és az ügyféloldali logikát kombinálja a felhasználók élősségének észleléséhez.