Zephyrnet-Logo

So implementieren Sie die Identitätsüberprüfung mithilfe von Amazon Rekognition

Datum:

Einleitung

In der heutigen digitalen Landschaft ist die Einhaltung der Know-Your-Customer-Vorschriften (KYC) für Unternehmen, die in den Bereichen Finanzdienstleistungen, Online-Marktplätze und anderen Sektoren tätig sind, in denen eine Benutzeridentifizierung erforderlich ist, von größter Bedeutung. Traditionell basierten KYC-Prozesse auf der manuellen Dokumentenüberprüfung, einem zeitaufwändigen und fehleranfälligen Ansatz. In diesem Leitfaden erfahren Sie, wie Amazon Rekognition, ein leistungsstarker cloudbasierter KI-Dienst von AWS, der auf Gesichtserkennung und -analyse spezialisiert ist, Ihre Online-KYC-Strategie revolutionieren und sie in einen optimierten, sicheren und kostengünstigen Prozess umwandeln kann.

KYC mit der Amazon-Anerkennung von AWS

Lernziele

  • Verstehen Sie die Bedeutung von Know Your Customer (KYC)-Vorschriften in verschiedenen Branchen und die Herausforderungen, die mit manuellen Verifizierungsprozessen verbunden sind.
  • Entdecken Sie die Möglichkeiten von Amazon Rekognition als cloudbasiertem KI-Dienst, der auf Gesichtserkennung und -analyse spezialisiert ist.
  • Erfahren Sie mehr über die Schritte zur Implementierung der Identitätsüberprüfung mithilfe von Amazon Rekognition, einschließlich Benutzer-Onboarding, Textextraktion, Lebendigkeitserkennung, Gesichtsanalyse und Gesichtsabgleich.
  • Verstehen Sie die Bedeutung der Nutzung der KI-gesteuerten Identitätsüberprüfung für die Verbesserung von Sicherheitsmaßnahmen, die Rationalisierung von Benutzerauthentifizierungsprozessen und die Verbesserung der Benutzererfahrung.

Dieser Artikel wurde als Teil des veröffentlicht Data Science-Blogathon.

Inhaltsverzeichnis

KYC-Herausforderungen verstehen

Die KYC-Vorschriften schreiben vor, dass Unternehmen die Identität ihrer Benutzer überprüfen müssen Betrug mindern, Geldwäsche und andere Finanzkriminalität. Diese Überprüfung umfasst typischerweise das Sammeln und Validieren von amtlichen Ausweisdokumenten. Während diese Vorschriften für die Aufrechterhaltung eines sicheren Finanzökosystems unerlässlich sind, stellen manuelle Verifizierungsprozesse Herausforderungen dar:

  • Auswirkungen der Pandemie: Während der Pandemie stand der Finanzsektor bei der Akquise neuer Kunden vor großen Herausforderungen, da die Bewegungsfreiheit eingeschränkt war. Daher ist eine manuelle Massenverifizierung nicht möglich. Durch die Implementierung von Online-KYC ist Ihr Unternehmen also auf solche zukünftigen Ereignisse vorbereitet.
  • Menschliche Fehler: Die manuelle Überprüfung ist fehleranfällig und kann dazu führen, dass betrügerische Registrierungen durchgehen.
  • IDs verwalten: Da es sich bei der Dokumentation um eine gedruckte Kopie handelt, wird die Verwaltung derselben zu einer wachsenden Herausforderung. Die Kopien können verloren gehen, verbrannt, gestohlen, missbraucht usw. werden.

Was ist Amazon Rekognition?

Amazon Rekognition ist ein leistungsstarker Bild- und Videoanalysedienst, der von Amazon Web Services (AWS) angeboten wird. Es nutzt fortschrittliche Algorithmen für maschinelles Lernen, um visuelle Inhalte in Bildern und Videos zu analysieren, sodass Entwickler wertvolle Erkenntnisse gewinnen und verschiedene Aufgaben wie Objekterkennung, Gesichtserkennung und Identitätsüberprüfung ausführen können. Das folgende vereinfachte Diagramm gibt einen guten Überblick über die beteiligten Funktionen und Dienste.

Quelle AWS: Verschiedene Dienste unter Rekogni

Identitätsprüfung mit Amazon Rekognition

Bevor ich Sie zur Implementierung übergebe, möchte ich Ihnen einen allgemeinen Überblick über die Schritte geben, die bei der Implementierung der Identitätsüberprüfung für unser Online-KYC erforderlich sind.

  1. Benutzer-Onboarding: Dieser Prozess wird spezifisch für das Unternehmen sein. Das Unternehmen benötigt jedoch mindestens den Vornamen, den zweiten Vornamen, den Nachnamen, das Geburtsdatum, das Ablaufdatum des Personalausweises und ein Foto in Passgröße. Alle diese Informationen können gesammelt werden, indem der Benutzer aufgefordert wird, ein Bild eines Personalausweises hochzuladen.
  2. Text extrahieren: Der AWS Textract-Dienst kann alle oben genannten Informationen sauber aus dem hochgeladenen Personalausweis extrahieren. Darüber hinaus können wir Textract auch abfragen, um bestimmte Informationen vom Personalausweis abzurufen.
  3. Lebendigkeit und Gesichtserkennung: Um sicherzustellen, dass der Benutzer, der versucht, sein KYC durchzuführen, auf dem Bildschirm aktiv und live ist, wenn die Liveness-Sitzung beginnt. Amazon Rekognition kann Gesichter in Bildern oder Videostreams genau erkennen und vergleichen.
  4. Gesichtsanalyse: Sobald ein Gesicht erfasst ist, bietet es detaillierte Einblicke in Gesichtsattribute wie Alter, Geschlecht, Emotionen und Gesichtsmerkmale. Darüber hinaus wird überprüft, ob der Benutzer eine Sonnenbrille trägt oder ob sein Gesicht durch andere Gegenstände verdeckt ist.
  5. Gesichtserkennung: Nach der Überprüfung der Liveness können wir einen Gesichtsabgleich durchführen, um die Identität von Personen anhand von Referenzbildern aus dem Personalausweis und dem aktuellen Bild aus der Liveness-Sitzung zu überprüfen.
Wie Online-KYC mit Amazon Rekognition von AWS durchgeführt wird

Wie Sie sehen, erleichtert Rekognition eine schnelle Benutzerregistrierung, indem ein aufgenommenes Selfie analysiert und mit einem vom Benutzer hochgeladenen, von der Regierung ausgestellten Ausweis verglichen wird. Die Lebenderkennungsfunktionen von Rekognition helfen dabei, Spoofing-Versuche zu vereiteln, indem sie Benutzer dazu auffordern, bestimmte Aktionen wie Blinzeln oder Kopfdrehen auszuführen. Dadurch wird sichergestellt, dass es sich bei dem sich registrierenden Benutzer um eine echte Person handelt und nicht um ein geschickt getarntes Foto oder einen Deep Fake. Dieser automatisierte Prozess verkürzt die Onboarding-Zeiten erheblich und verbessert das Benutzererlebnis. Die Erkennung eliminiert das Potenzial für menschliches Versagen, das mit der manuellen Überprüfung einhergeht. Darüber hinaus erreichen Gesichtserkennungsalgorithmen hohe Genauigkeitsraten und gewährleisten so eine zuverlässige Identitätsprüfung.

Ich weiß, dass Sie jetzt sehr gespannt darauf sind, es in Aktion zu sehen, also fangen wir gleich damit an.

Implementierung der Identitätsüberprüfung: Die automatisierte KYC-Lösung

Schritt 1: Einrichten des AWS-Kontos

Stellen Sie vor dem Start sicher, dass Sie über ein aktives AWS-Konto verfügen. Sie können sich auf der AWS-Website für ein AWS-Konto anmelden, falls Sie dies noch nicht getan haben. Aktivieren Sie nach der Anmeldung die Erkennungsdienste. AWS stellt umfassende Dokumentationen und Tutorials zur Verfügung, um diesen Prozess zu erleichtern.

Schritt 2: IAM-Berechtigungen einrichten

Wenn Sie Python oder AWS CLI verwenden möchten, ist dieser Schritt erforderlich. Sie müssen eine Berechtigung für den Zugriff auf Rekognition, S3 und Textract erteilen. Dies kann über die Konsole erfolgen.

Schritt 3: Nationale Benutzer-ID hochladen

Ich werde dies anhand von CLI, Python und einer grafischen Oberfläche demonstrieren. Wenn Sie nach einem Code für eine grafische Benutzeroberfläche suchen, dann hat AWS einen netten hochgeladen Beispiel auf Git. In diesem Artikel wurde derselbe Code bereitgestellt, um eine grafische Oberfläche anzuzeigen.

aws textract analyze-id --document-pages 
'{"S3Object":{"Bucket":"bucketARN","Name":"id.jpg"}}'
"IdentityDocuments": [
        {
            "DocumentIndex": 1,
            "IdentityDocumentFields": [
                {
                    "Type": {
                        "Text": "FIRST_NAME"
                    },
                    "ValueDetection": {
                        "Text": "xyz",
                        "Confidence": 93.61839294433594
                    }
                },
                {
                    "Type": {
                        "Text": "LAST_NAME"
                    },
                    "ValueDetection": {
                        "Text": "abc",
                        "Confidence": 96.3537826538086
                    }
                },
                {
                    "Type": {
                        "Text": "MIDDLE_NAME"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.16631317138672
                    }
                },
                {
                    "Type": {
                        "Text": "SUFFIX"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.16964721679688
                    }
                },
                {
                    "Type": {
                        "Text": "CITY_IN_ADDRESS"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.17261505126953
                    }
                },
                {
                    "Type": {
                        "Text": "ZIP_CODE_IN_ADDRESS"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.17854309082031
                    }
                },
                {
                    "Type": {
                        "Text": "STATE_IN_ADDRESS"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.15782165527344
                    }
                },
                {
                    "Type": {
                        "Text": "STATE_NAME"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.16664123535156
                    }
                },
                {
                    "Type": {
                        "Text": "DOCUMENT_NUMBER"
                    },
                    "ValueDetection": {
                        "Text": "123456",
                        "Confidence": 95.29527282714844
                    }
                },
                {
                    "Type": {
                        "Text": "EXPIRATION_DATE"
                    },
                    "ValueDetection": {
                        "Text": "22 OCT 2024",
                        "NormalizedValue": {
                            "Value": "2024-10-22T00:00:00",
                            "ValueType": "Date"
                        },
                        "Confidence": 95.7198486328125
                    }
                },
                {
                    "Type": {
                        "Text": "DATE_OF_BIRTH"
                    },
                    "ValueDetection": {
                        "Text": "1 SEP 1994",
                        "NormalizedValue": {
                            "Value": "1994-09-01T00:00:00",
                            "ValueType": "Date"
                        },
                        "Confidence": 97.41930389404297
                    }
                },
                {
                    "Type": {
                        "Text": "DATE_OF_ISSUE"
                    },
                    "ValueDetection": {
                        "Text": "23 OCT 2004",
                        "NormalizedValue": {
                            "Value": "2004-10-23T00:00:00",
                            "ValueType": "Date"
                        },
                        "Confidence": 96.1384506225586
                    }
                },
                {
                    "Type": {
                        "Text": "ID_TYPE"
                    },
                    "ValueDetection": {
                        "Text": "PASSPORT",
                        "Confidence": 98.65157318115234
                    }
                }

Der obige Befehl verwendet den AWS Textract-Befehl „analysate-id“, um Informationen aus dem bereits in S3 hochgeladenen Bild zu extrahieren. Der Ausgabe-JSON enthält auch Begrenzungsrahmen, daher habe ich ihn gekürzt, um nur die wichtigsten Informationen anzuzeigen. Wie Sie sehen, wurden alle erforderlichen Informationen zusammen mit dem Konfidenzniveau des Textwerts extrahiert.

Verwendung von Python-Funktionen

textract_client = boto3.client('textract', region_name='us-east-1')

def analyze_id(document_file_name)->dict:

  if document_file_name is not None:
       with open(document_file_name, "rb") as document_file:
            idcard_bytes = document_file.read()
  '''
  Analyze the image using Amazon Textract.
  '''
  try:
    response = textract_client.analyze_id(
      DocumentPages=[
        {'Bytes': idcard_bytes},
      ])

    return response
  except textract_client.exceptions.UnsupportedDocumentException:
    logger.error('User %s provided an invalid document.' % inputRequest.user_id)
    raise InvalidImageError('UnsupportedDocument')
  except textract_client.exceptions.DocumentTooLargeException:
    logger.error('User %s provided document too large.' % inputRequest.user_id)
    raise InvalidImageError('DocumentTooLarge')
  except textract_client.exceptions.ProvisionedThroughputExceededException:
    logger.error('Textract throughput exceeded.')
    raise InvalidImageError('ProvisionedThroughputExceeded')
  except textract_client.exceptions.ThrottlingException:
    logger.error('Textract throughput exceeded.')
    raise InvalidImageError('ThrottlingException')
  except textract_client.exceptions.InternalServerError:
    logger.error('Textract Internal Server Error.')
    raise InvalidImageError('ProvisionedThroughputExceeded')

result = analyze_id('id.jpeg')
print(result) # print raw output

Verwendung der grafischen Oberfläche

Nationale ID, extrahiert mit AWS Textract | Gesichtserkennung für KYC
Nationale ID, extrahiert mit AWS Textract | Gesichtserkennung für KYC

Wie Sie sehen, hat Textract alle relevanten Informationen abgerufen und zeigt auch den ID-Typ an. Diese Informationen können zur Registrierung des Kunden oder Benutzers verwendet werden. Zuvor führen wir jedoch einen Liveness-Check durch, um sicherzustellen, dass es sich um eine echte Person handelt.

Lebendigkeitsprüfung

Sobald der Benutzer im Bild unten auf „Prüfung beginnen“ klickt, wird zunächst das Gesicht erkannt. Wenn nur ein Gesicht auf dem Bildschirm angezeigt wird, wird die Liveness-Sitzung gestartet. Aus Datenschutzgründen kann ich nicht die vollständige Liveness-Sitzung anzeigen. Sie können dies jedoch überprüfen Demo-Video-Link. Die Liveness-Sitzung liefert Ergebnisse mit %-Konfidenz. Wir können auch einen Schwellenwert festlegen, unterhalb dessen die Liveness-Sitzung fehlschlägt. Für kritische Anwendungen wie diese sollte man den Schwellenwert bei 95 % belassen.

Liveness-Check bei Amazon Rekognition | Gesichtserkennung für KYC

Neben dem Selbstvertrauen sorgt die Liveness-Sitzung auch dafür, dass Emotionen und Fremdkörper im Gesicht erkannt werden. Wenn der Benutzer eine Sonnenbrille trägt oder Gesichtsausdrücke wie Wut usw. zeigt, kann die Anwendung das Bild ablehnen.

Python-Code

rek_client = boto3.client('rekognition', region_name='us-east-1')
sessionid = rek_client.create_face_liveness_session(Settings={'AuditImagesLimit':1, 
           'OutputConfig': {"S3Bucket": 'IMAGE_BUCKET_NAME'}})
           
session = rek_client.get_face_liveness_session_results(
            SessionId=sessionid)

Gesichtsvergleich

Sobald der Benutzer die Liveness-Sitzung erfolgreich abgeschlossen hat, muss die Anwendung das Gesicht mit dem anhand der ID erkannten Gesicht vergleichen. Dies ist der kritischste Teil unserer Bewerbung. Wir möchten keinen Benutzer registrieren, dessen Gesicht nicht mit der ID übereinstimmt. Das anhand der hochgeladenen ID erkannte Gesicht ist bereits in S3 durch den Code gespeichert, der als Referenzbild dient. Ebenso wird das Gesicht aus der Liveness-Sitzung auch in S3 gespeichert. Lassen Sie uns zunächst die CLI-Implementierung überprüfen.

CLI-Befehl

aws rekognition compare-faces 
      --source-image '{"S3Object":{"Bucket":"imagebucket","Name":"reference.jpg"}}' 
      --target-image '{"S3Object":{"Bucket":"imagebucket","Name":"liveness.jpg"}}' 
      --similarity-threshold 0.9

Output

{
              "UnmatchedFaces": [],
              "FaceMatches": [
                  {
                      "Face": {
                          "BoundingBox": {
                              "Width": 0.12368916720151901,
                              "Top": 0.16007372736930847,
                              "Left": 0.5901257991790771,
                              "Height": 0.25140416622161865
                          },
                          "Confidence": 99.0,
                          "Pose": {
                              "Yaw": -3.7351467609405518,
                              "Roll": -0.10309021919965744,
                              "Pitch": 0.8637830018997192
                          },
                          "Quality": {
                              "Sharpness": 95.51618957519531,
                              "Brightness": 65.29893493652344
                          },
                          "Landmarks": [
                              {
                                  "Y": 0.26721030473709106,
                                  "X": 0.6204193830490112,
                                  "Type": "eyeLeft"
                              },
                              {
                                  "Y": 0.26831310987472534,
                                  "X": 0.6776827573776245,
                                  "Type": "eyeRight"
                              },
                              {
                                  "Y": 0.3514654338359833,
                                  "X": 0.6241428852081299,
                                  "Type": "mouthLeft"
                              },
                              {
                                  "Y": 0.35258132219314575,
                                  "X": 0.6713621020317078,
                                  "Type": "mouthRight"
                              },
                              {
                                  "Y": 0.3140771687030792,
                                  "X": 0.6428444981575012,
                                  "Type": "nose"
                              }
                          ]
                      },
                      "Similarity": 100.0
                  }
              ],
              "SourceImageFace": {
                  "BoundingBox": {
                      "Width": 0.12368916720151901,
                      "Top": 0.16007372736930847,
                      "Left": 0.5901257991790771,
                      "Height": 0.25140416622161865
                  },
                  "Confidence": 99.0
              }
          }

Wie Sie oben sehen können, gibt es kein nicht übereinstimmendes Gesicht und das Gesicht stimmt mit einem Konfidenzniveau von 99 % überein. Als zusätzliche Ausgabe wurden auch Begrenzungsrahmen zurückgegeben. Sehen wir uns nun die Python-Implementierung an.

Python-Code

rek_client = boto3.client('rekognition', region_name='us-east-1')

response = rek_client.compare_faces(
      SimilarityThreshold=0.9,
      SourceImage={
            'S3Object': {
              'Bucket': bucket,
              'Name': idcard_name
          }
      },
      TargetImage={
          'S3Object': {
              'Bucket': bucket,
              'Name': name
          }
      })

if len(response['FaceMatches']) == 0:
      IsMatch = 'False'
      Reason = 'Property FaceMatches is empty.'
    
facenotMatch = False
for match in response['FaceMatches']:
    similarity:float = match['Similarity']
    if similarity > 0.9:
        IsMatch = True,
        Reason = 'All checks passed.'
    else:
        facenotMatch = True

Der obige Code vergleicht das vom Personalausweis und der Liveness-Sitzung erkannte Gesicht und hält den Schwellenwert bei 90 %. Wenn das Gesicht übereinstimmt, wird die IsMatch-Variable auf True gesetzt. Mit nur einem Funktionsaufruf können wir also die beiden Gesichter vergleichen, beide sind bereits im S3-Bucket hochgeladen.

So können wir endlich den gültigen Benutzer registrieren und seinen KYC abschließen. Wie Sie sehen, erfolgt dies vollständig automatisiert und vom Benutzer initiiert, ohne dass eine andere Person beteiligt ist. Der Prozess hat auch das Benutzer-Onboarding im Vergleich zum aktuellen manuellen Prozess verkürzt.

Schritt 4: Dokument wie GPT abfragen

Mir gefiel eine der sehr nützlichen Funktionen von Textract: Sie können spezifische Fragen stellen, z. B. „Was ist die Identitätsnummer?“. Lassen Sie mich Ihnen zeigen, wie das mit AWS CLI geht.

aws textract analyze-document --document '{"S3Object":{"Bucket":"ARN","Name":"id.jpg"}}' 
--feature-types '["QUERIES"]' --queries-config '{"Queries":[{"Text":"What is the Identity No"}]}'

Bitte beachten Sie, dass ich früher die Funktion „analysate-id“ verwendet habe, während ich jetzt „analysate-document“ zum Abfragen des Dokuments verwendet habe. Dies ist sehr nützlich, wenn der Personalausweis bestimmte Felder enthält, die nicht von der Funktion „analysate-id“ extrahiert werden. Die Analyse-ID-Funktion funktioniert gut für alle US-amerikanischen Personalausweise, funktioniert jedoch auch gut mit indischen Regierungsausweisen. Wenn jedoch einige Felder nicht extrahiert werden, kann die Abfragefunktion verwendet werden.

AWS verwendet den Cognito-Service zur Verwaltung der in DynamoDB gespeicherten Benutzeridentität, Benutzer-ID und Gesichts-IDs. AWS-Beispielcode vergleicht auch die Bilder aus der vorhandenen Datenbank, sodass sich derselbe Benutzer nicht mit einer anderen ID oder einem anderen Benutzernamen erneut registrieren kann. Diese Art der Validierung ist ein Muss für ein robustes automatisiertes KYC-System.

Zusammenfassung

Durch die Nutzung von AWS Rekognition für Automated Self KYC können Sie Ihren Benutzer-Onboarding-Prozess von einer mühsamen Hürde in ein reibungsloses und sicheres Erlebnis verwandeln. Amazon Rekognition bietet eine robuste Lösung für die Implementierung von Identitätsüberprüfungssystemen mit erweiterten Gesichtserkennungsfunktionen. Durch die Nutzung seiner Funktionen können Entwickler Sicherheitsmaßnahmen verbessern, Benutzerauthentifizierungsprozesse optimieren und nahtlose Benutzererlebnisse über verschiedene Anwendungen und Branchen hinweg bereitstellen.

Mit dem oben beschriebenen umfassenden Leitfaden sind Sie bestens gerüstet, um Ihre Reise zur effektiven Implementierung der Identitätsüberprüfung mithilfe von Amazon Rekognition anzutreten. Nutzen Sie die Leistungsfähigkeit der KI-gesteuerten Identitätsüberprüfung und erschließen Sie neue Möglichkeiten im Bereich des digitalen Identitätsmanagements.

Key Take Away

  • Amazon Rekognition bietet erweiterte Gesichtserkennungs- und Analysefunktionen und ermöglicht so optimierte und sichere Prozesse zur Identitätsüberprüfung.
  • Es ermöglicht ein automatisiertes Benutzer-Onboarding, indem es wichtige Informationen aus staatlich ausgestellten Ausweisen extrahiert und Lebendigkeitsprüfungen durchführt.
  • Zu den Implementierungsschritten gehören die Einrichtung von AWS-Diensten, die Konfiguration von IAM-Berechtigungen und die Nutzung von Python-Funktionen oder grafischen Schnittstellen zur Textextraktion und Gesichtsvergleichen.
  • Liveness-Checks in Echtzeit erhöhen die Sicherheit, indem sie sicherstellen, dass Benutzer während der Überprüfung anwesend sind, während Gesichtsvergleiche Identitäten anhand von Referenzbildern validieren.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

spot_img

Neueste Intelligenz

spot_img