In verschillende sectoren, zoals de financiële dienstverlening, telecommunicatie en gezondheidszorg, gebruiken klanten een digitaal identiteitsproces, dat doorgaans meerdere stappen omvat om eindgebruikers te verifiëren tijdens online onboarding of step-up-authenticatie. Een voorbeeld van een stap die kan worden gebruikt is het zoeken naar gezichten, waarmee kan worden bepaald of het gezicht van een nieuwe eindgebruiker overeenkomt met het gezicht dat aan een bestaand account is gekoppeld.
Het bouwen van een nauwkeurig gezichtszoeksysteem omvat verschillende stappen. Het systeem moet menselijke gezichten in afbeeldingen kunnen detecteren, de gezichten in vectorrepresentaties kunnen extraheren, gezichtsvectoren in een database kunnen opslaan en nieuwe gezichten kunnen vergelijken met bestaande ingangen. Amazon Rekognition maakt dit moeiteloos door u vooraf getrainde modellen te bieden die kunnen worden aangeroepen via eenvoudige API-aanroepen.
Met Amazon Rekognition kunt u een zeer hoge nauwkeurigheid bij het zoeken naar gezichten bereiken met één gezichtsafbeelding. In sommige gevallen kunt u meerdere afbeeldingen van het gezicht van dezelfde persoon gebruiken om gebruikersvectoren te maken en de nauwkeurigheid nog verder te verbeteren. Dit is vooral handig als afbeeldingen variaties in belichting, poses en uiterlijk hebben.
In dit bericht laten we zien hoe je de Amazon Rekognition Face Search API's kunt gebruiken met gebruikersvectoren om de gelijkenisscore voor echte overeenkomsten te verhogen en de gelijkenisscore voor echte niet-overeenkomsten te verlagen.
We vergelijken de resultaten van het uitvoeren van gezichtsmatching met en zonder gebruikersvectoren.
Amazon Herkenning gezichtsmatching
Met Amazon Rekognition face matching kan de gelijkenis worden gemeten van een gezichtsvector die uit de ene afbeelding is geëxtraheerd, met een gezichtsvector die uit een andere afbeelding is geëxtraheerd. Van een paar gezichtsafbeeldingen wordt gezegd dat ze a zijn echte wedstrijd als beide afbeeldingen het gezicht van dezelfde persoon bevatten, en a echte non-match anders. Amazon Rekognition retourneert een score voor de gelijkenis van de bron- en doelgezichten. De minimale gelijkenisscore is 0, wat zeer weinig gelijkenis impliceert, en het maximum is 100.
Voor het vergelijken van een brongezicht met een verzameling doelgezichten (1:N-matching), kunt u met Amazon Rekognition een Collection-object maken en dit vullen met gezichten uit afbeeldingen met behulp van API-aanroepen.
Wanneer een gezicht aan een verzameling wordt toegevoegd, slaat Amazon Rekognition niet de daadwerkelijke afbeelding van het gezicht op, maar eerder de gezichtsvector, een wiskundige weergave van het gezicht. Met de Zoek Gezichten API kunt u een brongezicht vergelijken met een of meerdere verzamelingen doelgezichten.
In juni 2023, AWS heeft gebruikersvectoren gelanceerd, een nieuwe mogelijkheid die de nauwkeurigheid van het zoeken naar gezichten aanzienlijk verbetert door meerdere gezichtsafbeeldingen van een gebruiker te gebruiken. Nu kunt u gebruikersvectoren maken, die meerdere gezichtsvectoren van dezelfde gebruiker samenvoegen. Gebruikersvectoren bieden een hogere nauwkeurigheid bij het zoeken naar gezichten en robuustere afbeeldingen, omdat ze verschillende gradaties van belichting, scherpte, pose, uiterlijk en meer bevatten. Dit verbetert de nauwkeurigheid vergeleken met zoeken op individuele gezichtsvectoren.
In de volgende secties schetsen we het proces van het gebruik van Amazon Rekognition-gebruikersvectoren. We begeleiden u bij het maken van een verzameling, het opslaan van gezichtsvectoren in die verzameling, het aggregeren van die gezichtsvectoren in gebruikersvectoren en het vergelijken van de resultaten van het zoeken met die individuele gezichtsvectoren en gebruikersvectoren.
Overzicht oplossingen
Voor deze oplossing gebruiken we een Amazon Rekognition-verzameling van gebruikers, elk met de bijbehorende geïndexeerde gezichtsvectoren uit een aantal verschillende afbeeldingen van gezichten voor elke gebruiker.
Laten we eens kijken naar de workflow voor het opbouwen van een verzameling met gebruikers en gezichten:
- Creëer een Amazon Rekognition-collectie.
- Maak voor elke gebruiker een gebruiker in de verzameling.
- Voeg voor elke afbeelding van de gebruiker het gezicht toe aan de verzameling (IndexGezichten, die de gezichts-ID retourneert die overeenkomt met elke gezichtsvector).
- Koppel alle geïndexeerde gezichts-ID's aan de gebruiker (dit is noodzakelijk voor gebruikersvectoren).
Vervolgens vergelijken we de volgende workflows:
Zoeken met een nieuw gegeven invoerbeeld tegen individuele gezichtsvectoren in onze collectie:
- Haal alle gezichten uit een afbeelding (DetectGezichten).
- Vergelijk voor elk gezicht de afzonderlijke gezichten in onze collectie (ZoekenFacesByImage).
Zoeken met een nieuw gegeven invoerbeeld tegen gebruikersvectoren in onze collectie:
- Haal alle gezichten uit een afbeelding (DetectGezichten).
- Vergelijk voor elk gezicht met de gebruikersvector (ZoekenUsersByImage).
Laten we nu de oplossing in details beschrijven.
Voorwaarden
Voeg het volgende beleid toe aan uw AWS Identiteits- en toegangsbeheer (IAM) gebruiker of rol. Het beleid verleent u toestemming voor de relevante Amazon Rekognition API's en geeft toegang tot een Amazon eenvoudige opslagservice (Amazon S3) bucket om de afbeeldingen op te slaan:
Maak een Amazon Rekognition-collectie en voeg gebruikers en gezichten toe
Eerst maken we een S3-bucket om de afbeeldingen van gebruikers op te slaan. We organiseren de bucket door voor elke gebruiker een map te maken met zijn persoonlijke afbeeldingen. Ons map afbeeldingen ziet eruit als de volgende structuur:
Onze S3-bucket heeft voor elke gebruiker een map waarin zijn afbeeldingen worden opgeslagen. Er zijn momenteel twee mappen en elke map bevat meerdere afbeeldingen. U kunt meer mappen voor uw gebruikers toevoegen, die elk een of meer afbeeldingen bevatten die moeten worden geïndexeerd.
Vervolgens creëren we onze Amazon Rekognition-collectie. Wij hebben geleverd helpers.py, die verschillende methoden bevat die we gebruiken:
- maak_collectie – Maak een nieuwe collectie
- verwijder_collectie – Een verzameling verwijderen
- maak_gebruiker – Maak een nieuwe gebruiker aan in een collectie
- voeg_gezichten_aan_collectie toe – Voeg gezichten toe aan de collectie
- geassocieerde_gezichten – Face_ids koppelen aan een gebruiker in een verzameling
- get_submappen – Haal alle submappen op onder het S3-voorvoegsel
- get_files – Haal alle bestanden op onder het S3-voorvoegsel
Hieronder volgt een voorbeeldmethode voor het maken van een Amazon Rekognition-collectie:
Maak de collectie met de volgende code:
Laten we vervolgens de gezichtsvectoren aan onze verzameling toevoegen en deze samenvoegen tot gebruikersvectoren.
Voor elke gebruiker in de S3-directory maken we een gebruikersvector in de verzameling. Vervolgens indexeren we de gezichtsafbeeldingen voor elke gebruiker in de collectie als individuele gezichtsvectoren, die gezichts-ID's genereren. Ten slotte koppelen we de gezichts-ID's aan de juiste gebruikersvector.
Hierdoor ontstaan er twee soorten vectoren in onze collectie:
- Individuele gezichtsvectoren
- Gebruikersvectoren, die zijn opgebouwd op basis van de gezichtsvector-ID's die met behulp van de methode zijn geleverd
associate_faces
Zie de volgende code:
Wij gebruiken de volgende methoden:
- get_submappen – Geeft een lijst terug met alle gebruikersmappen. In ons voorbeeld is de waarde [Swami,Werner].
- get_files – Retourneert alle afbeeldingsbestanden onder het S3-voorvoegsel voor de gebruiker.
- face_ids – Dit is een lijst met alle gezichts-ID's van een gebruiker. Wij gebruiken deze lijst bij het bellen naar de AssociateFaces API.
Zoals eerder uitgelegd, kunt u meer gebruikers toevoegen door er mappen voor toe te voegen (de map bepaalt de gebruikers-ID) en uw afbeeldingen in die map toe te voegen (er is geen volgorde voor de bestanden vereist).
Nu onze omgeving is ingesteld en we zowel individuele gezichtsvectoren als gebruikersvectoren hebben, gaan we onze zoekkwaliteit met elk van deze vergelijken. Om dat te doen, gebruiken we een nieuwe foto met meerdere mensen en proberen we hun gezichten te vergelijken met onze collectie, eerst met de individuele gezichtsvectoren en vervolgens met de gebruikersvectoren.
Gezicht zoeken van afbeelding tegen een verzameling individuele gezichtsvectoren
Om te zoeken op basis van onze individuele gezichtsvectoren, gebruiken we de Amazon Rekognition ZoekenFacesByImage API. Deze functie gebruikt een brongezichtsafbeelding om te zoeken naar individuele gezichtsvectoren in onze collectie en retourneert gezichten die overeenkomen met onze gedefinieerde drempel voor de gelijkheidsscore.
Een belangrijke overweging is dat de SearchFacesByImage
API werkt alleen op het grootste gezicht dat in de afbeelding wordt gedetecteerd. Als er meerdere gezichten aanwezig zijn, moet u elk afzonderlijk gezicht bijsnijden en afzonderlijk doorgeven aan de identificatiemethode.
Voor het extraheren van gezichtsdetails uit een afbeelding (zoals hun locatie op de afbeelding) gebruiken we de Amazon Rekognition DetectGezichten API.
De volgende detect_faces_in_image methode detecteert gezichten in een afbeelding. Voor elk gezicht voert het de volgende acties uit:
- Druk de locatie van het grenskader af
- Snijd het gezicht uit de afbeelding bij en controleer of een dergelijk gezicht in de collectie voorkomt en druk de gebruiker of 'Onbekend' af
- Druk de gelijkenisscore af
De voorbeeld-Python-code gebruikt de Hoofdkussen bibliotheek voor het uitvoeren van beeldmanipulaties (zoals afdrukken, tekenen en bijsnijden).
We gebruiken een drempelwaarde voor de gelijkenisscore van 99%, wat een gebruikelijke instelling is voor gebruiksscenario's voor identiteitsverificatie.
Voer de volgende code uit:
file_key
is de S3-objectsleutel die we willen vergelijken met onze verzameling. We hebben een voorbeeldafbeelding aangeleverd (photo.jpeg
) onder de map afbeeldingen.
De volgende afbeelding toont onze resultaten.
Bij gebruik van een drempel van 99% werd slechts één persoon geïdentificeerd. Dr. Werner Vogels werd gemarkeerd als Onbekend. Als we dezelfde code uitvoeren met een lagere drempelwaarde van 90 (stel drempelwaarde = 90 in), krijgen we de volgende resultaten.
Nu zien we dat het gezicht van Dr. Werner Vogel een gelijkenisscore heeft van 96.86%. Laten we vervolgens controleren of we de gelijkenisscore boven onze gedefinieerde drempel kunnen krijgen door gebruikersvectoren te gebruiken.
Gezichtszoekopdracht van afbeelding tegen een verzameling gebruikersvectoren
Om te zoeken op onze gebruikersvectoren gebruiken we de Amazon Rekognition ZoekenUsersByImage API. Deze functie gebruikt een brongezichtsafbeelding om te zoeken op gebruikersvectoren in onze collectie en retourneert gebruikers die overeenkomen met onze gedefinieerde drempelwaarde voor de gelijkheidsscore.
Dezelfde overweging is hier relevant – de SearchUsersByImage
API werkt alleen op het grootste gezicht dat in de afbeelding wordt gedetecteerd. Als er meerdere gezichten aanwezig zijn, moet u elk afzonderlijk gezicht bijsnijden en afzonderlijk doorgeven aan de identificatiemethode.
Voor het extraheren van gezichtsdetails uit een afbeelding (zoals hun locatie op de afbeelding) gebruiken we de Amazon Rekognition DetectGezichten API.
De volgende detect_users_in_image methode detecteert gezichten in een afbeelding. Voor elk gezicht voert het de volgende acties uit:
- Druk de locatie van het grenskader af
- Snijd het gezicht uit de afbeelding bij en controleer of een dergelijk gebruikersgezicht in onze collectie voorkomt en print de gebruiker of 'Onbekend'
- Druk de gelijkenisscore af
Zie de volgende code:
De functie retourneert een gewijzigde afbeelding met de resultaten die kunnen worden opgeslagen op Amazon S3 of afgedrukt. De functie stuurt ook statistieken over de geschatte leeftijd van de gezichten naar de terminal.
Voer de volgende code uit:
De volgende afbeelding toont onze resultaten.
De gebruikers in onze collectie zijn correct geïdentificeerd en hebben een hoge mate van gelijkenis (meer dan 99%).
We konden de gelijkenisscore verhogen door drie gezichtsvectoren per gebruikersvector te gebruiken. Naarmate we het aantal gebruikte gezichtsvectoren vergroten, verwachten we dat de gelijkenisscore voor echte overeenkomsten ook zal toenemen. U kunt maximaal 100 gezichtsvectoren per gebruikersvector gebruiken.
Een end-to-end voorbeeldcode is te vinden in de GitHub-repository. Het bevat een gedetailleerd Jupyter notitieboek waar je op kunt rennen Amazon SageMaker Studio (of andere alternatieven).
Opruimen
Gebruik de volgende code om de verzameling te verwijderen:
Conclusie
In dit bericht hebben we gepresenteerd hoe je Amazon Rekognition-gebruikersvectoren kunt gebruiken om gezichtszoeken te implementeren op basis van een verzameling gezichten van gebruikers. We hebben gedemonstreerd hoe u de nauwkeurigheid van het zoeken naar gezichten kunt verbeteren door meerdere gezichtsafbeeldingen per gebruiker te gebruiken en deze te vergelijken met individuele gezichtsvectoren. Daarnaast hebben we beschreven hoe je de verschillende Amazon Rekognition API’s kunt gebruiken om gezichten te detecteren. De meegeleverde voorbeeldcode dient als een solide basis voor het bouwen van een functioneel gezichtszoeksysteem.
Voor meer informatie over Amazon Rekognition-gebruikersvectoren raadpleegt u Gezichten zoeken in een verzameling. Als je nieuw bent bij Amazon Rekognition, kun je onze Free Tier gebruiken, die 12 maanden duurt en inclusief het verwerken van 5,000 afbeeldingen per maand en het opslaan van 1,000 gebruikersvectorobjecten per maand.
Over de auteurs
Arik Porat is een Senior Startups Solutions Architect bij Amazon Web Services. Hij werkt met startups om hen te helpen bij het bouwen en ontwerpen van hun oplossingen in de cloud, en heeft een passie voor machine learning en containergebaseerde oplossingen. In zijn vrije tijd speelt Arik graag schaak en videogames.
Eliran Efron is een Startups Solutions Architect bij Amazon Web Services. Eliran is een data- en computerliefhebber en helpt startups bij het ontwerpen van hun systeemarchitecturen. In zijn vrije tijd bouwt en racet Eliran graag auto's in Touring-races en bouwt hij IoT-apparaten.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- Plato Gezondheid. Intelligentie op het gebied van biotech en klinische proeven. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/improve-accuracy-of-amazon-rekognition-face-search-with-user-vectors/
- : heeft
- :is
- $UP
- 000
- 1
- 10
- 100
- 12
- 12 maanden
- 17
- 2023
- 28
- 30
- 7
- 9
- a
- in staat
- Over
- boven
- toegang
- Account
- nauwkeurigheid
- accuraat
- Bereiken
- Actie
- acties
- daadwerkelijk
- toevoegen
- toe te voegen
- Daarnaast
- tegen
- Leeftijden
- aggregaat
- aggregeren
- Alles
- toelaten
- toestaat
- al
- ook
- alternatieven
- Amazone
- Amazon Rekognition
- Amazon Web Services
- an
- en
- Nog een
- api
- APIs
- uiterlijk
- verschijningen
- passend
- architecturen
- ZIJN
- reeks
- AS
- bijstaan
- Associëren
- geassocieerd
- At
- poging
- authenticatie
- AWS
- gebaseerde
- BE
- omdat
- behorende
- tussen
- lichaam
- zowel
- Box camera's
- dozen
- bouw
- bebouwd
- maar
- by
- berekenen
- Bellen
- bellen
- oproepen
- CAN
- Kan krijgen
- bekwaamheid
- auto's
- gevallen
- controle
- Schaakspel
- klant
- Cloud
- code
- Collectie
- collecties
- Gemeen
- vergelijken
- vergeleken
- vergelijken
- Berekenen
- overweging
- construeren
- bevatten
- bevat
- converteren
- correct
- Overeenkomend
- en je merk te creëren
- creëert
- Wij creëren
- gewas
- Op dit moment
- Klanten
- gegevens
- Database
- verlagen
- gedefinieerd
- tonen
- gedemonstreerd
- beschrijven
- beschreven
- Design
- ontwerpen
- gedetailleerd
- gegevens
- opsporen
- gedetecteerd
- Bepalen
- systemen
- dicteert
- anders
- digitaal
- digitale identiteit
- directories
- directory
- Display
- do
- Nee
- doen
- gedaan
- dr
- trekken
- tekening
- gedurende
- elk
- Vroeger
- effect
- zonder inspanning
- anders
- maakt
- eind tot eind
- enthousiast
- Milieu
- vooral
- geschat
- Zelfs
- voorbeeld
- Behalve
- bestaan
- bestaand
- bestaat
- exits
- verwachten
- uitgelegd
- extract
- Gezicht
- gezichten
- Bestanden
- financieel
- financiële diensten
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- Voornaam*
- markeerde
- Vlotter
- volgend
- Voor
- formaat
- gevonden
- Foundation
- Gratis
- oppompen van
- functie
- functioneel
- verder
- Spellen
- genereert
- krijgen
- gegeven
- Vrijgevigheid
- subsidies
- gids
- Hebben
- he
- gezondheidszorg
- Hoogte
- hulp
- helpers
- nuttig
- hier
- Hoge
- hoger
- zijn
- Hoe
- How To
- HTML
- http
- HTTPS
- menselijk
- ID
- Identificatie
- geïdentificeerd
- Identiteit
- identiteit verificatie
- ids
- if
- beeld
- afbeeldingen
- uitvoeren
- importeren
- belangrijk
- verbeteren
- verbetert
- in
- omvat
- Laat uw omzet
- index
- geïndexeerd
- individueel
- industrieën
- informatie
- invoer
- in
- ingeroepen
- gaat
- iot
- iot apparaten
- IT
- HAAR
- jpeg
- juni
- sleutel
- grootste
- tot slot
- gelanceerd
- leren
- links
- Bibliotheek
- Verlichting
- als
- sympathieën
- Lijst
- Elke kleine stap levert grote resultaten op!
- laden
- plaats
- Kijk
- LOOKS
- Laag
- te verlagen
- machine
- machine learning
- MERKEN
- manipulaties
- Match
- lucifers
- matching
- wiskunde
- wiskundig
- maximaal
- het meten van
- methode
- methoden
- minimum
- modellen
- gewijzigd
- Maand
- maanden
- meer
- meervoudig
- Dan moet je
- naam
- noodzakelijk
- Noodzaak
- New
- volgende
- geen
- nu
- aantal
- object
- objecten
- of
- bieden
- Oud
- on
- Onboarding
- EEN
- online.
- Slechts
- besturen
- or
- Overige
- anders-
- onze
- schets
- uitgangen
- over
- paar
- passeren
- hartstochtelijk
- Mensen
- voor
- uitvoerend
- presteert
- toestemming
- persoon
- persoonlijk
- foto
- Plato
- Plato gegevensintelligentie
- PlatoData
- Spelen
- punten
- beleidsmaatregelen
- pose
- vormt
- Post
- presenteren
- gepresenteerd
- het drukken
- verwerking
- mits
- Python
- kwaliteit
- Race
- wedstrijden
- liever
- verwijzen
- relevante
- vertegenwoordiging
- nodig
- hulpbron
- antwoord
- Resultaten
- terugkeer
- Retourneren
- robuust
- Rol
- lopen
- sagemaker
- Zei
- dezelfde
- gered
- partituur
- Ontdek
- zoeken
- secties
- zien
- senior
- bedient
- Diensten
- Sessie
- reeks
- het instellen van
- verscheidene
- Shows
- aanzienlijk
- Eenvoudig
- single
- Maat
- solide
- oplossing
- Oplossingen
- sommige
- bron
- Startups
- Statement
- statistiek
- Status
- Stap voor
- Stappen
- mediaopslag
- shop
- winkels
- bewaartemperatuur
- stream
- structuur
- dergelijk
- geleverde
- system
- doelwit
- telecommunicatie
- terminal
- dat
- De
- De Bron
- hun
- Ze
- harte
- Er.
- ze
- dit
- die
- drie
- drempel
- Door
- rij
- niet de tijd of
- naar
- top
- touring
- waar
- proberen
- twee
- types
- voor
- onbekend
- .
- gebruikt
- Gebruiker
- gebruikers
- toepassingen
- gebruik
- doorgaans
- waarde
- variaties
- divers
- wisselende
- Verificatie
- controleren
- versie
- zeer
- via
- Video
- video games
- willen
- was
- we
- web
- webservices
- waren
- wanneer
- of
- welke
- Breedte
- wil
- Met
- zonder
- workflow
- workflows
- Bedrijven
- zou
- jaar
- You
- Your
- zephyrnet