"ID + Selfie" – Digitaalisen henkilöllisyyden vahvistuksen parantaminen AWS PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

"ID + Selfie" – Digitaalisen henkilöllisyyden vahvistamisen parantaminen AWS:n avulla

Maailmanlaajuinen COVID-19-pandemia on lisännyt tarvetta todentaa ja saada käyttäjät verkossa useilla toimialoilla, kuten rahoituspalveluissa, vakuutuksissa ja terveydenhuollossa. Mitä tulee käyttäjäkokemukseen, on ratkaisevan tärkeää tarjota kitkaton tapahtuma ja samalla säilyttää korkeatasoinen henkilöllisyyden todentaminen. Kysymys kuuluu, kuinka voit todentaa todelliset ihmiset digitaalisessa maailmassa?

Amazonin tunnistus tarjoaa valmiiksi koulutetut kasvojentunnistus- ja analyysiominaisuudet henkilöllisyyden todentamiseen verkkosovelluksiin, kuten pankkipalveluihin, etuihin, verkkokauppaan ja paljon muuta.

Tässä viestissä esittelemme "ID + Selfie" -henkilöllisyyden vahvistussuunnittelumallin ja näytekoodi voit käyttää oman henkilöllisyyden vahvistuksen REST-päätepisteen luomiseen. Tämä on yleinen suunnittelumalli, jonka voit sisällyttää olemassa oleviin tai uusiin ratkaisuihin, jotka edellyttävät kasvopohjaista henkilöllisyyden todentamista. Käyttäjä esittää henkilöllisyystodistuksen, kuten ajokortin tai passin. Käyttäjä ottaa sitten reaaliaikaisen selfien sovelluksella. Sitten vertaamme asiakirjan kasvoja heidän laitteellaan otettuun reaaliaikaiseen selfie-kuvaan.

Amazon Rekognition CompareFaces API

ID + Selfie -suunnittelumallin ytimenä on selfien kasvojen vertailu henkilötodistuksessa oleviin kasvoihin. Käytämme tähän Amazon Rekognition -ohjelmaa CompareFaces API. API vertaa lähdesyötekuvassa olevia kasvoja kohdetulokuvassa havaittuihin kasvoihin. Seuraavassa esimerkissä vertaamme malliajokorttia (vasemmalla) selfieeseen (oikealla).

lähde Kohde
"ID + Selfie" – Digitaalisen henkilöllisyyden vahvistuksen parantaminen AWS PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Seuraava on esimerkki API-koodista:

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

Useita arvoja palautetaan CompareFaces API vastaus. Keskitymme siihen Similarity arvo palautettiin FaceMatches vahvistaaksesi, että selfie vastaa annettua henkilötunnusta.

Keskeisten viritysparametrien ymmärtäminen

SimilarityThreshold on oletuksena 80 % ja se palauttaa vain tulokset, joiden samankaltaisuuspiste on suurempi tai yhtä suuri kuin 80 %. Säädä arvoa määrittämällä SimilarityThreshold parametri.

QualityFilter on syöttöparametri, joka suodattaa pois havaitut kasvot, jotka eivät täytä vaadittua laatupalkkia. Laatupalkki perustuu useisiin yleisiin käyttötapauksiin. Käyttää QualityFilter asettaaksesi laatupalkin määrittämällä LOW, MEDIUMtai HIGH. Jos et halua suodattaa huonolaatuisia kasvoja, määritä NONE. Oletusarvo on NONE.

Ratkaisun yleiskatsaus

Voit luoda ID + Selfie -sovellusliittymän digitaalisen henkilöllisyyden vahvistamista varten ottamalla käyttöön seuraavat komponentit:

  • REST-sovellusliittymä POST-menetelmällä, jonka avulla voimme lähettää selfien ja tunnistushyötykuorman ja palauttaa vastauksen, tässä tapauksessa samankaltaisuuspisteen
  • Toiminto vastaanottaa hyötykuorma, muuntaa kuvat oikeaan muotoon ja kutsua Amazon Rekognition compare_faces API.

Toteutamme Amazon API -yhdyskäytävä REST API -toiminnallisuudelle ja AWS Lambda toimintoa varten.

Seuraava kaavio havainnollistaa ratkaisun arkkitehtuuria ja työnkulkua.

"ID + Selfie" – Digitaalisen henkilöllisyyden vahvistuksen parantaminen AWS PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Työnkulku sisältää seuraavat vaiheet:

  1. Käyttäjä lataa vaaditun henkilöllisyystodistuksen ja selfien.
  2. Asiakas toimittaa henkilöllisyystodistuksen ja selfien REST-päätepisteeseen.
  3. REST-päätepiste palauttaa samankaltaisuuspisteen asiakkaalle.
  4. Arviointi tehdään liiketoimintalogiikan avulla hakemuksessasi. Jos samankaltaisuuspiste on esimerkiksi alle 80 %, se ei läpäise digitaalisen henkilöllisyyden tarkistusta; muuten se läpäisee digitaalisen henkilöllisyyden tarkistuksen.
  5. Asiakas lähettää tilan käyttäjälle.

Lambda-koodi

Lambda-toiminto muuntaa saapuvan hyötykuorman base64:stä tavuksi jokaiselle kuvalle ja lähettää sitten lähteen (selfie) ja kohteen (tunniste) Amazon Rekognitionille. compare_faces API ja palauttaa API-vastauksen rungossa saadun samankaltaisuuspisteen. Katso seuraava koodi:

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

  }

Ota projekti käyttöön

Tämä projekti on käytettävissä käyttöönoton kautta AWS-näytteet jossa AWS Cloud Development Kit (AWS CDK). Voit kloonata arkiston ja käyttää seuraavaa AWS CDK -prosessia ottaaksesi sen käyttöön AWS-tilillesi.

  1. Määritä käyttäjä, jolla on oikeudet ottaa ohjelmallisesti käyttöön ratkaisuresurssit AWS CDK:n kautta.
  2. Aseta AWS-komentoriviliitäntä (AWS CLI). Katso ohjeet kohdasta AWS CLI: n määrittäminen.
  3. Jos tämä on ensimmäinen kerta, kun käytät AWS CDK:ta, täytä kohdassa luetellut edellytykset Työskentely AWS CDK:n kanssa Pythonissa.
  4. Kloonaa GitHub-arkisto.
  5. Luo virtuaalinen ympäristö. Käyttämäsi komento riippuu käyttöjärjestelmästäsi:
    1. Jos käytät Windowsia, suorita seuraava komento pääteikkunassasi kloonatun arkiston lähteestä:
      ..venvScriptsactivate

    2. Jos käytät Macia tai Linuxia, suorita seuraava komento pääteikkunassasi kloonatun arkiston lähteestä:
      .venv/bin/activate

  6. Kun olet aktivoinut virtuaaliympäristön, asenna sovelluksen vakioriippuvuudet:
    python -m pip install -r requirements.txt

  7. Nyt kun ympäristö on määritetty ja vaatimukset täytetty, voimme antaa AWS CDK -käyttöönottokomennon ottaaksesi tämän projektin käyttöön AWS:ssä:
    CDK Deploy

Tee API-kutsuja

Meidän on lähetettävä hyötykuorma base64-muodossa REST-päätepisteeseen. Käytämme Python-tiedostoa API-kutsun tekemiseen, jonka avulla voimme avata lähde- ja kohdetiedostot, muuntaa ne base64-muotoon ja lähettää hyötykuorman API-yhdyskäytävään. Tämä koodi on saatavilla arkistosta.

Huomaa, että SOURCE ja TARGET tiedostojen sijainnit ovat paikallisessa tiedostojärjestelmässäsi, ja URL-osoite on API-yhdyskäytävän URL-osoite, joka on luotu projektin luomisen aikana.

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

Puhdistaa

Käytimme AWS CDK:ta tämän projektin rakentamiseen, jotta voimme avata projektimme paikallisesti ja antaa seuraavan AWS CDK -komennon resurssien puhdistamiseksi:

CDK Destroy

Yhteenveto

Siinä on se "ID + Selfie" -suunnittelukuvio yksinkertaisella API:lla, jonka voit integroida sovellukseesi suorittaaksesi digitaalisen henkilöllisyyden todentamisen. Sarjamme seuraavassa viestissä laajennamme tätä mallia edelleen poimimalla tekstiä henkilöllisyystodistuksesta ja etsimällä kasvojen kokoelmaa päällekkäisyyden estämiseksi.

Jos haluat lisätietoja, tutustu Amazon Rekognition -kehittäjäopas kasvojen tunnistamisessa ja analysoinnissa.


Tietoja Tekijät

"ID + Selfie" – Digitaalisen henkilöllisyyden vahvistuksen parantaminen AWS PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai. Mike Ames on johtava soveltavan AI/ML-ratkaisujen arkkitehti AWS:llä. Hän auttaa yrityksiä käyttämään koneoppimista ja tekoälypalveluita petosten, tuhlauksen ja väärinkäytösten torjuntaan. Vapaa-ajallaan voit löytää hänet maastopyöräilemässä, potkunyrkkeilyssä tai soittamassa kitaraa 90-luvun metallibändissä.

"ID + Selfie" – Digitaalisen henkilöllisyyden vahvistuksen parantaminen AWS PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Noah Donaldson on AWS:n ratkaisuarkkitehti, joka tukee liittovaltion rahoitusorganisaatioita. Hän on innoissaan AI/ML-tekniikasta, joka voi vähentää manuaalisia prosesseja, parantaa asiakaskokemuksia ja auttaa ratkaisemaan mielenkiintoisia ongelmia. Työn ulkopuolella hän viettää aikaa jäällä poikansa kanssa pelaamassa jääkiekkoa, metsästäen vanhimman tyttärensä kanssa ja ampumalla vanteita nuorimman tyttärensä kanssa.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen