“ID + Selfie” – Improving digital identity verification using AWS PlatoBlockchain Data Intelligence. Vertical Search. Ai.

„ID + szelfi” – A digitális személyazonosság-ellenőrzés javítása az AWS segítségével

A COVID-19 globális világjárvány felgyorsította a felhasználók online ellenőrzésének és bevonásának szükségességét számos iparágban, például a pénzügyi szolgáltatásokban, a biztosításban és az egészségügyben. Ami a felhasználói élményt illeti, kulcsfontosságú, hogy súrlódásmentes tranzakciót biztosítsunk a személyazonosság-ellenőrzés magas színvonalának fenntartása mellett. A kérdés az, hogyan lehet valódi embereket ellenőrizni a digitális világban?

Amazon felismerés előre betanított arcfelismerési és -elemzési képességeket biztosít a személyazonosság-ellenőrzéshez online alkalmazásaihoz, például banki szolgáltatásokhoz, juttatásokhoz, e-kereskedelemhez és még sok máshoz.

Ebben a bejegyzésben bemutatjuk az „azonosító + szelfi” személyazonosság-ellenőrző tervezési mintát és mintakód segítségével létrehozhatja saját személyazonosság-ellenőrző REST-végpontját. Ez egy általános tervezési minta, amelyet beépíthet olyan meglévő vagy új megoldásokba, amelyek arcalapú személyazonosság-ellenőrzést igényelnek. A felhasználó bemutat egy azonosítót, például jogosítványt vagy útlevelet. A felhasználó valós idejű szelfit készít az alkalmazással. Ezután összehasonlítjuk a dokumentum arcát a készülékükön készült valós idejű szelfivel.

Az Amazon Rekognition CompareFaces API

Az „ID + szelfi” tervezési minta lényege a szelfi arcának és az azonosító okmányon szereplő arcnak az összehasonlítása. Ehhez az Amazon Rekognitiont használjuk CompareFaces API. Az API összehasonlítja a forrásbemeneti képben lévő arcot a cél bemeneti képen észlelt arccal vagy arcokkal. A következő példában összehasonlítunk egy minta vezetői engedélyt (balra) egy szelfivel (jobbra).

forrás cél
“ID + Selfie” – Improving digital identity verification using AWS PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A következő példa az API kódra:

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

Számos értéket ad vissza a CompareFaces API válasz. Arra koncentrálunk Similarity visszaadott érték FaceMatches annak ellenőrzéséhez, hogy a szelfi megegyezik-e a megadott azonosítóval.

A kulcshangolási paraméterek megértése

SimilarityThreshold alapértelmezés szerint 80%-ra van állítva, és csak 80%-nál nagyobb vagy azzal egyenlő hasonlósági pontszámot ad vissza. Állítsa be az értéket a SimilarityThreshold paraméter.

QualityFilter egy bemeneti paraméter az észlelt arcok kiszűrésére, amelyek nem felelnek meg a szükséges minőségi sávnak. A minőségi sáv számos általános használati eseten alapul. Használat QualityFilter megadásával állítsa be a minőségi sávot LOW, MEDIUMvagy HIGH. Ha nem szeretné kiszűrni a rossz minőségű arcokat, adja meg NONE. Az alapértelmezett érték a NONE.

Megoldás áttekintése

Létrehozhat egy „ID + Selfie” API-t a digitális személyazonosság-ellenőrzéshez a következő összetevők telepítésével:

  • REST API POST metódussal, amely lehetővé teszi, hogy elküldjük a szelfit és az azonosító rakományt, és visszaadja a választ, ebben az esetben a hasonlósági pontszámot
  • Egy funkció a hasznos terhelés fogadására, a képek megfelelő formátumra konvertálására és az Amazon Rekognition meghívására compare_faces API.

Végrehajtjuk Amazon API átjáró a REST API funkcióhoz és AWS Lambda a funkcióhoz.

A következő diagram a megoldás architektúráját és munkafolyamatát mutatja be.

“ID + Selfie” – Improving digital identity verification using AWS PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A munkafolyamat a következő lépéseket tartalmazza:

  1. A felhasználó feltölti a szükséges személyazonosító okmányt és egy szelfit.
  2. Az ügyfél elküldi az azonosító dokumentumot és a szelfit a REST végpontnak.
  3. A REST végpont hasonlósági pontszámot ad vissza az ügyfélnek.
  4. Az értékelés az alkalmazásban szereplő üzleti logikán keresztül történik. Például, ha a hasonlósági pontszám 80% alatt van, az nem felel meg a digitális személyazonosság-ellenőrzésnek; ellenkező esetben átmegy a digitális személyazonosság ellenőrzésén.
  5. A kliens elküldi az állapotot a felhasználónak.

Lambda kód

A Lambda függvény a bejövő terhelést base64-ről bájtra konvertálja minden egyes képhez, majd elküldi a forrást (szelfit) és a célt (azonosító) az Amazon Rekognition számára. compare_faces API-t, és visszaadja az API-válasz törzsében kapott hasonlósági pontszámot. Lásd a következő kódot:

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

  }

Telepítse a projektet

Ez a projekt telepíthető AWS minták a ... val AWS Cloud Development Kit (AWS CDK). A tárat klónozhatja, és a következő AWS CDK-folyamat segítségével telepítheti az AWS-fiókjába.

  1. Állítson be egy olyan felhasználót, aki jogosult a megoldási erőforrások programozott telepítésére az AWS CDK-n keresztül.
  2. Állítsa be a AWS parancssori interfész (AWS CLI). Az utasításokat lásd Az AWS parancssori felület konfigurálása.
  3. Ha először használja az AWS CDK-t, teljesítse a felsorolt ​​előfeltételeket Az AWS CDK használata Pythonban.
  4. Klónozza a GitHub tárház.
  5. Hozzon létre egy virtuális környezetet. A használt parancs az operációs rendszertől függ:
    1. Windows használata esetén futtassa a következő parancsot a terminál ablakában a klónozott tárhely forrásából:
      ..venvScriptsactivate

    2. Ha Mac vagy Linux rendszert használ, futtassa a következő parancsot a terminál ablakában a klónozott lerakat forrásából:
      .venv/bin/activate

  6. A virtuális környezet aktiválása után telepítse az alkalmazás szabványos függőségeit:
    python -m pip install -r requirements.txt

  7. Most, hogy a környezet be van állítva és a követelmények teljesülnek, kiadhatjuk az AWS CDK deployment parancsot a projekt AWS-be való telepítéséhez:
    CDK Deploy

API-hívásokat kezdeményezhet

A hasznos terhet base64 formátumban kell elküldenünk a REST végpontra. Az API-híváshoz Python-fájlt használunk, amely lehetővé teszi a forrás- és célfájlok megnyitását, base64-re való konvertálását, és a hasznos terhelés elküldését az API-átjárónak. Ez a kód elérhető a tárolóban.

Ne feledje, hogy a SOURCE és a TARGET A fájlok helye a helyi fájlrendszeren lesz, az URL pedig a projekt létrehozása során generált API-átjáró URL-je.

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

Tisztítsuk meg

A projekt felépítéséhez az AWS CDK-t használtuk, így helyileg megnyithatjuk projektünket, és kiadhatjuk a következő AWS CDK parancsot az erőforrások megtisztításához:

CDK Destroy

Következtetés

Itt van az „ID + Selfie” tervezési minta egy egyszerű API-val, amelyet integrálhat az alkalmazásba a digitális személyazonosság-ellenőrzés végrehajtásához. Sorozatunk következő bejegyzésében tovább bővítjük ezt a mintát azáltal, hogy szöveget kinyerünk az azonosító okmányból, és az arcok gyűjteményében keresünk, hogy elkerüljük a többszörözést.

Ha többet szeretne megtudni, nézze meg a Amazon Rekognition fejlesztői útmutató az arcok észlelésében és elemzésében.


A szerzőkről

“ID + Selfie” – Improving digital identity verification using AWS PlatoBlockchain Data Intelligence. Vertical Search. Ai. Mike Ames vezető alkalmazott AI/ML megoldások építésze az AWS-vel. Segít a vállalatoknak a gépi tanulás és az AI-szolgáltatások használatában a csalás, a pazarlás és a visszaélések leküzdésében. Szabadidejében találkozhat vele mountain bike-ozni, kick-boxozni vagy gitározni egy 90-es évek metalbandájában.

“ID + Selfie” – Improving digital identity verification using AWS PlatoBlockchain Data Intelligence. Vertical Search. Ai.Noah Donaldson az AWS megoldástervezője, szövetségi pénzügyi szervezeteket támogat. Izgatott az AI/ML technológia, amely csökkentheti a manuális folyamatokat, javíthatja az ügyfelek élményét, és segíthet megoldani az érdekes problémákat. Munkán kívül szívesen tölt időt a jégen fiával jégkorongozva, legidősebb lányával vadászik, és legfiatalabb lányával karikát lő.

Időbélyeg:

Még több AWS gépi tanulás