V različnih panogah, kot so finančne storitve, telekomunikacije in zdravstvo, stranke uporabljajo postopek digitalne identitete, ki običajno vključuje več korakov za preverjanje končnih uporabnikov med spletno vključitvijo ali postopno avtentikacijo. Primer enega koraka, ki ga je mogoče uporabiti, je iskanje obrazov, ki lahko pomaga ugotoviti, ali se nov obraz končnega uporabnika ujema s tistimi, ki so povezani z obstoječim računom.
Izgradnja natančnega sistema za iskanje obrazov vključuje več korakov. Sistem mora biti sposoben zaznati človeške obraze na slikah, ekstrahirati obraze v vektorske predstavitve, shraniti vektorje obrazov v bazo podatkov in primerjati nove obraze z obstoječimi vnosi. Amazonsko ponovno vžiganje to olajša, saj vam nudi vnaprej usposobljene modele, ki se prikličejo prek preprostih klicev API-ja.
Amazon Rekognition vam omogoča, da dosežete zelo visoko natančnost iskanja obrazov z eno sliko obraza. V nekaterih primerih lahko uporabite več slik obraza iste osebe, da ustvarite uporabniške vektorje in še izboljšate natančnost. To je še posebej koristno, če imajo slike različne osvetlitve, položaje in videz.
V tej objavi prikazujemo, kako uporabiti API-je Amazon Rekognition Face Search z uporabniškimi vektorji za povečanje ocene podobnosti za resnična ujemanja in zmanjšanje ocene podobnosti za resnična neujemanja.
Primerjamo rezultate izvajanja ujemanja obrazov z in brez uporabniških vektorjev.
Ujemanje obrazov Amazon Rekognition
Ujemanje obrazov Amazon Rekognition omogoča merjenje podobnosti vektorja obraza, ekstrahiranega iz ene slike, z vektorjem obraza, ekstrahiranega iz druge slike. Par podob obraza naj bi bil a pravo ujemanje če obe podobi vsebujeta obraz iste osebe in a resnično neujemajoče se drugače. Amazon Rekognition vrne oceno za podobnost izvornega in ciljnega obraza. Najmanjša ocena podobnosti je 0, kar pomeni zelo malo podobnosti, največja pa 100.
Za primerjavo izvornega obraza z zbirko ciljnih obrazov (ujemanje 1:N) vam Amazon Rekognition omogoča, da ustvarite predmet zbirke in ga zapolnite z obrazi iz slik s pomočjo klicev API-ja.
Pri dodajanju obraza v zbirko Amazon Rekognition ne shrani dejanske podobe obraza, temveč vektor obraza, matematično predstavitev obraza. z SearchFaces API, lahko izvorni obraz primerjate z eno ali več zbirkami ciljnih obrazov.
Junija 2023, AWS je lansiral uporabniške vektorje, novo zmožnost, ki bistveno izboljša natančnost iskanja obrazov z uporabo več slik obraza uporabnika. Zdaj lahko ustvarite uporabniške vektorje, ki združujejo več vektorjev obrazov istega uporabnika. Uporabniški vektorji ponujajo večjo natančnost iskanja obrazov z robustnejšimi upodobitvami, ker vsebujejo različne stopnje osvetlitve, ostrine, poze, videza in več. To izboljša natančnost v primerjavi z iskanjem po posameznih vektorjih obraza.
V naslednjih razdelkih opisujemo postopek uporabe uporabniških vektorjev Amazon Rekognition. Vodimo vas skozi ustvarjanje zbirke, shranjevanje vektorjev obrazov v to zbirko, združevanje teh vektorjev obrazov v uporabniške vektorje in nato primerjavo rezultatov iskanja s temi posameznimi vektorji obrazov in uporabniškimi vektorji.
Pregled rešitev
Za to rešitev uporabljamo zbirko uporabnikov Amazon Rekognition, vsak s svojimi povezanimi indeksiranimi vektorji obrazov iz številnih različnih slik obrazov za vsakega uporabnika.
Oglejmo si potek dela za izdelavo zbirke z uporabniki in obrazi:
- Ustvarite zbirko Amazon Rekognition.
- Za vsakega uporabnika ustvarite uporabnika v zbirki.
- Za vsako sliko uporabnika dodajte obraz v zbirko (IndexFaces, ki vrne ID obraza, ki ustreza vsakemu vektorju obraza).
- Povežite vse indeksirane ID-je obrazov z uporabnikom (to je potrebno za uporabniške vektorje).
Nato bomo primerjali naslednje poteke dela:
Iskanje z novo dano vhodno sliko glede na posamezne vektorje obrazov v naši zbirki:
- Pridobite vse obraze s slike (DetectFaces).
- Za vsak obraz primerjajte posamezne obraze v naši zbirki (SearchFacesByImage).
Iskanje z novo dano vhodno sliko glede na uporabniške vektorje v naši zbirki:
- Pridobite vse obraze s slike (DetectFaces).
- Za vsak obraz primerjajte z uporabniškim vektorjem (SearchUsersByImage).
Zdaj pa podrobneje opišemo rešitev.
Predpogoji
Svojemu pravilniku dodajte naslednji pravilnik AWS upravljanje identitete in dostopa (IAM) uporabnik ali vloga. Politika vam daje dovoljenje za ustrezne API-je Amazon Rekognition in omogoča dostop do Preprosta storitev shranjevanja Amazon (Amazon S3) vedro za shranjevanje slik:
Ustvarite zbirko Amazon Rekognition in dodajte uporabnike in obraze
Najprej ustvarimo vedro S3 za shranjevanje slik uporabnikov. Vedro organiziramo tako, da za vsakega uporabnika ustvarimo mapo, ki vsebuje njegove osebne slike. Naš mapo s slikami izgleda kot naslednja struktura:
Naše vedro S3 ima imenik za vsakega uporabnika, v katerem so shranjene njegove slike. Trenutno obstajata dve mapi in vsaka vsebuje več slik. Za svoje uporabnike lahko dodate več map, od katerih vsaka vsebuje eno ali več slik za indeksiranje.
Nato ustvarimo zbirko Amazon Rekognition. Dobavili smo helpers.py, ki vsebuje različne metode, ki jih uporabljamo:
- create_collection – Ustvari novo zbirko
- delete_collection – Izbrišite zbirko
- create_user – Ustvarite novega uporabnika v zbirki
- dodaj_obraze_v_zbirko – Dodajte obraze v zbirko
- associate_faces – Povežite face_ids z uporabnikom v zbirki
- get_subdirs – Pridobite vse podimenike pod predpono S3
- get_files – Pridobite vse datoteke pod predpono S3
Sledi primer metode za ustvarjanje zbirke Amazon Rekognition:
Ustvarite zbirko z naslednjo kodo:
Nato dodajmo obrazne vektorje v našo zbirko in jih združimo v uporabniške vektorje.
Za vsakega uporabnika v imeniku S3 ustvarimo uporabniški vektor v zbirki. Nato slike obrazov za vsakega uporabnika indeksiramo v zbirko kot posamezne vektorje obrazov, kar ustvari ID-je obrazov. Na koncu ID-je obrazov povežemo z ustreznim uporabniškim vektorjem.
To ustvari dve vrsti vektorjev v naši zbirki:
- Posamezni obrazni vektorji
- Uporabniški vektorji, ki so zgrajeni na podlagi ID-jev vektorjev obrazov, posredovanih z metodo
associate_faces
Glej naslednjo kodo:
Uporabljamo naslednje metode:
- get_subdirs – Vrne seznam vseh imenikov uporabnikov. V našem primeru je vrednost [Swami,Werner].
- get_files – Uporabniku vrne vse slikovne datoteke pod predpono S3.
- face_ids – To je seznam, ki vsebuje vse ID-je obrazov, ki pripadajo uporabniku. Ta seznam uporabljamo, ko kličemo na AssociateFaces API.
Kot je bilo že razloženo, lahko dodate več uporabnikov tako, da jim dodate mape (mapa narekuje ID uporabnika) in dodate svoje slike v to mapo (za datoteke ni potrebno razvrščanje).
Zdaj, ko je naše okolje nastavljeno in imamo vektorje posameznih obrazov in vektorje uporabnikov, primerjajmo našo kakovost iskanja z vsakim od njih. Da bi to naredili, uporabimo novo fotografijo z več ljudmi in poskušamo primerjati njihove obraze z našo zbirko, najprej z vektorji posameznih obrazov in nato z vektorji uporabnikov.
Iskanje obraza slike glede na zbirko posameznih vektorjev obraza
Za iskanje po naših posameznih vektorjih obrazov uporabljamo Amazon Rekognition SearchFacesByImage API. Ta funkcija uporablja izvorno sliko obraza za iskanje po posameznih vektorjih obraza v naši zbirki in vrne obraze, ki se ujemajo z našim definiranim pragom ocene podobnosti.
Pomemben dejavnik je, da SearchFacesByImage
API bo deloval samo na največjem obrazu, zaznanem na sliki. Če je prisotnih več obrazov, morate obrezati vsak posamezni obraz in ga ločeno posredovati metodi za identifikacijo.
Za pridobivanje podrobnosti obrazov iz slike (kot je njihova lokacija na sliki) uporabljamo Amazon Rekognition DetectFaces API.
Naslednja zaznaj_obraze_na_sliki metoda zaznava obraze na sliki. Za vsak obraz izvede naslednja dejanja:
- Natisnite lokacijo omejevalnega polja
- Obrežite obraz s slike in preverite, ali tak obraz obstaja v zbirki, ter natisnite uporabnika ali 'Neznano'
- Natisnite oceno podobnosti
Primer kode Python uporablja Pillow knjižnica za izvajanje manipulacij s slikami (kot je tiskanje, risanje in obrezovanje).
Uporabljamo 99-odstotni prag ocene podobnosti, kar je običajna nastavitev za primere uporabe preverjanja identitete.
Zaženite naslednjo kodo:
file_key
je ključ predmeta S3, ki ga želimo ujemati z našo zbirko. Priložili smo primer slike (photo.jpeg
) pod mapo s slikami.
Naslednja slika prikazuje naše rezultate.
Z uporabo praga 99 % je bila identificirana le ena oseba. Dr. Werner Vogels je bil označen kot Neznan. Če zaženemo isto kodo z nižjim pragom 90 (nastavimo prag=90), dobimo naslednje rezultate.
Zdaj vidimo, da ima obraz dr. Wernerja Vogla oceno podobnosti 96.86 %. Nato preverimo, ali lahko z uporabniškimi vektorji dosežemo rezultat podobnosti nad našim definiranim pragom.
Iskanje slike z obrazom glede na zbirko uporabniških vektorjev
Za iskanje po naših uporabniških vektorjih uporabljamo Amazon Rekognition SearchUsersByImage API. Ta funkcija uporablja izvorno sliko obraza za iskanje po uporabniških vektorjih v naši zbirki in vrne uporabnike, ki se ujemajo z našim definiranim pragom ocene podobnosti.
Ista ugotovitev je pomembna tukaj – SearchUsersByImage
API bo deloval samo na največjem obrazu, zaznanem na sliki. Če je prisotnih več obrazov, morate obrezati vsak posamezni obraz in ga ločeno posredovati metodi za identifikacijo.
Za pridobivanje podrobnosti obrazov iz slike (kot je njihova lokacija na sliki) uporabljamo Amazon Rekognition DetectFaces API.
Naslednja zaznaj_uporabnike_na_sliki metoda zaznava obraze na sliki. Za vsak obraz izvede naslednja dejanja:
- Natisnite lokacijo omejevalnega polja
- Obrežite obraz s slike in preverite, ali tak obraz uporabnika obstaja v naši zbirki, ter natisnite uporabnika ali 'Neznano'
- Natisnite oceno podobnosti
Glej naslednjo kodo:
Funkcija vrne spremenjeno sliko z rezultati, ki jih je mogoče shraniti v Amazon S3 ali natisniti. Funkcija terminalu posreduje tudi statistične podatke o ocenjeni starosti obrazov.
Zaženite naslednjo kodo:
Naslednja slika prikazuje naše rezultate.
Uporabniki, ki obstajajo v naši zbirki, so bili pravilno identificirani z visoko podobnostjo (več kot 99 %).
Oceno podobnosti smo lahko povečali z uporabo treh vektorjev obraza na uporabniški vektor. Ko povečamo število uporabljenih vektorjev obrazov, pričakujemo, da se bo povečal tudi rezultat podobnosti za prava ujemanja. Uporabite lahko do 100 obraznih vektorjev na uporabniški vektor.
Primer kode od konca do konca najdete v GitHub repozitorij. Vključuje podrobno Jupyterjev zvezek po katerem lahko tečeš Amazon SageMaker Studio (ali druge alternative).
Čiščenje
Če želite izbrisati zbirko, uporabite naslednjo kodo:
zaključek
V tej objavi smo predstavili, kako uporabiti uporabniške vektorje Amazon Rekognition za izvajanje iskanja obrazov glede na zbirko obrazov uporabnikov. Pokazali smo, kako izboljšati natančnost iskanja obrazov z uporabo več slik obrazov na uporabnika in jih primerjali s posameznimi vektorji obrazov. Poleg tega smo opisali, kako lahko uporabite različne API-je Amazon Rekognition za zaznavanje obrazov. Predloženi primer kode služi kot trdna podlaga za izdelavo funkcionalnega sistema za iskanje obrazov.
Za več informacij o uporabniških vektorjih Amazon Rekognition glejte Iskanje obrazov v zbirki. Če ste novi v storitvi Amazon Rekognition, lahko uporabite našo brezplačno stopnjo, ki traja 12 mesecev in vključuje obdelavo 5,000 slik na mesec ter shranjevanje 1,000 uporabniških vektorskih objektov na mesec.
O avtorjih
Arik Porat je višji arhitekt za rešitve za startupe pri Amazon Web Services. Sodeluje z zagonskimi podjetji, da bi jim pomagal zgraditi in oblikovati njihove rešitve v oblaku, ter je navdušen nad strojnim učenjem in rešitvami, ki temeljijo na vsebnikih. V prostem času Arik rad igra šah in video igre.
Eliran Efron je arhitekt za startup rešitve pri Amazon Web Services. Eliran je navdušenec nad podatki in računalništvom, ki pomaga zagonskim podjetjem pri načrtovanju njihovih sistemskih arhitektur. V prostem času Eliran rad izdeluje in dirka z avtomobili na dirkah Touring ter izdeluje naprave IoT.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoData.Network Vertical Generative Ai. Opolnomočite se. Dostopite tukaj.
- PlatoAiStream. Web3 Intelligence. Razširjeno znanje. Dostopite tukaj.
- PlatoESG. Ogljik, CleanTech, Energija, Okolje, sončna energija, Ravnanje z odpadki. Dostopite tukaj.
- PlatoHealth. Obveščanje o biotehnologiji in kliničnih preskušanjih. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/improve-accuracy-of-amazon-rekognition-face-search-with-user-vectors/
- :ima
- : je
- $GOR
- 000
- 1
- 10
- 100
- 12
- 12 mesecev
- 17
- 2023
- 28
- 30
- 7
- 9
- a
- Sposobna
- O meni
- nad
- dostop
- Račun
- natančnost
- natančna
- Doseči
- Ukrep
- dejavnosti
- dejanska
- dodajte
- dodajanje
- Poleg tega
- proti
- Vek
- agregat
- združevanje
- vsi
- omogočajo
- omogoča
- že
- Prav tako
- alternative
- Amazon
- Amazonsko ponovno vžiganje
- Amazon Web Services
- an
- in
- Še ena
- API
- API-ji
- Videz
- nastopi
- primerno
- arhitekture
- SE
- Array
- AS
- pomoč
- Sodelavec
- povezan
- At
- poskus
- Preverjanje pristnosti
- AWS
- temeljijo
- BE
- ker
- pripadnosti
- med
- telo
- tako
- Pasovi
- škatle
- izgradnjo
- zgrajena
- vendar
- by
- izračun
- klic
- kliče
- poziva
- CAN
- Lahko dobiš
- zmožnost
- avtomobili
- primeri
- preveriti
- Šah
- stranke
- Cloud
- Koda
- zbirka
- Zbirke
- Skupno
- primerjate
- v primerjavi z letom
- primerjavo
- Izračunajte
- premislek
- gradnjo
- vsebujejo
- Vsebuje
- pretvorbo
- pravilno
- Ustrezno
- ustvarjajo
- ustvari
- Ustvarjanje
- pridelek
- Trenutno
- Stranke, ki so
- datum
- Baze podatkov
- zmanjša
- opredeljen
- izkazati
- Dokazano
- opisati
- opisano
- Oblikovanje
- oblikovanje
- podrobno
- Podrobnosti
- odkrivanje
- Zaznali
- Ugotovite,
- naprave
- narekuje
- drugačen
- digitalni
- digitalna identiteta
- imeniki
- imenik
- zaslon
- do
- Ne
- tem
- opravljeno
- dr
- pripravi
- risanje
- med
- vsak
- prej
- učinek
- brez napora
- ostalo
- omogoča
- konec koncev
- navdušenec
- okolje
- zlasti
- ocenjeni
- Tudi
- Primer
- Razen
- obstajajo
- obstoječih
- obstaja
- izhodi
- pričakovati
- razložiti
- ekstrakt
- Obraz
- obrazi
- datoteke
- finančna
- finančne storitve
- Najdi
- prva
- označeno
- Plavaj
- po
- za
- format
- je pokazala,
- Fundacija
- brezplačno
- iz
- funkcija
- funkcionalno
- nadalje
- Games
- ustvarja
- dobili
- dana
- Giving
- nepovratna sredstva
- vodi
- Imajo
- he
- zdravstveno varstvo
- višina
- pomoč
- pomagači
- pomoč
- tukaj
- visoka
- več
- njegov
- Kako
- Kako
- HTML
- http
- HTTPS
- človeškega
- ID
- Identifikacija
- identificirati
- identiteta
- Preverjanje identitete
- ID-ji
- if
- slika
- slike
- izvajati
- uvoz
- Pomembno
- izboljšanje
- izboljšuje
- in
- vključuje
- Povečajte
- Indeks
- indeksirane
- individualna
- industrij
- Podatki
- vhod
- v
- sklican
- vključuje
- Internet stvari
- naprave
- IT
- ITS
- jpeg
- junij
- Ključne
- Največji
- nazadnje
- začela
- učenje
- levo
- Knjižnica
- Razsvetljava
- kot
- všeč mi je
- Seznam
- malo
- obremenitev
- kraj aktivnosti
- Poglej
- POGLEDI
- nizka
- nižje
- stroj
- strojno učenje
- IZDELA
- manipulacije
- Stave
- tekme
- ujemanje
- math
- matematični
- največja
- merjenje
- Metoda
- Metode
- minimalna
- modeli
- spremembe
- mesec
- mesecev
- več
- več
- morajo
- Ime
- potrebno
- Nimate
- Novo
- Naslednja
- št
- zdaj
- Številka
- predmet
- predmeti
- of
- ponudba
- Staro
- on
- Na vkrcanje
- ONE
- na spletu
- samo
- deluje
- or
- Ostalo
- drugače
- naši
- oris
- izhodi
- več
- par
- mimo
- strastno
- ljudje
- za
- izvajati
- opravlja
- Dovoljenje
- oseba
- Osebni
- fotografija
- platon
- Platonova podatkovna inteligenca
- PlatoData
- Predvajaj
- točke
- politika
- predstavljajo
- pozira
- Prispevek
- predstaviti
- predstavljeni
- Tiskanje
- tiskanje
- Postopek
- obravnavati
- če
- Python
- kakovost
- Dirka
- Dirke
- precej
- glejte
- pomembno
- zastopanje
- obvezna
- vir
- Odgovor
- Rezultati
- vrnitev
- vrne
- robusten
- vloga
- Run
- sagemaker
- Je dejal
- Enako
- shranjena
- rezultat
- Iskalnik
- iskanje
- oddelki
- glej
- višji
- služi
- Storitve
- Zasedanje
- nastavite
- nastavitev
- več
- Razstave
- bistveno
- Enostavno
- sam
- Velikosti
- trdna
- Rešitev
- rešitve
- nekaj
- vir
- Ustanavljanjem
- Izjava
- Statistika
- Status
- Korak
- Koraki
- shranjevanje
- trgovina
- trgovine
- shranjevanje
- tok
- Struktura
- taka
- dobavljeno
- sistem
- ciljna
- telekomunikacije
- terminal
- da
- O
- Vir
- njihove
- Njih
- POTEM
- Tukaj.
- jih
- ta
- tisti,
- 3
- Prag
- skozi
- živali
- čas
- do
- vrh
- touring
- Res
- poskusite
- dva
- Vrste
- pod
- neznan
- uporaba
- Rabljeni
- uporabnik
- Uporabniki
- uporablja
- uporabo
- navadno
- vrednost
- variacije
- različnih
- različno
- Preverjanje
- preverjanje
- različica
- zelo
- preko
- Video
- video igre
- želeli
- je
- we
- web
- spletne storitve
- so bili
- kdaj
- ali
- ki
- širina
- bo
- z
- brez
- potek dela
- delovnih tokov
- deluje
- bi
- let
- Vi
- Vaša rutina za
- zefirnet