Előzőben blogbejegyzés, leírtunk egy végpontok közötti azonosság-ellenőrzési megoldást egyetlen AWS-régióban. A megoldás a Amazon felismerés API-k Arcok észlelése arcfelismeréshez és Arcok összehasonlítása arc-összehasonlításhoz. Ezeket az API-kat állapot nélküli API-knak tekintjük, mivel nem függenek az Amazon Rekognitiontól arcgyűjtemény. Idempotensek is, vagyis az azonos paraméterekkel ismételt hívások ugyanazt az eredményt adják vissza. Rugalmas lehetőségeket biztosítanak a képek átadására, akár egy Amazon egyszerű tárolási szolgáltatás (Amazon S3) helyét vagy nyers bájtjait.
Ebben a bejegyzésben arra koncentrálunk Amazon Rekognition kép állapot nélküli API-kat, és megvitatják a képek átadásának két lehetőségét, valamint azt, hogy rendszerarchitektúra szempontjából mikor válasszuk az egyiket a másikkal szemben. Ezután megvitatjuk, hogyan méretezhetjük az állapot nélküli API-kat néhány regionális korlát leküzdésére. Amikor a méretezhetőségről beszélünk, gyakran hivatkozunk a megoldás által kezelhető maximális tranzakciók másodpercenkénti számára (TPS). Például, ha olyan nagy eseményt rendez, amely számítógépes látást használ az arcok vagy tárgycímkék észlelésére, forgalmi kiugrással találkozhat, és nem akarja, hogy a rendszer lelassuljon. Ez azt jelenti, hogy néha növelnie kell a TPS-t, és túl kell lépnie az Amazon Rekognition API-k regionális szolgáltatási kvótáján. Ez a bejegyzés megoldást javasol az állapot nélküli API-k TPS-jének növelésére több régió használatával.
Amazon Rekognition állapot nélküli API-k
Az elérhető Amazon Rekognition Image API-k közül Arcok összehasonlítása, Arcok észlelése, DetectLabels, DetectModerationLabels, DetectProtectiveEquipment, Szöveg észleléseés Ismerd fel a hírességeket hontalanok. Az Amazon S3 és a nyers bájtok opciókat is biztosítják a képek átadásához. Például a kérés szintaxisában a DetectFaces
API, két lehetőség van átadni a Image
terület: Bytes
or S3Object
.
Amikor a S3Object
opció esetén egy tipikus architektúra a következő.
Ez a megoldás a következő munkafolyamattal rendelkezik:
- Az ügyfélalkalmazás hozzáfér egy weboldalhoz, amelyet a AWS erősítés.
- Az ügyfélalkalmazás hitelesítése és engedélyezése megtörtént Amazon Cognito.
- Az ügyfélalkalmazás feltölt egy képet egy S3 tárolóba.
- Az Amazon S3 elindítja a AWS Lambda függvény az Amazon Rekognition meghívásához.
- A Lambda függvény az S3Object opcióval meghívja az Amazon Rekognition API-kat.
- A lambda függvény megőrzi az eredményt egy Amazon DynamoDB táblázat.
Válassza a S3Object
opció a következő forgatókönyvekben:
- A kép PNG vagy JPEG formátumú fájl
- A teljes köteget ugyanabban a régióban telepíti, ahol az Amazon Rekognition elérhető
- Az Amazon Rekognition API regionális szolgáltatási kvótája megfelel a rendszerkövetelményeknek
Ha nem felel meg ezeknek a követelményeknek, válassza a Bytes
opciót.
Használjon Amazon Rekognition Stateless API-kat egy másik régióban
Egy példa a Bytes
az az opció, amikor olyan régióban szeretné telepíteni a használati esetet, ahol az Amazon Rekognition általában nem érhető el, például ha Dél-Amerikában van jelen ügyfele (sa-east-1
) Vidék. Az adatok tartózkodási helyéhez a felhasználók képeinek tárolására használt S3 tárolónak benne kell lennie sa-east-1
, de az Amazon Rekognitiont szeretné használni a megoldáshoz, még akkor is, ha az általában nem érhető el itt sa-east-1
. Az egyik megoldás a Bytes
lehetőség az Amazon Rekognition meghívására egy másik régióban, ahol az Amazon Rekognition elérhető, például us-east-1
. A következő diagram ezt az architektúrát szemlélteti.
A Lambda funkció aktiválása után (4. lépés) ahelyett, hogy közvetlenül a kép S3 helyével hívná meg az Amazon Rekognitiont, a funkciónak le kell kérnie a képet az S3 tárolóból (5. lépés), majd a kép nyers bájtjaival meg kell hívnia az Amazon Rekognitiont (lépés). 6). A következő egy kódrészlet a Lambda függvényből:
Vegye figyelembe, hogy az előző kódrészlet közvetlenül JPEG vagy PNG formátumokhoz működik. Más képformátumok, például a BMP esetében extra képfeldolgozásra van szükség ahhoz, hogy JPEG vagy PNG bájtokká konvertálják, mielőtt elküldenék az Amazon Rekognitionba. A következő kód konvertálja a BMP-t JPEG bájtokká:
Növelje az állapot nélküli API-k TPS-jét az API-hívások több régióra való szétosztásával
Egy másik használati eset a Bytes
Az a lehetőség, hogy az állapot nélküli API-k TPS-jét növelheti az API-hívások több régióra való szétosztásával. Így nem korlátozza az API regionális szolgáltatási kvótáját, mert további TPS-t szerezhet más régiókból.
A következő példában egy Lambda-függvény jön létre az Amazon Rekognition meghívására DetectLabels
API-val a Bytes
választási lehetőség. A maximális TPS növeléséhez az API-hívásokat súlyozással több régióra is szétoszthatja. Az elérhető maximális TPS-t a következőképpen számítják ki: min(régió_1_max_tps/régió_1_súly, régió_2_max_tps/régió_2_súly, … régió_n_max_tps/régió_n_súly). A következő példa használja us-east-1
és a us-west-2
Régiók.
A kódrészlet a híváshoz DetectLabels
Az API a következő:
Mivel us-east-1
és a us-west-2
mindkettő maximum 50 TPS-sel rendelkezik az Amazon Rekognition DetectFaces API-hoz, a környezeti változó beállításával egyenletesen oszthatja el az API-hívásokat 50/50 súllyal. REGION_1_TRAFFIC_PERCENTAGE
50-re. Így elméletileg min(50/50%, 50/50%) = 100 TPS érhető el.
Az ötlet érvényesítéséhez a Lambda függvény REST API-ként jelenik meg Amazon API átjáró. Majd JMeter az API betöltésének tesztelésére szolgál.
REGION_1_TRAFFIC_PERCENTAGE
először 100-ra van állítva, így minden DetectFaces
Az API-hívások a címre kerülnek us-east-1
csak. Elméletileg az elérhető maximális TPS-t a szolgáltatási kvóta korlátozza us-east-1
, ami 50 TPS. Betöltési teszt az egyéni API-végponton, 50 párhuzamos száltól kezdve, fokozatosan hozzáadva 5 szálat, amíg ProvisionedThroughputExceededException
az Amazon Rekognitionból visszaérkezett.
REGION_1_TRAFFIC_PERCENTAGE
ezután 50-re van állítva, így minden DetectLabels
Az API-hívások egyenletesen kerülnek elküldésre a címre us-east-1
és a us-west-2
. Elméletileg a maximális elérhető TPS a két régió által összevont szolgáltatási kvóta, ami 100 TPS. Indítsa újra a terhelési tesztet 100 száltól, hogy megtalálja a maximális TPS-t.
Az alábbi táblázat a terhelési vizsgálat eredményeit foglalja össze.
A DetectLabels API-hívások százalékos aránya a us-east-1 felé | A DetectLabels API-hívások százalékos aránya a us-west-2 felé | Maximális TPS elméletben | Maximális egyidejű futás nélkül ProvisionedThroughputExceededException |
100 | 0 | 50 | 70 |
50 | 50 | 100 | 145 |
Következtetés
Sok ügyfél használ Amazon Rekognition Image állapotmentes API-kat különféle felhasználási esetekben, beleértve a személyazonosság-ellenőrzést, a tartalom moderálását, a médiafeldolgozást és még sok mást. Ez a bejegyzés a képek átadásának két lehetőségét tárgyalta, és a nyers bájtok beállítását a következő használati esetekben:
- Amazon Rekognition Regionális elérhetőség
- Ügyféladatok tartózkodási helye
- Az Amazon Rekognition állapot nélküli API-k TPS-jének bővítése
Nézze meg, hogyan használják az Amazon Rekognitiont különböző számítógépes látáshasználati esetek és indítsa el innovációs útját.
A szerzőkről
Sharon Li az AWS megoldástervezője, székhelye Boston, MA területen található. Vállalati ügyfelekkel dolgozik, segít nekik megoldani a nehéz problémákat és építeni az AWS-re. A munkán kívül szeret időt tölteni a családjával és felfedezni a helyi éttermeket.
Vaibhav Shah Senior Solutions Architect az AWS-nél, és szeretne minden felhőben segíteni ügyfelei számára, és lehetővé tenni a felhőbe való bevezetésüket. A munkán kívül szeret utazni, új helyeket és éttermeket felfedezni, főzni, olyan sportokat követni, mint a krikett és a foci, filmeket és sorozatokat nézni (Marvel-rajongó), valamint olyan kalandos tevékenységeket, mint a túrázás, az ejtőernyős ugrás, és a lista folytatható.
- Haladó (300)
- AI
- ai művészet
- ai art generátor
- van egy robotod
- Amazon felismerés
- mesterséges intelligencia
- mesterséges intelligencia tanúsítás
- mesterséges intelligencia a bankszektorban
- mesterséges intelligencia robot
- mesterséges intelligencia robotok
- mesterséges intelligencia szoftver
- AWS gépi tanulás
- blockchain
- blokklánc konferencia ai
- coingenius
- társalgási mesterséges intelligencia
- kriptokonferencia ai
- dall's
- mély tanulás
- google azt
- gépi tanulás
- Plató
- plato ai
- Platón adatintelligencia
- Platón játék
- PlatoData
- platogaming
- skála ai
- szintaxis
- Technikai útmutató
- zephyrnet