"ID + Selfie" - بهبود تأیید هویت دیجیتال با استفاده از هوش داده‌های PlatoBlockchain AWS. جستجوی عمودی Ai.

"ID + Selfie" - بهبود تأیید هویت دیجیتال با استفاده از AWS

همه‌گیری جهانی COVID-19 نیاز به تأیید و حضور آنلاین کاربران در چندین صنعت، مانند خدمات مالی، بیمه و مراقبت‌های بهداشتی را تسریع کرده است. هنگامی که صحبت از تجربه کاربر می شود، ارائه یک تراکنش بدون اصطکاک با حفظ استاندارد بالایی برای تأیید هویت بسیار مهم است. سوال این است که چگونه افراد واقعی را در دنیای دیجیتال تایید می کنید؟

شناسایی آمازون قابلیت های تشخیص چهره و تجزیه و تحلیل از پیش آموزش دیده را برای تأیید هویت در برنامه های آنلاین شما، مانند بانکداری، مزایا، تجارت الکترونیک و موارد دیگر ارائه می دهد.

در این پست الگوی طراحی تایید هویت “ID + Selfie” و کد نمونه می توانید برای ایجاد نقطه پایانی REST تأیید هویت خود استفاده کنید. این یک الگوی طراحی رایج است که می توانید آن را در راه حل های موجود یا جدید که نیاز به تأیید هویت مبتنی بر چهره دارند، بگنجانید. کاربر فرمی از شناسایی مانند گواهینامه رانندگی یا پاسپورت را ارائه می دهد. کاربر پس از آن یک سلفی در زمان واقعی با برنامه می گیرد. سپس چهره از سند را با سلفی بلادرنگ گرفته شده در دستگاه آنها مقایسه می کنیم.

آمازون Rekognition CompareFaces API

هسته اصلی الگوی طراحی "ID + Selfie" مقایسه چهره در عکس سلفی با چهره در مدرک شناسایی است. برای این کار از آمازون Rekognition استفاده می کنیم CompareFaces API. API یک چهره در تصویر ورودی منبع را با یک چهره یا چهره های شناسایی شده در تصویر ورودی هدف مقایسه می کند. در مثال زیر نمونه گواهینامه رانندگی (سمت چپ) را با عکس سلفی (راست) مقایسه می کنیم.

منبع هدف
"ID + Selfie" - بهبود تأیید هویت دیجیتال با استفاده از هوش داده‌های PlatoBlockchain AWS. جستجوی عمودی 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 که به ما امکان می‌دهد بار سلفی و شناسایی را ارسال کنیم و یک پاسخ، در این مورد امتیاز شباهت را برمی‌گردانیم.
  • تابعی برای دریافت محموله، تبدیل تصاویر به فرمت مناسب و فراخوانی آمازون Rekognition compare_faces API

ما پیاده سازی می کنیم دروازه API آمازون برای عملکرد REST API و AWS لامبدا برای عملکرد

نمودار زیر معماری راه حل و گردش کار را نشان می دهد.

"ID + Selfie" - بهبود تأیید هویت دیجیتال با استفاده از هوش داده‌های PlatoBlockchain AWS. جستجوی عمودی Ai.

گردش کار شامل مراحل زیر است:

  1. کاربر مدرک شناسایی مورد نیاز و یک عکس سلفی را آپلود می کند.
  2. مشتری سند شناسایی و سلفی را به نقطه پایانی REST ارسال می کند.
  3. نقطه پایانی REST امتیاز شباهت را به مشتری برمی گرداند.
  4. ارزیابی از طریق منطق تجاری در برنامه شما انجام می شود. به عنوان مثال، اگر امتیاز شباهت زیر 80٪ باشد، در بررسی هویت دیجیتال ناموفق است. در غیر این صورت از بررسی هویت دیجیتال عبور می کند.
  5. مشتری وضعیت را برای کاربر ارسال می کند.

کد لامبدا

تابع Lambda بار ورودی را از base64 به بایت برای هر تصویر تبدیل می کند و سپس منبع (selfie) و هدف (شناسایی) را به آمازون 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 استفاده می کنید، پیش نیازهای ذکر شده در آن را تکمیل کنید کار با CDK AWS در پایتون.
  4. کلون کنید مخزن GitHub.
  5. محیط مجازی را ایجاد کنید. دستوری که استفاده می کنید به سیستم عامل شما بستگی دارد:
    1. اگر از ویندوز استفاده می کنید، دستور زیر را در پنجره ترمینال خود از منبع مخزن کلون شده اجرا کنید:
      ..venvScriptsactivate

    2. اگر از مک یا لینوکس استفاده می کنید، دستور زیر را در پنجره ترمینال خود از منبع مخزن کلون شده اجرا کنید:
      .venv/bin/activate

  6. پس از فعال سازی محیط مجازی، وابستگی های استاندارد برنامه را نصب کنید:
    python -m pip install -r requirements.txt

  7. اکنون که محیط راه‌اندازی شده و الزامات برآورده شده است، می‌توانیم دستور استقرار AWS CDK را برای استقرار این پروژه در AWS صادر کنیم:
    CDK Deploy

برقراری تماس های API

باید پیلود را با فرمت base64 به نقطه پایانی REST ارسال کنیم. ما از یک فایل پایتون برای برقراری فراخوانی API استفاده می‌کنیم که به ما امکان می‌دهد فایل‌های منبع و هدف را باز کنیم، آنها را به base64 تبدیل کنیم و بار را به API Gateway ارسال کنیم. این کد در مخزن موجود است.

توجه داشته باشید که 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())

پاک کردن

ما از CDK AWS برای ساخت این پروژه استفاده کردیم، بنابراین می توانیم پروژه خود را به صورت محلی باز کنیم و دستور AWS CDK زیر را برای پاکسازی منابع صادر کنیم:

CDK Destroy

نتیجه

الگوی طراحی «ID + Selfie» با یک API ساده است که می‌توانید با برنامه خود برای تأیید هویت دیجیتالی ادغام کنید. در پست بعدی مجموعه ما، با استخراج متن از سند شناسایی و جستجوی مجموعه ای از چهره ها برای جلوگیری از تکرار، این الگو را بیشتر گسترش می دهیم.

برای کسب اطلاعات بیشتر ، به بخش مراجعه کنید راهنمای توسعه دهنده آمازون Rekognition در تشخیص و تجزیه و تحلیل چهره ها


درباره نویسنده

"ID + Selfie" - بهبود تأیید هویت دیجیتال با استفاده از هوش داده‌های PlatoBlockchain AWS. جستجوی عمودی Ai. مایک ایمز یک معمار اصلی کاربردی راه حل های AI/ML با AWS است. او به شرکت‌ها کمک می‌کند تا از خدمات یادگیری ماشین و هوش مصنوعی برای مبارزه با تقلب، اتلاف و سوء استفاده استفاده کنند. در اوقات فراغتش، می توانید او را در حال دوچرخه سواری در کوهستان، کیک بوکسینگ یا نواختن گیتار در یک گروه متال دهه 90 بیابید.

"ID + Selfie" - بهبود تأیید هویت دیجیتال با استفاده از هوش داده‌های PlatoBlockchain AWS. جستجوی عمودی Ai.نوح دونالدسون یک معمار راه حل در AWS است که از سازمان های مالی فدرال حمایت می کند. او در مورد فناوری AI/ML که می تواند فرآیندهای دستی را کاهش دهد، تجربیات مشتری را بهبود بخشد و به حل مشکلات جالب کمک کند، هیجان زده است. در خارج از محل کار، او از گذراندن وقت روی یخ با پسرش به بازی هاکی، شکار با دختر بزرگ‌ترش و تیراندازی با دختر کوچک‌ترش لذت می‌برد.

تمبر زمان:

بیشتر از آموزش ماشین AWS