V prejšnjih blog postsmo opisali rešitev za preverjanje identitete od konca do konca v eni sami regiji AWS. Rešitev uporablja Amazonsko ponovno vžiganje API-ji DetectFaces za zaznavanje obrazov in CompareFaces za primerjavo obrazov. Te API-je obravnavamo kot API-je brez stanja, ker niso odvisni od Amazon Rekognition zbirka obrazov. Prav tako so idempotentni, kar pomeni, da bodo ponavljajoči se klici z istimi parametri vrnili enak rezultat. Zagotavljajo prilagodljive možnosti za prenos slik, bodisi prek Preprosta storitev shranjevanja Amazon (Amazon S3) lokacija ali neobdelani bajti.
V tej objavi se osredotočamo na Slika Amazon Rekognition API-ji brez stanja in razpravljali o dveh možnostih posredovanja slik in o tem, kdaj izbrati eno pred drugo z vidika sistemske arhitekture. Nato razpravljamo o tem, kako prilagoditi API-je brez stanja, da premagamo nekatere regionalne omejitve. Ko govorimo o razširljivosti, se pogosto sklicujemo na največje število transakcij na sekundo (TPS), ki jih rešitev zmore. Na primer, ko gostite velik dogodek, ki uporablja računalniški vid za zaznavanje obrazov ali oznak predmetov, lahko naletite na skok prometa in ne želite, da se sistem duši. To pomeni, da morate včasih povečati TPS in celo preseči kvoto regionalnih storitev, ki jo imajo API-ji Amazon Rekognition. Ta objava predlaga rešitev za povečanje TPS API-jev brez stanja z uporabo več regij.
API-ji Amazon Rekognition brez stanja
Od API-jev Amazon Rekognition Image, ki so na voljo, CompareFaces, DetectFaces, Označi oznake, DetectModerationLabels, DetectProtectiveEquipment, DetectTextin RecognizeCelebrities so brez državljanstva. Zagotavljajo tako možnosti Amazon S3 kot raw bytes za posredovanje slik. Na primer, v sintaksi zahteve za DetectFaces
API, obstajata dve možnosti za prehod na Image
polje: Bytes
or S3Object
.
Pri uporabi S3Object
tipična arhitektura je naslednja.
Ta rešitev ima naslednji potek dela:
- Odjemalska aplikacija dostopa do spletne strani, ki jo gosti Ojačaj AWS.
- Odjemalska aplikacija je overjena in avtorizirana z Amazon Cognito.
- Odjemalska aplikacija naloži sliko v vedro S3.
- Amazon S3 sproži an AWS Lambda funkcijo za klic Amazon Rekognition.
- Funkcija Lambda kliče API-je Amazon Rekognition z možnostjo S3Object.
- Funkcija Lambda ohrani rezultat na an Amazon DynamoDB miza.
Izberite S3Object
možnost v naslednjih scenarijih:
- Slika je datoteka v formatu PNG ali JPEG
- Celoten sklad namestite v isto regijo, kjer je na voljo Amazon Rekognition
- Regionalna kvota storitev Amazon Rekognition API ustreza vašim sistemskim zahtevam
Če ne izpolnjujete vseh teh zahtev, morate izbrati Bytes
možnost.
Uporabite API-je Amazon Rekognition Stateless v drugi regiji
En primer uporabe Bytes
možnost je, ko želite uvesti svoj primer uporabe v regiji, kjer Amazon Rekognition ni splošno na voljo, na primer, če imate stranko v Južni Ameriki (sa-east-1
) Regija. Za rezidenčnost podatkov mora biti vedro S3, ki ga uporabljate za shranjevanje slik uporabnikov sa-east-1
, vendar želite za svojo rešitev uporabiti Amazon Rekognition, čeprav ni splošno na voljo v sa-east-1
. Ena od rešitev je uporaba Bytes
možnost klica Amazon Rekognition v drugi regiji, kjer je Amazon Rekognition na voljo, kot je npr us-east-1
. Naslednji diagram ponazarja to arhitekturo.
Ko se sproži funkcija Lambda (4. korak), mora funkcija namesto neposrednega klica Amazon Rekognition z lokacijo S3 slike pridobiti sliko iz vedra S3 (5. korak), nato pa poklicati Amazon Rekognition z neobdelanimi bajti slike (korak 6). Sledi delček kode funkcije Lambda:
Upoštevajte, da prejšnji delček kode deluje neposredno za formate JPEG ali PNG. Za druge formate slik, kot je BMP, je potrebna dodatna obdelava slik za pretvorbo v bajte JPEG ali PNG pred pošiljanjem v Amazon Rekognition. Naslednja koda pretvori bajte BMP v JPEG:
Povečajte TPS API-jev brez stanja tako, da klice API-jev razširite na več regij
Še en primer uporabe Bytes
možnost je, da lahko razširite TPS API-jev brez stanja tako, da klice API-jev razširite na več regij. Na ta način niste omejeni s kvoto regionalnih storitev API-ja, ker lahko pridobite dodatne TPS iz drugih regij.
V naslednjem primeru je ustvarjena funkcija Lambda za klic Amazon Rekognition DetectLabels
API z Bytes
možnost. Če želite povečati največji TPS, lahko razporedite klice API-ja v več regij z utežmi. Največji TPS, ki ga lahko dosežete, se izračuna z: min(region_1_max_tps/region_1_weight, region_2_max_tps/region_2_weight, … region_n_max_tps/region_n_weight). Naslednji primer uporablja us-east-1
in us-west-2
Regije.
Delček kode za klic DetectLabels
API je naslednji:
Ker us-east-1
in us-west-2
oba imata največ 50 TPS za API Amazon Rekognition DetectFaces, klice API-ja lahko enakomerno porazdelite s težo 50/50, tako da nastavite spremenljivko okolja REGION_1_TRAFFIC_PERCENTAGE
na 50. Na ta način lahko teoretično dosežete min(50/50%, 50/50%) = 100 TPS.
Za potrditev ideje je funkcija Lambda izpostavljena kot REST API z Amazon API Gateway. Potem JMeter se uporablja za nalaganje preskusa API-ja.
REGION_1_TRAFFIC_PERCENTAGE
je najprej nastavljen na 100, na ta način vse DetectFaces
Klici API-ja so poslani na us-east-1
samo. Teoretično je največji TPS, ki ga je mogoče doseči, omejen s kvoto storitve v us-east-1
, kar je 50 TPS. Naloži test na končni točki API po meri, začenši s 50 sočasnimi nitmi, postopno dodajanjem 5 niti, dokler ProvisionedThroughputExceededException
se je vrnil iz Amazon Rekognition opaziti.
REGION_1_TRAFFIC_PERCENTAGE
je nato nastavljen na 50, na ta način vse DetectLabels
Klici API-ja so enakomerno poslani us-east-1
in us-west-2
. Teoretično je največji TPS, ki ga je mogoče doseči, kvota storitev, ki jo združita obe regiji in je 100 TPS. Znova začnite preskus obremenitve s 100 niti, da ugotovite največji TPS.
Naslednja tabela povzema rezultate obremenitvenega testiranja.
Odstotek klicev API-ja DetectLabels na us-east-1 | Odstotek klicev API-ja DetectLabels na us-west-2 | Največji TPS v teoriji | Največje sočasno izvajanje brez ProvisionedThroughputExceededException |
100 | 0 | 50 | 70 |
50 | 50 | 100 | 145 |
zaključek
Številne stranke uporabljajo API-je Amazon Rekognition Image brez stanja za različne primere uporabe, vključno s preverjanjem identitete, moderiranjem vsebine, obdelavo medijev in več. Ta objava je obravnavala dve možnosti posredovanja slik in kako uporabiti možnost neobdelanih bajtov za naslednje primere uporabe:
- Regionalna razpoložljivost Amazon Rekognition
- Podatki o rezidentstvu stranke
- Povečanje TPS API-jev brez stanja Amazon Rekognition
Preverite, kako se Amazon Rekognition uporablja v različne primere uporabe računalniškega vida in začnite svojo inovacijsko pot.
O avtorjih
Sharon Li je arhitekt rešitev pri AWS s sedežem v Bostonu, MA. Dela s podjetniškimi strankami, jim pomaga rešiti težke probleme in graditi na AWS. Zunaj službe rada preživlja čas z družino in raziskuje lokalne restavracije.
Vaibhav šah je višji arhitekt rešitev pri AWS in svojim strankam rad pomaga pri vsem, kar je v oblaku, in omogoči njihovo pot sprejemanja oblaka. Zunaj službe rad potuje, raziskuje nove kraje in restavracije, kuha, spremlja športe, kot sta kriket in nogomet, gleda filme in serije (oboževalec Marvel) ter pustolovske dejavnosti, kot so pohodništvo, skok s padalom in seznam se lahko nadaljuje.
- Napredno (300)
- AI
- ai art
- ai art generator
- imajo robota
- Amazonsko ponovno vžiganje
- Umetna inteligenca
- certificiranje umetne inteligence
- umetna inteligenca v bančništvu
- robot z umetno inteligenco
- roboti z umetno inteligenco
- programska oprema za umetno inteligenco
- Strojno učenje AWS
- blockchain
- blockchain konferenca ai
- coingenius
- pogovorna umetna inteligenca
- kripto konferenca ai
- dall's
- globoko učenje
- strojno učenje
- platon
- platon ai
- Platonova podatkovna inteligenca
- Igra Platon
- PlatoData
- platogaming
- lestvica ai
- sintaksa
- Tehnična navodila
- zefirnet