„ID + Selfie“ – Verbesserung der Überprüfung der digitalen Identität mithilfe von AWS PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

„ID + Selfie“ – Verbesserung der digitalen Identitätsprüfung mit AWS

Die globale COVID-19-Pandemie hat die Notwendigkeit beschleunigt, Benutzer in mehreren Branchen wie Finanzdienstleistungen, Versicherungen und Gesundheitswesen online zu verifizieren und einzubinden. Wenn es um die Benutzererfahrung geht, ist es entscheidend, eine reibungslose Transaktion bereitzustellen und gleichzeitig einen hohen Standard für die Identitätsprüfung aufrechtzuerhalten. Die Frage ist, wie verifiziert man echte Menschen in der digitalen Welt?

Amazon-Anerkennung bietet vortrainierte Gesichtserkennungs- und Analysefunktionen zur Identitätsprüfung für Ihre Online-Anwendungen wie Banking, Benefits, E-Commerce und vieles mehr.

In diesem Beitrag stellen wir das Designmuster „ID + Selfie“ zur Identitätsprüfung vor Beispielcode Sie können verwenden, um Ihren eigenen REST-Endpunkt für die Identitätsprüfung zu erstellen. Dies ist ein gängiges Entwurfsmuster, das Sie in vorhandene oder neue Lösungen integrieren können, die eine gesichtsbasierte Identitätsprüfung erfordern. Der Benutzer präsentiert eine Form der Identifizierung wie einen Führerschein oder Reisepass. Der Benutzer nimmt dann mit der Anwendung ein Echtzeit-Selfie auf. Wir vergleichen dann das Gesicht aus dem Dokument mit dem Echtzeit-Selfie, das auf ihrem Gerät aufgenommen wurde.

Die Amazon Rekognition CompareFaces-API

Kern des Gestaltungsmusters „ID + Selfie“ ist der Abgleich des Gesichts auf dem Selfie mit dem Gesicht auf dem Ausweisdokument. Dazu verwenden wir die Amazon Rekognition CompareFaces API. Die API vergleicht ein Gesicht im Quelleingabebild mit einem oder mehreren Gesichtern, die im Zieleingabebild erkannt wurden. Im folgenden Beispiel vergleichen wir einen Musterführerschein (links) mit einem Selfie (rechts).

Quelle Target
„ID + Selfie“ – Verbesserung der Überprüfung der digitalen Identität mithilfe von AWS PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Das Folgende ist ein Beispiel für den API-Code:

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

In der werden mehrere Werte zurückgegeben Antwort der CompareFaces-API. Wir konzentrieren uns auf die Similarity Wert zurückgegeben in FaceMatches um zu überprüfen, ob das Selfie mit der angegebenen ID übereinstimmt.

Verstehen der wichtigsten Tuning-Parameter

SimilarityThreshold ist standardmäßig auf 80 % eingestellt und gibt nur Ergebnisse mit einem Ähnlichkeitswert von mindestens 80 % zurück. Passen Sie den Wert an, indem Sie die angeben SimilarityThreshold Parameters.

QualityFilter ist ein Eingabeparameter, um erkannte Gesichter herauszufiltern, die eine erforderliche Qualitätsleiste nicht erfüllen. Die Qualitätsleiste basiert auf einer Vielzahl gängiger Anwendungsfälle. Verwenden QualityFilter um den Qualitätsbalken durch Angabe festzulegen LOW, MEDIUM, oder HIGH. Wenn Sie Gesichter mit schlechter Qualität nicht filtern möchten, geben Sie an NONE. Der Standardwert ist NONE.

Lösungsüberblick

Sie können eine „ID + Selfie“-API für die digitale Identitätsprüfung erstellen, indem Sie die folgenden Komponenten bereitstellen:

  • Eine REST-API mit einer POST-Methode, die es uns ermöglicht, die Selfie- und Identifizierungsnutzdaten zu senden und eine Antwort zurückzugeben, in diesem Fall den Ähnlichkeitswert
  • Eine Funktion zum Empfangen der Nutzdaten, zum Konvertieren der Bilder in das richtige Format und zum Aufrufen von Amazon Rekognition compare_faces API.

Wir implementieren Amazon API-Gateway für die REST-API-Funktionalität und AWS Lambda für die Funktion.

Das folgende Diagramm veranschaulicht die Lösungsarchitektur und den Workflow.

„ID + Selfie“ – Verbesserung der Überprüfung der digitalen Identität mithilfe von AWS PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Der Workflow enthält die folgenden Schritte:

  1. Der Nutzer lädt das erforderliche Ausweisdokument und ein Selfie hoch.
  2. Der Client übermittelt das Ausweisdokument und das Selfie an den REST-Endpunkt.
  3. Der REST-Endpunkt gibt einen Ähnlichkeitswert an den Client zurück.
  4. Eine Auswertung erfolgt über die Geschäftslogik in Ihrer Anwendung. Wenn beispielsweise der Ähnlichkeitswert unter 80 % liegt, besteht die digitale Identitätsprüfung nicht; andernfalls besteht es die digitale Identitätsprüfung.
  5. Der Client sendet den Status an den Benutzer.

Lambda-Code

Die Lambda-Funktion wandelt die eingehende Nutzlast für jedes Bild von Base64 in Byte um und sendet dann die Quelle (Selfie) und das Ziel (Identifikation) an Amazon Rekognition compare_faces API und gibt den im Hauptteil der API-Antwort erhaltenen Ähnlichkeitswert zurück. Siehe folgenden Code:

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

  }

Stellen Sie das Projekt bereit

Dieses Projekt ist für die Bereitstellung verfügbar AWS-Beispiele an. Nach der Installation können Sie HEIC-Dateien mit der AWS Cloud-Entwicklungskit (AWS-CDK). Sie können das Repository klonen und den folgenden AWS CDK-Prozess verwenden, um es in Ihrem AWS-Konto bereitzustellen.

  1. Richten Sie einen Benutzer ein, der über Berechtigungen zum programmgesteuerten Bereitstellen der Lösungsressourcen über das AWS CDK verfügt.
  2. Richten Sie die AWS-Befehlszeilenschnittstelle (AWS-CLI). Anweisungen finden Sie unter Konfigurieren der AWS CLI.
  3. Wenn Sie das AWS CDK zum ersten Mal verwenden, erfüllen Sie die in aufgeführten Voraussetzungen Arbeiten mit dem AWS CDK in Python.
  4. Klonen Sie die GitHub-Repository.
  5. Erstellen Sie die virtuelle Umgebung. Welchen Befehl Sie verwenden, hängt von Ihrem Betriebssystem ab:
    1. Wenn Sie Windows verwenden, führen Sie den folgenden Befehl in Ihrem Terminalfenster aus der Quelle des geklonten Repositorys aus:
      ..venvScriptsactivate

    2. Wenn Sie Mac oder Linux verwenden, führen Sie den folgenden Befehl in Ihrem Terminalfenster aus der Quelle des geklonten Repositorys aus:
      .venv/bin/activate

  6. Installieren Sie nach der Aktivierung der virtuellen Umgebung die Standardabhängigkeiten der App:
    python -m pip install -r requirements.txt

  7. Nachdem die Umgebung eingerichtet und die Anforderungen erfüllt sind, können wir den AWS CDK-Bereitstellungsbefehl ausgeben, um dieses Projekt in AWS bereitzustellen:
    CDK Deploy

API-Aufrufe durchführen

Wir müssen die Nutzlast im base64-Format an den REST-Endpunkt senden. Wir verwenden eine Python-Datei, um den API-Aufruf durchzuführen, der es uns ermöglicht, die Quell- und Zieldateien zu öffnen, sie in base64 zu konvertieren und die Nutzdaten an das API-Gateway zu senden. Dieser Code ist im Repository verfügbar.

Beachten Sie, dass die SOURCE und TARGET Die Dateispeicherorte befinden sich in Ihrem lokalen Dateisystem, und die URL ist die API-Gateway-URL, die während der Erstellung des Projekts generiert wurde.

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

Aufräumen

Wir haben das AWS CDK verwendet, um dieses Projekt zu erstellen, damit wir unser Projekt lokal öffnen und den folgenden AWS CDK-Befehl ausgeben können, um die Ressourcen zu bereinigen:

CDK Destroy

Zusammenfassung

Da haben Sie es, das Designmuster „ID + Selfie“ mit einer einfachen API, die Sie in Ihre Anwendung integrieren können, um eine digitale Identitätsprüfung durchzuführen. Im nächsten Beitrag unserer Serie bauen wir dieses Muster weiter aus, indem wir Text aus dem Ausweisdokument extrahieren und eine Sammlung von Gesichtern durchsuchen, um Duplikate zu vermeiden.

Um mehr zu erfahren, besuchen Sie die Amazon Rekognition-Entwicklerhandbuch zum Erkennen und Analysieren von Gesichtern.


Über die Autoren

„ID + Selfie“ – Verbesserung der Überprüfung der digitalen Identität mithilfe von AWS PlatoBlockchain Data Intelligence. Vertikale Suche. Ai. Mike Ames ist Principal Applied AI/ML Solutions Architect bei AWS. Er hilft Unternehmen dabei, maschinelles Lernen und KI-Dienste einzusetzen, um Betrug, Verschwendung und Missbrauch zu bekämpfen. In seiner Freizeit findet man ihn beim Mountainbiken, Kickboxen oder Gitarrespielen in einer Metalband der 90er.

„ID + Selfie“ – Verbesserung der Überprüfung der digitalen Identität mithilfe von AWS PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Noah Donaldson ist ein Lösungsarchitekt bei AWS, der Bundesfinanzorganisationen unterstützt. Er ist begeistert von der KI/ML-Technologie, die manuelle Prozesse reduzieren, das Kundenerlebnis verbessern und zur Lösung interessanter Probleme beitragen kann. Außerhalb der Arbeit verbringt er gerne Zeit mit seinem Sohn auf dem Eis, spielt Hockey, jagt mit seiner ältesten Tochter und wirft mit seiner jüngsten Tochter Körbe.

Zeitstempel:

Mehr von AWS Maschinelles Lernen