"ID + Selfie" – Forbedrer digital identitetsverifisering ved hjelp av AWS PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

"ID + Selfie" - Forbedrer digital identitetsverifisering ved hjelp av AWS

Den globale COVID-19-pandemien har akselerert behovet for å verifisere og ombord brukere på nettet på tvers av flere bransjer, for eksempel finansielle tjenester, forsikring og helsetjenester. Når det kommer til brukeropplevelse er det avgjørende å tilby en friksjonsfri transaksjon samtidig som man opprettholder en høy standard for identitetsverifisering. Spørsmålet er, hvordan verifiserer du virkelige mennesker i den digitale verden?

Amazon-anerkjennelse gir ferdigtrente ansiktsgjenkjennings- og analysefunksjoner for identitetsverifisering til dine nettapplikasjoner, for eksempel banktjenester, fordeler, e-handel og mye mer.

I dette innlegget presenterer vi "ID + Selfie" designmønster for identitetsbekreftelse og eksempelkode du kan bruke til å lage ditt eget REST-endepunkt for identitetsverifisering. Dette er et vanlig designmønster som du kan inkorporere i eksisterende eller nye løsninger som krever ansiktsbasert identitetsverifisering. Brukeren presenterer en form for identifikasjon som førerkort eller pass. Brukeren tar en selfie i sanntid med applikasjonen. Deretter sammenligner vi ansiktet fra dokumentet med sanntidsselfien tatt på enheten deres.

Amazon Rekognition CompareFaces API

I kjernen av "ID + Selfie"-designmønsteret er sammenligningen av ansiktet i selfien med ansiktet på identifikasjonsdokumentet. Til dette bruker vi Amazon Rekognition CompareFaces API. API-en sammenligner et ansikt i kildeinndatabildet med et eller flere ansikter som er oppdaget i målinndatabildet. I følgende eksempel sammenligner vi et eksempel på førerkort (til venstre) med en selfie (til høyre).

kilde Target
"ID + Selfie" – Forbedrer digital identitetsverifisering ved hjelp av AWS PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Følgende er et eksempel på API-koden:

response = client.compare_faces(SimilarityThreshold=80,
                              SourceImage={'Bytes': s_bytes},
                              TargetImage={'Bytes': t_bytes})

for faceMatch in response['FaceMatches']:
    position = faceMatch['Face']['BoundingBox']
    similarity = str(faceMatch['Similarity'])

Flere verdier returneres i Sammenlign Faces API-svar. Vi fokuserer på Similarity verdi returnert inn FaceMatches for å bekrefte at selfien samsvarer med ID-en som er oppgitt.

Forstå nøkkelinnstillingsparametere

SimilarityThreshold er satt til 80 % som standard og vil bare returnere resultater med en likhetspoeng større enn eller lik 80 %. Juster verdien ved å spesifisere SimilarityThreshold parameter.

QualityFilter er en inngangsparameter for å filtrere ut oppdagede ansikter som ikke oppfyller en påkrevd kvalitetslinje. Kvalitetslinjen er basert på en rekke vanlige brukstilfeller. Bruk QualityFilter for å angi kvalitetslinjen ved å spesifisere LOW, MEDIUMeller HIGH. Hvis du ikke vil filtrere ansikter av dårlig kvalitet, spesifiser NONE. Standardverdien er NONE.

Løsningsoversikt

Du kan opprette en "ID + Selfie" API for digital identitetsverifisering ved å distribuere følgende komponenter:

  • Et REST API med en POST-metode som lar oss sende selfie- og identifikasjonsnyttelasten og returnerer et svar, i dette tilfellet likhetspoengene
  • En funksjon for å motta nyttelasten, konvertere bildene til riktig format og kalle Amazon Rekognition compare_faces API.

Vi implementerer Amazon API-gateway for REST API-funksjonalitet og AWS Lambda for funksjonen.

Følgende diagram illustrerer løsningsarkitekturen og arbeidsflyten.

"ID + Selfie" – Forbedrer digital identitetsverifisering ved hjelp av AWS PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Arbeidsflyten inneholder følgende trinn:

  1. Brukeren laster opp det nødvendige identifikasjonsdokumentet og en selfie.
  2. Klienten sender inn identifikasjonsdokumentet og selfien til REST-endepunktet.
  3. REST-endepunktet returnerer en likhetspoeng til klienten.
  4. En evaluering gjøres gjennom forretningslogikk i søknaden din. For eksempel, hvis likhetspoengsummen er under 80 %, mislykkes den i den digitale identitetskontrollen; ellers består den den digitale identitetskontrollen.
  5. Klienten sender status til brukeren.

Lambdakode

Lambda-funksjonen konverterer den innkommende nyttelasten fra base64 til byte for hvert bilde og sender deretter kilden (selfie) og målet (identifikasjon) til Amazon Rekognition compare_faces API og returnerer likhetspoengsummen mottatt i hoveddelen av API-svaret. Se følgende kode:

import boto3
import sys
import json
import base64


def lambda_handler(event, context):

  client = boto3.client('rekognition')

  payload_dict = json.loads(json.loads(event['body']))
  selfie = payload_dict['selfie']
  dl = payload_dict['dl']

  # convert text to base64
  s_base64 = dl.encode('utf-8')
  t_base64 = selfie.encode('utf-8')
  #convert base64 to bytes
  s_bytes = base64.b64decode(s_base64)
  t_bytes = base64.b64decode(t_base64)
  response = client.compare_faces(SimilarityThreshold=80,
                                SourceImage={'Bytes': s_bytes},
                                TargetImage={'Bytes': t_bytes})

  for faceMatch in response['FaceMatches']:
      position = faceMatch['Face']['BoundingBox']
      similarity = str(faceMatch['Similarity'])

  return {

    'statusCode': response['ResponseMetadata']['HTTPStatusCode'],

    'body': similarity

  }

Distribuer prosjektet

Dette prosjektet er tilgjengelig for distribusjon gjennom AWS-prøver med AWS skyutviklingssett (AWS CDK). Du kan klone depotet og bruke følgende AWS CDK-prosess for å distribuere til AWS-kontoen din.

  1. Sett opp en bruker som har tillatelser til å programmere distribuere løsningsressursene gjennom AWS CDK.
  2. Sett opp AWS kommandolinjegrensesnitt (AWS CLI). For instruksjoner, se Konfigurering av AWS CLI.
  3. Hvis dette er første gang du bruker AWS CDK, fullfør forutsetningene som er oppført i Arbeider med AWS CDK i Python.
  4. Klone GitHub repository.
  5. Lag det virtuelle miljøet. Kommandoen du bruker avhenger av operativsystemet ditt:
    1. Hvis du bruker Windows, kjør følgende kommando i terminalvinduet fra kilden til det klonede depotet:
      ..venvScriptsactivate

    2. Hvis du bruker Mac eller Linux, kjør følgende kommando i terminalvinduet fra kilden til det klonede depotet:
      .venv/bin/activate

  6. Etter å ha aktivert det virtuelle miljøet, installer appens standardavhengigheter:
    python -m pip install -r requirements.txt

  7. Nå som miljøet er satt opp og kravene er oppfylt, kan vi utstede AWS CDK-distribusjonskommandoen for å distribuere dette prosjektet til AWS:
    CDK Deploy

Foreta API-anrop

Vi må sende nyttelasten i base64-format til REST-endepunktet. Vi bruker en Python-fil for å foreta API-kallet, som lar oss åpne kilde- og målfilene, konvertere dem til base64 og sende nyttelasten til API-gatewayen. Denne koden er tilgjengelig i depotet.

Legg merke til at SOURCE og TARGET filplasseringer vil være på ditt lokale filsystem, og URL-en er API-gateway-URLen generert under opprettelsen av prosjektet.

import requests
from base64 import b64encode
from json import dumps

TARGET = '.png'
SOURCE = .png'
URL = "https://.execute-api..amazonaws.com//ips"
ENCODING = 'utf-8'
JSON_NAME = 'output.json'

# first: reading the binary stuff
with open(SOURCE, 'rb') as source_file:
    s_byte_content = source_file.read()
with open(TARGET, 'rb') as target_file:
    t_byte_content = target_file.read()

# second: base64 encode read data
s_base64_bytes = b64encode(s_byte_content)
t_base64_bytes = b64encode(t_byte_content)

# third: decode these bytes to text
s_base64_string = s_base64_bytes.decode(ENCODING)
t_base64_string = t_base64_bytes.decode(ENCODING)

# make raw data for json
raw_data = {
    " dl ": s_base64_string,
    " selfie ": t_base64_string
}

# now: encoding the data to json
json_data = dumps(raw_data, indent=2)

response = requests.post(url=URL, json=json_data)
response.raise_for_status()

print("Status Code", response.status_code)
print("Body ", response.json())

Rydd opp

Vi brukte AWS CDK til å bygge dette prosjektet, slik at vi kan åpne prosjektet vårt lokalt og utstede følgende AWS CDK-kommando for å rydde opp i ressursene:

CDK Destroy

konklusjonen

Der har du det, "ID + Selfie" designmønsteret med en enkel API som du kan integrere med applikasjonen din for å utføre digital identitetsverifisering. I neste innlegg i serien vår utvider vi dette mønsteret ytterligere ved å trekke ut tekst fra identifikasjonsdokumentet og søke i en samling ansikter for å forhindre duplisering.

For å lære mer, sjekk ut Amazon Rekognition utviklerveiledning på å oppdage og analysere ansikter.


Om forfatterne

"ID + Selfie" – Forbedrer digital identitetsverifisering ved hjelp av AWS PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Mike Ames er en hovedarkitekt for anvendt AI/ML-løsninger med AWS. Han hjelper bedrifter med å bruke maskinlæring og AI-tjenester for å bekjempe svindel, sløsing og misbruk. På fritiden kan du finne ham på terrengsykling, kickboksing eller gitar i et 90-talls metalband.

"ID + Selfie" – Forbedrer digital identitetsverifisering ved hjelp av AWS PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Noah Donaldson er en løsningsarkitekt hos AWS som støtter føderale finansielle organisasjoner. Han er begeistret for AI/ML-teknologi som kan redusere manuelle prosesser, forbedre kundeopplevelser og bidra til å løse interessante problemer. Utenom jobben liker han å tilbringe tid på isen sammen med sønnen og spille hockey, jakte med sin eldste datter og skyte bøyler med sin yngste datter.

Tidstempel:

Mer fra AWS maskinlæring