"ID + Selfie" - Βελτίωση της επαλήθευσης ψηφιακής ταυτότητας χρησιμοποιώντας το AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

"ID + Selfie" - Βελτίωση της επαλήθευσης ψηφιακής ταυτότητας με χρήση AWS

Η παγκόσμια πανδημία COVID-19 έχει επιταχύνει την ανάγκη επαλήθευσης και ενσωμάτωσης των χρηστών στο διαδίκτυο σε διάφορους κλάδους, όπως οι χρηματοοικονομικές υπηρεσίες, οι ασφάλειες και η υγειονομική περίθαλψη. Όσον αφορά την εμπειρία χρήστη, είναι σημαντικό να παρέχετε μια συναλλαγή χωρίς τριβές, διατηρώντας παράλληλα ένα υψηλό επίπεδο επαλήθευσης ταυτότητας. Το ερώτημα είναι πώς επαληθεύετε τους πραγματικούς ανθρώπους στον ψηφιακό κόσμο;

Αναγνώριση Amazon παρέχει προεκπαιδευμένες δυνατότητες αναγνώρισης και ανάλυσης προσώπου για επαλήθευση ταυτότητας στις διαδικτυακές σας εφαρμογές, όπως τραπεζικές υπηρεσίες, παροχές, ηλεκτρονικό εμπόριο και πολλά άλλα.

Σε αυτήν την ανάρτηση, παρουσιάζουμε το μοτίβο σχεδίασης επαλήθευσης ταυτότητας "ID + Selfie" και δείγμα κώδικα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε το δικό σας τελικό σημείο REST επαλήθευσης ταυτότητας. Αυτό είναι ένα κοινό μοτίβο σχεδίασης που μπορείτε να ενσωματώσετε σε υπάρχουσες ή νέες λύσεις που απαιτούν επαλήθευση ταυτότητας βάσει προσώπου. Ο χρήστης παρουσιάζει μια μορφή ταυτοποίησης, όπως άδεια οδήγησης ή διαβατήριο. Ο χρήστης τραβάει μια selfie σε πραγματικό χρόνο με την εφαρμογή. Στη συνέχεια, συγκρίνουμε το πρόσωπο από το έγγραφο με τη selfie σε πραγματικό χρόνο που τραβήχτηκε στη συσκευή τους.

Το Amazon Rekognition CompareFaces API

Στον πυρήνα του σχεδίου "ID + Selfie" βρίσκεται η σύγκριση του προσώπου στη selfie με το πρόσωπο στο έγγραφο ταυτοποίησης. Για αυτό, χρησιμοποιούμε το Amazon Rekognition CompareFaces API. Το API συγκρίνει ένα πρόσωπο στην εικόνα εισόδου πηγής με ένα πρόσωπο ή πρόσωπα που εντοπίζονται στην εικόνα εισόδου στόχου. Στο παρακάτω παράδειγμα, συγκρίνουμε ένα δείγμα άδειας οδήγησης (αριστερά) με μια selfie (δεξιά).

Πηγή στόχος
"ID + Selfie" - Βελτίωση της επαλήθευσης ψηφιακής ταυτότητας χρησιμοποιώντας το AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Το παρακάτω είναι ένα παράδειγμα του κώδικα 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'])

Πολλές τιμές επιστρέφονται στο Απόκριση API CompareFaces. Εστιάζουμε στο Similarity επιστρεφόμενη τιμή FaceMatches για την επικύρωση της selfie ταιριάζει με το αναγνωριστικό που παρέχεται.

Κατανόηση των βασικών παραμέτρων συντονισμού

SimilarityThreshold έχει οριστεί στο 80% από προεπιλογή και θα εμφανίζει αποτελέσματα μόνο με βαθμολογία ομοιότητας μεγαλύτερη ή ίση με 80%. Προσαρμόστε την τιμή καθορίζοντας το SimilarityThreshold παράμετρος.

QualityFilter είναι μια παράμετρος εισόδου για το φιλτράρισμα προσώπων που έχουν εντοπιστεί που δεν πληρούν την απαιτούμενη γραμμή ποιότητας. Η μπάρα ποιότητας βασίζεται σε μια ποικιλία από θήκες κοινής χρήσης. Χρήση QualityFilter για να ορίσετε τη γραμμή ποιότητας προσδιορίζοντας LOW, MEDIUM, ή HIGH. Εάν δεν θέλετε να φιλτράρετε πρόσωπα κακής ποιότητας, καθορίστε NONE. Η προεπιλεγμένη τιμή είναι NONE.

Επισκόπηση λύσεων

Μπορείτε να δημιουργήσετε ένα API "ID + Selfie" για επαλήθευση ψηφιακής ταυτότητας, αναπτύσσοντας τα ακόλουθα στοιχεία:

  • Ένα REST API με μέθοδο POST που μας επιτρέπει να στείλουμε το ωφέλιμο φορτίο selfie και ταυτότητας και επιστρέφει μια απάντηση, σε αυτήν την περίπτωση τη βαθμολογία ομοιότητας
  • Μια συνάρτηση για τη λήψη του ωφέλιμου φορτίου, τη μετατροπή των εικόνων στη σωστή μορφή και την κλήση του Amazon Rekognition compare_faces API.

Εφαρμόζουμε Amazon API Gateway για τη λειτουργικότητα REST API και AWS Lambda για τη λειτουργία.

Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική λύση και τη ροή εργασίας.

"ID + Selfie" - Βελτίωση της επαλήθευσης ψηφιακής ταυτότητας χρησιμοποιώντας το AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Η ροή εργασίας περιέχει τα ακόλουθα βήματα:

  1. Ο χρήστης ανεβάζει το απαιτούμενο έγγραφο ταυτοποίησης και μια selfie.
  2. Ο πελάτης υποβάλλει το έγγραφο ταυτοποίησης και τη selfie στο τελικό σημείο REST.
  3. Το τελικό σημείο REST επιστρέφει μια βαθμολογία ομοιότητας στον πελάτη.
  4. Μια αξιολόγηση γίνεται μέσω επιχειρηματικής λογικής στην αίτησή σας. Για παράδειγμα, εάν η βαθμολογία ομοιότητας είναι κάτω από 80%, αποτυγχάνει στον έλεγχο ψηφιακής ταυτότητας. διαφορετικά περνάει τον έλεγχο ψηφιακής ταυτότητας.
  5. Ο πελάτης στέλνει την κατάσταση στον χρήστη.

Κωδικός λάμδα

Η συνάρτηση Lambda μετατρέπει το εισερχόμενο ωφέλιμο φορτίο από base64 σε byte για κάθε εικόνα και στη συνέχεια στέλνει την πηγή (selfie) και τον στόχο (αναγνώριση) στο Amazon Rekognition compare_faces API και επιστρέφει τη βαθμολογία ομοιότητας που λήφθηκε στο σώμα της απόκρισης API. Δείτε τον παρακάτω κώδικα:

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

  }

Αναπτύξτε το έργο

Αυτό το έργο είναι διαθέσιμο για ανάπτυξη Δείγματα AWS με Κιτ ανάπτυξης AWS Cloud (AWS CDK). Μπορείτε να κλωνοποιήσετε το αποθετήριο και να χρησιμοποιήσετε την ακόλουθη διαδικασία AWS CDK για την ανάπτυξη στον λογαριασμό σας AWS.

  1. Ρυθμίστε έναν χρήστη που έχει δικαιώματα για την ανάπτυξη μέσω προγραμματισμού των πόρων λύσης μέσω του AWS CDK.
  2. Ρυθμίστε το Διεπαφή γραμμής εντολών AWS (AWS CLI). Για οδηγίες, ανατρέξτε στο Διαμόρφωση του AWS CLI.
  3. Εάν αυτή είναι η πρώτη φορά που χρησιμοποιείτε το AWS CDK, συμπληρώστε τις προϋποθέσεις που αναφέρονται στο Εργασία με το AWS CDK στην Python.
  4. Κλωνοποιήστε το Αποθετήριο GitHub.
  5. Δημιουργήστε το εικονικό περιβάλλον. Η εντολή που χρησιμοποιείτε εξαρτάται από το λειτουργικό σας σύστημα:
    1. Εάν χρησιμοποιείτε Windows, εκτελέστε την ακόλουθη εντολή στο παράθυρο του τερματικού σας από την πηγή του κλωνοποιημένου αποθετηρίου:
      ..venvScriptsactivate

    2. Εάν χρησιμοποιείτε Mac ή Linux, εκτελέστε την ακόλουθη εντολή στο παράθυρο του τερματικού σας από την πηγή του κλωνοποιημένου αποθετηρίου:
      .venv/bin/activate

  6. Αφού ενεργοποιήσετε το εικονικό περιβάλλον, εγκαταστήστε τις τυπικές εξαρτήσεις της εφαρμογής:
    python -m pip install -r requirements.txt

  7. Τώρα που έχει ρυθμιστεί το περιβάλλον και πληρούνται οι απαιτήσεις, μπορούμε να εκδώσουμε την εντολή ανάπτυξης AWS CDK για να αναπτύξουμε αυτό το έργο στο AWS:
    CDK Deploy

Πραγματοποιήστε κλήσεις API

Πρέπει να στείλουμε το ωφέλιμο φορτίο σε μορφή base64 στο τελικό σημείο REST. Χρησιμοποιούμε ένα αρχείο Python για να πραγματοποιήσουμε την κλήση API, το οποίο μας επιτρέπει να ανοίξουμε τα αρχεία προέλευσης και προορισμού, να τα μετατρέψουμε σε base64 και να στείλουμε το ωφέλιμο φορτίο στην πύλη API. Αυτός ο κωδικός είναι διαθέσιμος στο αποθετήριο.

Σημειώστε ότι το SOURCE και TARGET οι τοποθεσίες αρχείων θα βρίσκονται στο τοπικό σας σύστημα αρχείων και η διεύθυνση URL είναι η διεύθυνση URL της πύλης API που δημιουργήθηκε κατά τη δημιουργία του έργου.

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

εκκαθάριση

Χρησιμοποιήσαμε το AWS CDK για να δημιουργήσουμε αυτό το έργο, ώστε να μπορούμε να ανοίξουμε το έργο μας τοπικά και να εκδώσουμε την ακόλουθη εντολή AWS CDK για να καθαρίσουμε τους πόρους:

CDK Destroy

Συμπέρασμα

Εδώ έχετε, το μοτίβο σχεδίασης "ID + Selfie" με ένα απλό API που μπορείτε να ενσωματώσετε στην εφαρμογή σας για να εκτελέσετε επαλήθευση ψηφιακής ταυτότητας. Στην επόμενη ανάρτηση της σειράς μας, επεκτείνουμε περαιτέρω αυτό το μοτίβο εξάγοντας κείμενο από το έγγραφο ταυτοποίησης και αναζητώντας μια συλλογή προσώπων για να αποτρέψουμε την αντιγραφή.

Για να μάθετε περισσότερα, δείτε το Οδηγός προγραμματιστή Amazon Rekognition για τον εντοπισμό και την ανάλυση προσώπων.


Σχετικά με τους Συγγραφείς

"ID + Selfie" - Βελτίωση της επαλήθευσης ψηφιακής ταυτότητας χρησιμοποιώντας το AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται. Μάικ Έιμς είναι ένας κύριος αρχιτέκτονας λύσεων AI/ML με εφαρμογή AWS. Βοηθά τις εταιρείες να χρησιμοποιούν υπηρεσίες μηχανικής μάθησης και τεχνητής νοημοσύνης για την καταπολέμηση της απάτης, της σπατάλης και της κατάχρησης. Στον ελεύθερο χρόνο του, μπορείτε να τον βρείτε να κάνει ποδήλατο βουνού, kickboxing ή να παίζει κιθάρα σε metal συγκρότημα της δεκαετίας του '90.

"ID + Selfie" - Βελτίωση της επαλήθευσης ψηφιακής ταυτότητας χρησιμοποιώντας το AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Νόα Ντόναλντσον είναι Αρχιτέκτονας Λύσεων στο AWS που υποστηρίζει ομοσπονδιακούς χρηματοοικονομικούς οργανισμούς. Είναι ενθουσιασμένος με την τεχνολογία AI/ML που μπορεί να μειώσει τις χειροκίνητες διαδικασίες, να βελτιώσει τις εμπειρίες των πελατών και να βοηθήσει στην επίλυση ενδιαφέροντων προβλημάτων. Εκτός δουλειάς, του αρέσει να περνά χρόνο στον πάγο με τον γιο του παίζοντας χόκεϊ, κυνηγώντας με τη μεγαλύτερη κόρη του και πυροβολώντας τσέρκια με τη μικρότερη κόρη του.

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS