«ID + Selfie» – покращення цифрової перевірки особи за допомогою AWS PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

“ID + Selfie” – покращення цифрової перевірки особи за допомогою AWS

Глобальна пандемія COVID-19 пришвидшила потребу в перевірці та реєстрації користувачів онлайн у кількох галузях, таких як фінансові послуги, страхування та охорона здоров’я. Коли мова заходить про взаємодію з користувачем, надзвичайно важливо забезпечити безперебійну транзакцію, зберігаючи при цьому високий стандарт підтвердження особи. Питання в тому, як перевірити реальних людей у ​​цифровому світі?

Amazon Rekognition надає попередньо підготовлені можливості розпізнавання обличчя та аналізу для підтвердження особи для ваших онлайн-додатків, таких як банківська справа, пільги, електронна комерція тощо.

У цій публікації ми представляємо шаблон дизайну підтвердження особи «ID + Selfie». зразок коду ви можете використовувати для створення власної кінцевої точки REST підтвердження особи. Це загальний шаблон розробки, який можна включити в існуючі або нові рішення, які вимагають перевірки особи на основі обличчя. Користувач пред'являє форму ідентифікації, наприклад, водійські права або паспорт. Потім користувач робить селфі в реальному часі за допомогою програми. Потім ми порівнюємо обличчя з документа з селфі в реальному часі, зробленим на їхній пристрій.

API Amazon Rekognition CompareFaces

В основі шаблону дизайну «ID + Selfie» лежить порівняння обличчя на селфі з обличчям на документі, що посвідчує особу. Для цього ми використовуємо Amazon Rekognition CompareFaces API. API порівнює обличчя у вихідному вхідному зображенні з обличчям чи обличчями, виявленими у цільовому вхідному зображенні. У наступному прикладі ми порівнюємо зразок водійського посвідчення (ліворуч) із селфі (праворуч).

Source Мета
«ID + Selfie» – покращення цифрової перевірки особи за допомогою AWS PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Нижче наведено приклад коду 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'])

Кілька значень повертаються в Відповідь CompareFaces API. Ми зосереджуємося на Similarity значення, що повертається в FaceMatches щоб підтвердити, що селфі відповідає наданому ідентифікатору.

Розуміння ключових параметрів налаштування

SimilarityThreshold встановлено на 80% за замовчуванням і повертатиме лише результати з оцінкою подібності, що перевищує або дорівнює 80%. Налаштуйте значення, вказавши SimilarityThreshold параметр.

QualityFilter це вхідний параметр для фільтрації виявлених облич, які не відповідають необхідному показнику якості. Індикатор якості базується на різноманітних поширених випадках використання. використання QualityFilter встановити планку якості, вказавши LOW, MEDIUMабо HIGH. Якщо ви не хочете фільтрувати обличчя низької якості, укажіть NONE. Значення за замовчуванням - NONE.

Огляд рішення

Ви можете створити API «ID + Selfie» для цифрової перевірки особи, розгорнувши такі компоненти:

  • REST API з методом POST, який дозволяє нам надсилати корисне навантаження для селфі та ідентифікації та повертає відповідь, у цьому випадку оцінку подібності
  • Функція для отримання корисного навантаження, перетворення зображень у правильний формат і виклику Amazon Rekognition compare_faces API.

Ми реалізуємо API -шлюз Amazon для функціональності REST API та AWS Lambda для функції.

На наступній діаграмі показано архітектуру рішення та робочий процес.

«ID + Selfie» – покращення цифрової перевірки особи за допомогою AWS PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Робочий процес містить наступні кроки:

  1. Користувач завантажує необхідний ідентифікаційний документ і селфі.
  2. Клієнт передає ідентифікаційний документ і селфі до кінцевої точки REST.
  3. Кінцева точка REST повертає клієнту оцінку подібності.
  4. Оцінка виконується за допомогою бізнес-логіки у вашій програмі. Наприклад, якщо показник схожості нижчий за 80%, він не проходить перевірку цифрової ідентифікації; інакше він проходить перевірку цифрової ідентичності.
  5. Клієнт надсилає статус користувачеві.

Лямбда-код

Функція Lambda перетворює вхідне корисне навантаження з base64 на байт для кожного зображення, а потім надсилає джерело (селфі) і ціль (ідентифікація) до 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 (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. Майк Еймс є головним архітектором прикладних рішень AI/ML в AWS. Він допомагає компаніям використовувати послуги машинного навчання та ШІ для боротьби з шахрайством, марнотратством і зловживаннями. У вільний час він може кататися на гірських велосипедах, займатися кікбоксингом або грати на гітарі в метал-групі 90-х.

«ID + Selfie» – покращення цифрової перевірки особи за допомогою AWS PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Ной Дональдсон є архітектором рішень в AWS, що підтримує федеральні фінансові організації. Він у захваті від технології AI/ML, яка може скоротити ручні процеси, покращити взаємодію з клієнтами та допомогти вирішити цікаві проблеми. Поза роботою він із задоволенням проводить час на льоду з сином, грає в хокей, полює зі старшою донькою та кидає з молодшою ​​доньку.

Часова мітка:

Більше від AWS Машинне навчання

Запустіть кілька генеративних моделей штучного інтелекту на графічному процесорі за допомогою багатомодельних кінцевих точок Amazon SageMaker із TorchServe та заощаджуйте до 75% витрат на висновки | Веб-сервіси Amazon

Вихідний вузол: 1887176
Часова мітка: Вересень 6, 2023