»ID + Selfie« – izboljšanje preverjanja digitalne identitete z uporabo AWS PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

»ID + Selfie« – izboljšanje preverjanja digitalne identitete z uporabo AWS

Globalna pandemija COVID-19 je pospešila potrebo po preverjanju in vključevanju uporabnikov na spletu v več panogah, kot so finančne storitve, zavarovalništvo in zdravstvo. Ko gre za uporabniško izkušnjo, je ključnega pomena zagotoviti transakcijo brez trenja, hkrati pa ohraniti visok standard za preverjanje identitete. Vprašanje je, kako preveriti resnične ljudi v digitalnem svetu?

Amazonsko ponovno vžiganje zagotavlja vnaprej usposobljeno prepoznavanje obraza in zmogljivosti analize za preverjanje identitete v vaših spletnih aplikacijah, kot so bančništvo, ugodnosti, e-trgovina in še veliko več.

V tej objavi predstavljamo vzorec zasnove preverjanja identitete »ID + Selfie« in vzorčna koda lahko uporabite za ustvarjanje lastne končne točke REST za preverjanje identitete. To je običajen oblikovalski vzorec, ki ga lahko vključite v obstoječe ali nove rešitve, ki zahtevajo preverjanje identitete na podlagi obraza. Uporabnik predloži obliko identifikacije, kot je vozniško dovoljenje ali potni list. Uporabnik nato z aplikacijo posname selfie v realnem času. Nato primerjamo obraz iz dokumenta s selfijem v realnem času, posnetim na njihovi napravi.

Amazon Rekognition CompareFaces API

V središču oblikovalskega vzorca »ID + Selfie« je primerjava obraza na selfiju z obrazom na identifikacijskem dokumentu. Za to uporabljamo Amazon Rekognition CompareFaces API. API primerja obraz na izvorni vhodni sliki z obrazom ali obrazi, zaznanimi na ciljni vhodni sliki. V naslednjem primeru primerjamo vzorec vozniškega dovoljenja (levo) s selfijem (desno).

vir ciljna
»ID + Selfie« – izboljšanje preverjanja digitalne identitete z uporabo AWS PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Sledi primer kode API:

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'])

Več vrednosti je vrnjenih v Odgovor CompareFaces API. Osredotočamo se na Similarity vrnjena vrednost FaceMatches da potrdite, da se selfi ujema z navedenim ID-jem.

Razumevanje ključnih parametrov uglaševanja

SimilarityThreshold je privzeto nastavljeno na 80 % in bo vrnilo le rezultate z oceno podobnosti, ki je večja ali enaka 80 %. Prilagodite vrednost tako, da določite SimilarityThreshold parameter.

QualityFilter je vhodni parameter za filtriranje zaznanih obrazov, ki ne ustrezajo zahtevani vrstici kakovosti. Vrstica kakovosti temelji na različnih običajnih primerih uporabe. Uporaba QualityFilter za nastavitev vrstice kakovosti z določitvijo LOW, MEDIUMali HIGH. Če ne želite filtrirati obrazov slabe kakovosti, navedite NONE. Privzeta vrednost je NONE.

Pregled rešitev

Ustvarite lahko API »ID + Selfie« za preverjanje digitalne identitete z uvedbo naslednjih komponent:

  • REST API z metodo POST, ki nam omogoča pošiljanje koristnega tovora selfieja in identifikacije ter vrne odgovor, v tem primeru oceno podobnosti
  • Funkcija za sprejem tovora, pretvorbo slik v pravilno obliko in klic Amazon Rekognition compare_faces API.

Izvajamo Amazon API Gateway za funkcionalnost REST API in AWS Lambda za funkcijo.

Naslednji diagram ponazarja arhitekturo rešitve in potek dela.

»ID + Selfie« – izboljšanje preverjanja digitalne identitete z uporabo AWS PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Potek dela vsebuje naslednje korake:

  1. Uporabnik naloži zahtevani identifikacijski dokument in selfi.
  2. Naročnik odda identifikacijski dokument in selfi na končno točko REST.
  3. Končna točka REST odjemalcu vrne oceno podobnosti.
  4. Vrednotenje se izvede prek poslovne logike v vaši aplikaciji. Na primer, če je rezultat podobnosti pod 80 %, ne uspe pri preverjanju digitalne identitete; sicer prestane preverjanje digitalne identitete.
  5. Odjemalec pošlje status uporabniku.

Lambda koda

Funkcija Lambda pretvori dohodni koristni tovor iz base64 v bajt za vsako sliko in nato pošlje vir (selfi) in cilj (identifikacija) v Amazon Rekognition compare_faces API in vrne oceno podobnosti, prejeto v telesu odgovora API. Oglejte si naslednjo kodo:

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

  }

Razmestite projekt

Ta projekt je na voljo za uvajanje Vzorci AWS s Komplet za razvoj oblaka AWS (AWS CDK). Repozitorij lahko klonirate in uporabite naslednji postopek AWS CDK za uvedbo v svoj račun AWS.

  1. Nastavite uporabnika, ki ima dovoljenja za programsko uvajanje virov rešitve prek AWS CDK.
  2. Nastavite Vmesnik ukazne vrstice AWS (AWS CLI). Za navodila glejte Konfiguriranje CLI AWS.
  3. Če prvič uporabljate AWS CDK, izpolnite predpogoje, navedene v Delo z AWS CDK v Pythonu.
  4. Kloniraj GitHub repozitorij.
  5. Ustvarite virtualno okolje. Ukaz, ki ga uporabljate, je odvisen od vašega OS:
    1. Če uporabljate Windows, zaženite naslednji ukaz v terminalskem oknu iz vira kloniranega repozitorija:
      ..venvScriptsactivate

    2. Če uporabljate Mac ali Linux, zaženite naslednji ukaz v terminalskem oknu iz vira kloniranega repozitorija:
      .venv/bin/activate

  6. Po aktiviranju virtualnega okolja namestite standardne odvisnosti aplikacije:
    python -m pip install -r requirements.txt

  7. Zdaj, ko je okolje nastavljeno in so zahteve izpolnjene, lahko izdamo ukaz za uvedbo AWS CDK za uvedbo tega projekta v AWS:
    CDK Deploy

Izvajajte klice API-ja

Tovor moramo poslati v formatu base64 na končno točko REST. Za klic API uporabljamo datoteko Python, ki nam omogoča, da odpremo izvorne in ciljne datoteke, jih pretvorimo v base64 in pošljemo koristni tovor v API Gateway. Ta koda je na voljo v repozitoriju.

Upoštevajte, da SOURCE in TARGET lokacije datotek bodo v vašem lokalnem datotečnem sistemu, URL pa je URL prehoda API, ustvarjen med ustvarjanjem projekta.

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())

Čiščenje

Za izdelavo tega projekta smo uporabili AWS CDK, tako da lahko lokalno odpremo svoj projekt in izdamo naslednji ukaz AWS CDK za čiščenje virov:

CDK Destroy

zaključek

Tukaj imate, oblikovalski vzorec »ID + Selfie« s preprostim API-jem, ki ga lahko integrirate s svojo aplikacijo za izvajanje preverjanja digitalne identitete. V naslednji objavi v naši seriji bomo ta vzorec še razširili z ekstrahiranjem besedila iz identifikacijskega dokumenta in iskanjem zbirke obrazov, da preprečimo podvajanje.

Če želite izvedeti več, si oglejte Vodnik za razvijalce Amazon Rekognition pri zaznavanju in analizi obrazov.


O avtorjih

»ID + Selfie« – izboljšanje preverjanja digitalne identitete z uporabo AWS PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. Mike Ames je glavni arhitekt rešitev umetne inteligence/ML pri AWS. Podjetjem pomaga pri uporabi storitev strojnega učenja in umetne inteligence za boj proti goljufijam, zapravljanju in zlorabi. V prostem času ga lahko najdete pri gorskem kolesarjenju, kickboxingu ali igranju kitare v metal bendu iz 90. let.

»ID + Selfie« – izboljšanje preverjanja digitalne identitete z uporabo AWS PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Noah Donaldson je arhitekt rešitev pri AWS, ki podpira zvezne finančne organizacije. Navdušen je nad tehnologijo AI/ML, ki lahko zmanjša ročne postopke, izboljša izkušnje strank in pomaga pri reševanju zanimivih problemov. Zunaj službe rad preživlja čas na ledu s sinom, ko igra hokej, z najstarejšo hčerko lovi, z najmlajšo hčerko pa strelja na obroče.

Časovni žig:

Več od Strojno učenje AWS