La verifica dell'identità dell'utente di persona è lenta da scalare, costosa e comporta notevoli difficoltà per gli utenti. La tecnologia di riconoscimento facciale basata sull'apprendimento automatico (ML) può consentire la verifica dell'identità dell'utente online. Rekognition di Amazon offerte pre-addestrate riconoscimento facciale funzionalità che puoi aggiungere rapidamente ai flussi di lavoro di onboarding e autenticazione degli utenti per verificare online le identità degli utenti che hanno aderito. Non è richiesta alcuna competenza in ML. Con Amazon Rekognition puoi eseguire l'onboarding e autenticare gli utenti in pochi secondi rilevando account fraudolenti o duplicati. Di conseguenza, puoi far crescere gli utenti più rapidamente, ridurre le frodi e abbassare i costi di verifica degli utenti.
In questo post descriviamo un tipico flusso di lavoro di verifica dell'identità e mostriamo come creare una soluzione di verifica dell'identità utilizzando varie API di Amazon Rekognition. Forniamo un'implementazione di esempio completa nel nostro Repository GitHub.
Flusso di lavoro di registrazione dell'utente
La figura seguente mostra un flusso di lavoro di esempio della registrazione di un nuovo utente. I passaggi tipici di questo processo sono:
- L'utente acquisisce l'immagine di un selfie e l'immagine di un documento di identità rilasciato dal governo.
- Controllo qualità dell'immagine selfie e facoltativo rilevazione del liveness del volto dell'utente.
- Confronto dell'immagine del selfie con l'immagine del volto del documento di identità.
- Controllo del selfie rispetto a un database di volti di utenti esistenti.
È possibile personalizzare il flusso in base al processo aziendale. Spesso contiene alcuni o tutti i passaggi presentati nel diagramma precedente. È possibile scegliere di eseguire tutti i passaggi in modo sincrono (attendere il completamento di un passaggio prima di passare a quello successivo). In alternativa, puoi eseguire alcuni dei passaggi evidenziati in arancione in modo asincrono (non attendere il completamento del passaggio) per accelerare il processo di registrazione dell'utente e migliorare l'esperienza del cliente. Se i passaggi non hanno esito positivo, è necessario ripristinare la registrazione dell'utente.
Oltre alla registrazione di un nuovo utente, un altro flusso comune è l'accesso di un utente esistente o di ritorno. In questo flusso, viene eseguito un controllo del volto dell'utente (selfie) rispetto a un volto precedentemente registrato. I passaggi tipici di questo processo includono l'acquisizione del volto dell'utente (selfie), il controllo della qualità dell'immagine del selfie e la ricerca e il confronto del selfie con il database dei volti. Il diagramma seguente mostra un possibile flusso.
Puoi personalizzare i passaggi del processo in base alle tue esigenze aziendali e scegliere di includere o escludere il rilevamento della vitalità.
Panoramica della soluzione
La seguente architettura di riferimento mostra come utilizzare Amazon Rekognition, insieme ad altri servizi AWS, per implementare la verifica dell'identità.
L'architettura include i seguenti componenti:
- Le applicazioni invocano Gateway API Amazon per indirizzare le richieste al corretto AWS Lambda funzione a seconda del flusso di utenti. Ci sono quattro azioni principali in questa soluzione: autenticazione, registrazione, registrazione con carta d'identità e aggiornamento.
- API Gateway utilizza un'integrazione del servizio per eseguire il Funzioni AWS Step macchina a stati express corrispondente al percorso specifico chiamato da API Gateway. All'interno di ogni passaggio, le funzioni Lambda sono responsabili dell'attivazione del set corretto di chiamate da e verso Amazon DynamoDB ed Servizio di archiviazione semplice Amazon (Amazon S3), insieme alle API Amazon Rekognition pertinenti.
- DynamoDB contiene gli ID dei volti (
face-id
), URI di percorso S3 e ID univoci (ad esempio il numero ID dipendente) per ciascunoface-id
. Amazon S3 memorizza tutte le immagini dei volti. - L'ultimo componente principale della soluzione è Amazon Recognition. Ogni flusso (autenticazione, registrazione, registrazione con carta d'identità e aggiornamento) chiama API Amazon Rekognition diverse a seconda dell'attività.
Prima di distribuire la soluzione, è importante conoscere i seguenti concetti e descrizioni API:
- Collezioni – Amazon Rekognition archivia le informazioni sui volti rilevati in contenitori lato server noti come collezioni. Puoi utilizzare le informazioni sul viso archiviate in una raccolta per cercare volti noti in immagini, video archiviati e video in streaming. È possibile utilizzare le raccolte in una varietà di scenari. Ad esempio, è possibile creare una raccolta di volti per archiviare le immagini di badge scansionate utilizzando il
IndexFaces
operazione. Quando un dipendente entra nell'edificio, un'immagine del suo volto viene catturata e inviata alSearchFacesByImage
operazione. Se la corrispondenza facciale produce un punteggio di somiglianza sufficientemente alto (diciamo 99%), puoi autenticare il dipendente. - API DetectFaces – Questa API rileva i volti all'interno di un'immagine fornita come input e restituisce informazioni sui volti. In un flusso di lavoro di registrazione utente, questa operazione può aiutare a schermare le immagini prima di passare alla fase successiva. Ad esempio, puoi verificare se una foto contiene un volto, se la persona identificata ha l'orientamento corretto e se non indossa dispositivi che bloccano il volto, come occhiali da sole o un berretto.
- API IndexFaces – Questa API rileva i volti nell'immagine di input e li aggiunge alla raccolta specificata. Questa operazione viene utilizzata per aggiungere un'immagine schermata a una raccolta per query future.
- API SearchFacesByImage – Per una determinata immagine di input, l'API rileva prima il volto più grande nell'immagine, quindi cerca nella raccolta specificata i volti corrispondenti. L'operazione confronta le funzioni della faccia di input con le funzioni della faccia nella raccolta specificata.
- API CompareFaces – Questa API confronta un volto nell'immagine di input di origine con ciascuno dei 100 volti più grandi rilevati nell'immagine di input di destinazione. Se l'immagine di origine contiene più volti, il servizio rileva il volto più grande e lo confronta con ogni volto rilevato nell'immagine di destinazione. Per il nostro caso d'uso, prevediamo che sia l'immagine di origine che quella di destinazione contengano una singola faccia.
- API EliminaFaces – Questa API elimina i volti da una raccolta. Specifica un ID raccolta e una matrice di ID viso da rimuovere.
Prerequisiti
Prima di iniziare, completa i seguenti prerequisiti:
- Crea un account AWS.
- Clona il repository di esempio sul tuo computer locale:
Utilizziamo il client di test in questo repository per testare i vari flussi di lavoro.
- Installazione Pitone 3.6+ sul tuo computer locale.
Distribuisci la soluzione
Scegli l'appropriato AWS CloudFormazione stack per eseguire il provisioning della soluzione nel tuo account AWS nella regione preferita:
Virginia settentrionale (us-east-1
)
Come discusso in precedenza, questa soluzione utilizza API Gateway integrato con Step Functions e le API Amazon Rekognition per eseguire i flussi di lavoro di verifica dell'identità. Per testare la soluzione, seguire i passaggi in repository di codice per utilizzare il client di prova fornito.
Le sezioni seguenti descrivono i vari flussi di lavoro implementati tramite Step Functions.
Nuova registrazione utente
L'immagine seguente illustra la definizione delle funzioni passo per la registrazione del nuovo utente. I passaggi sono definiti nel register_user.py
file.
In questo flusso di lavoro vengono chiamate tre funzioni: rilevare-volti, facce di ricercae facce-indice. rilevare-volti La funzione chiama l'API Amazon Rekognition DetectFaces per determinare se un volto viene rilevato in un'immagine ed è utilizzabile. Alcuni dei controlli di qualità includono la determinazione che nell'immagine sia presente solo il volto, la garanzia che il volto non sia oscurato da occhiali da sole o un cappello e la conferma che il volto non sia ruotato utilizzando la funzione posa dimensione. Se l'immagine supera il controllo di qualità, il facce di ricerca la funzione cerca una corrispondenza facciale esistente nelle raccolte di Amazon Rekognition confermando il Soglia FaceMatch il punteggio di confidenza soddisfa l'obiettivo di soglia. Per ulteriori informazioni fare riferimento alla sezione sull'utilizzo soglie di somiglianza per abbinare i volti. Se l'immagine del viso non esiste nelle raccolte, il file facce-indice viene chiamata la funzione per indicizzare il volto nella raccolta. I metadati delle immagini dei volti vengono archiviati nella tabella DynamoDB e le immagini dei volti vengono archiviate in un bucket S3.
Per registrare un nuovo utente, eseguire il file app.py sceneggiatura (test-client
) eseguendo il seguente codice:
Se la registrazione del nuovo utente ha esito positivo, le informazioni sugli attributi dell'immagine del volto vengono aggiunte in DynamoDB.
Registrazione nuovo utente con carta d'identità
I passaggi per registrare un nuovo utente con una carta d'identità sono simili ai passaggi per registrare un nuovo utente. L'immagine seguente illustra i passaggi definiti nel file register_idcard.py
file.
Le stesse tre funzioni che abbiamo utilizzato per registrare un utente (detect-faces
, search-faces
e index-faces
) vengono richiamati per questo flusso di lavoro. Innanzitutto, il cliente cattura un'immagine del proprio documento d'identità e un'immagine dal vivo del proprio volto. L'immagine del volto viene controllata per confermare che soddisfi i nostri standard di qualità definiti utilizzando il file DetectFaces
API. Se l'immagine soddisfa gli standard di qualità, l'immagine del volto dal vivo viene confrontata con il volto nell'ID per determinare se corrispondono. Se le immagini non corrispondono, l'utente riceve un errore e il processo termina. Se le immagini corrispondono, controlliamo se il volto esiste già nelle raccolte Amazon Rekognition utilizzando il file SearchFacesByImage
API. I risultati della ricerca vengono confrontati con l'immagine del volto corrente dell'utente. Se l'utente esiste già, l'utente non è registrato. Se l'utente non esiste nelle collezioni, le relative proprietà vengono estratte dalla carta d'identità. Puoi estrarre coppie chiave-valore dai documenti di identità utilizzando il nuovo strumento Testo Amazon AnalyzeID
API. Le proprietà estratte dalla carta d'identità vengono unite e il volto dell'utente viene indicizzato nella tabella DynamoDB. Una volta indicizzata l'immagine, il processo di registrazione del nuovo ID utente è completo.
Autenticazione utente esistente
L'immagine seguente illustra il flusso di lavoro per l'autenticazione di un utente esistente. I passaggi sono definiti nel auth.py
file.
Questo flusso di lavoro Step Function chiama tre funzioni: detect-faces
, compare-faces
e search-faces
. Dopo il detect-faces
la funzione verifica che l'immagine del viso catturata sia valida, il compare-faces
La funzione controlla la tabella DynamoDB per un'immagine del volto che corrisponde a un utente esistente. Se viene trovata una corrispondenza in DynamoDB, l'utente esegue correttamente l'autenticazione. Se non viene trovata una corrispondenza, il file search-faces
viene chiamata la funzione per cercare l'immagine del volto nelle raccolte. L'utente viene verificato e il processo di autenticazione viene completato se l'immagine del suo volto esiste nelle raccolte. In caso contrario, l'accesso dell'utente verrà negato.
Per testare l'autenticazione di un utente esistente, eseguire il file app.py
sceneggiatura (test-client
) eseguendo il seguente codice::
Login utente esistente con richiesta di aggiornamento foto
L'immagine seguente illustra il flusso di lavoro per aggiornare la foto di un utente esistente. I passaggi sono definiti nel update.py
file.
Questo flusso di lavoro richiama quattro funzioni: detect-faces
, compare-faces
, search-faces
e index-faces
. I passaggi sono simili a quelli del flusso di lavoro di autenticazione utente esistente. Dopo che l'utente ha acquisito l'immagine del volto e ne è stata verificata la qualità, controlliamo la presenza di un'immagine del volto corrispondente in DynamoDB utilizzando il comando compare-faces
funzione. Se viene trovata una corrispondenza per l'utente, il suo profilo utente viene aggiornato, la sua nuova immagine del volto viene indicizzata chiamando il file index-faces
funzione e il processo di aggiornamento viene completato. In alternativa, se non viene trovata una corrispondenza, viene richiamata la funzione search-faces per cercare l'immagine del volto nelle raccolte Amazon Rekognition. Se l'immagine del volto viene trovata nella raccolta, il profilo dell'utente viene aggiornato e la nuova immagine del volto viene indicizzata. L'accesso dell'utente viene negato se la sua immagine non viene trovata nelle raccolte.
Per aggiornare la foto di un utente esistente, esegui il file app.py sceneggiatura (test-client
) eseguendo il seguente codice:
ripulire
Per evitare di accumulare costi aggiuntivi nel tuo account AWS, elimina le risorse di cui hai eseguito il provisioning accedendo alla console AWS CloudFormation ed eliminando il Riv-Prod
pila.
L'eliminazione dello stack non elimina il bucket S3 che hai creato. Questo bucket memorizza tutte le immagini dei volti. Se scegli di eliminare il bucket S3, accedi alla console Amazon S3, svuota il bucket e conferma di volerlo eliminare definitivamente.
Conclusione
Amazon Rekognition semplifica l'aggiunta dell'analisi delle immagini alle applicazioni di verifica dell'identità utilizzando una tecnologia di deep learning comprovata, altamente scalabile che non richiede competenze di ML per essere utilizzata. Amazon Recognition fornisce rilevamento e confronto dei volti capacità. Con una combinazione di Rileva Facce, ConfrontaFaces, IndiceFaccee CercaFacesByImage API, puoi implementare i flussi comuni relativi alla registrazione di nuovi utenti e agli accessi degli utenti esistenti.
Le raccolte di Amazon Rekognition forniscono un metodo per archiviare le informazioni sui volti rilevati nei container lato server. È quindi possibile utilizzare le informazioni sul viso archiviate in una raccolta per cercare i volti noti nelle immagini. Quando si utilizzano le raccolte, non è necessario archiviare le foto originali dopo aver indicizzato i volti nella raccolta. Le raccolte di Amazon Rekognition non mantengono le immagini reali. Al contrario, l'algoritmo di rilevamento sottostante rileva i volti nell'immagine di input, estrae le caratteristiche facciali in un vettore di caratteristiche per ciascun volto e lo memorizza nella raccolta.
Per iniziare il tuo viaggio verso la verifica dell'identità, visita Verifica dell'identità tramite Amazon Recognition.
Informazioni sugli autori
Nate Bachmeier è un AWS Senior Solutions Architect che esplora nomadicamente New York, un'integrazione cloud alla volta. È specializzato nella migrazione e nella modernizzazione delle applicazioni. Oltre a questo, Nate è uno studente a tempo pieno e ha due figli.
Antonio Pasquariello è un Enterprise Solutions Architect con sede a New York City. Fornisce consulenza tecnica ai clienti durante il loro percorso verso il cloud, in particolare sulle migliori pratiche di sicurezza. Ha conseguito un master e una laurea in ingegneria elettrica e informatica presso l'Università di Boston. Nel tempo libero gli piace il ramen, scrivere saggistica e filosofia.
Lauren Mullenx è una Solutions Architect con sede a Denver, CO. Lavora con i clienti per aiutarli a progettare soluzioni su AWS. Nel tempo libero le piace fare escursioni e cucinare la cucina hawaiana.
Amit Gupta è Senior AI Services Solutions Architect presso AWS. È appassionato di offrire ai clienti soluzioni di machine learning ben progettate su larga scala.
Fonte: https://aws.amazon.com/blogs/machine-learning/identity-verification-using-amazon-rekognition/
- '
- 100
- 107
- 7
- accesso
- Il mio account
- aggiuntivo
- AI
- Servizi di intelligenza artificiale
- algoritmo
- Tutti
- Amazon
- Rekognition di Amazon
- .
- api
- API
- applicazioni
- architettura
- in giro
- Autenticazione
- AWS
- MIGLIORE
- best practice
- Boston
- Boston University
- costruire
- Costruzione
- affari
- oneri
- Controlli
- Città
- Cloud
- codice
- collezioni
- Uncommon
- componente
- fiducia
- consolle
- Tecnologie Container
- cucina
- Costi
- Corrente
- esperienza del cliente
- Clienti
- Banca Dati
- apprendimento profondo
- Denver
- rivelazione
- Dimensioni
- documenti
- finisce
- Ingegneria
- Impresa
- Enterprise Solutions
- entra
- esperienza
- estratti
- Faccia
- facce
- riconoscimento facciale
- Tecnologia di riconoscimento facciale
- caratteristica
- Caratteristiche
- figura
- Nome
- flusso
- seguire
- frode
- Gratis
- function
- futuro
- Crescere
- Alta
- Evidenziato
- escursionismo
- Come
- Tutorial
- HTTPS
- Identità
- Verifica dell'identità
- Immagine
- analisi dell'immagine
- Index
- informazioni
- integrazione
- IT
- bambini
- apprendimento
- locale
- machine learning
- maggiore
- partita
- ML
- MS
- New York
- New York City
- Offerte
- Procedura di Onboarding
- online
- Oregon
- Altro
- filosofia
- presenti
- Profilo
- Python
- qualità
- ridurre
- Iscrizione
- Risorse
- Risultati
- problemi
- Rotolo
- strada
- Correre
- running
- Scala
- allo
- Cerca
- problemi di
- selfie
- Servizi
- set
- Un'espansione
- Soluzioni
- specializzata
- velocità
- standard
- inizia a
- iniziato
- Regione / Stato
- conservazione
- Tornare al suo account
- negozi
- Streaming
- studente
- di successo
- Target
- Consulenza
- Tecnologia
- test
- L’ORIGINE
- tempo
- Università
- Aggiornanento
- utenti
- Convalida
- Video
- Virginia
- aspettare
- entro
- flusso di lavoro
- lavori
- scrittura