"आईडी + सेल्फी" - एडब्ल्यूएस प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके डिजिटल पहचान सत्यापन में सुधार। लंबवत खोज. ऐ.

"आईडी + सेल्फी" - एडब्ल्यूएस का उपयोग करके डिजिटल पहचान सत्यापन में सुधार

COVID-19 वैश्विक महामारी ने वित्तीय सेवाओं, बीमा और स्वास्थ्य सेवा जैसे कई उद्योगों में उपयोगकर्ताओं को ऑनलाइन सत्यापित करने और ऑनबोर्ड करने की आवश्यकता को तेज कर दिया है। जब उपयोगकर्ता अनुभव की बात आती है तो पहचान सत्यापन के लिए एक उच्च मानक बनाए रखते हुए घर्षण रहित लेनदेन प्रदान करना महत्वपूर्ण होता है। सवाल यह है कि आप डिजिटल दुनिया में वास्तविक लोगों को कैसे सत्यापित करते हैं?

अमेज़ॅन रेकग्निशन आपके ऑनलाइन आवेदनों जैसे बैंकिंग, लाभ, ई-कॉमर्स, और बहुत कुछ के लिए पहचान सत्यापन के लिए पूर्व-प्रशिक्षित चेहरे की पहचान और विश्लेषण क्षमताएं प्रदान करता है।

इस पोस्ट में, हम "आईडी + सेल्फी" पहचान सत्यापन डिजाइन पैटर्न और प्रस्तुत करते हैं नमूना कोड आप अपना स्वयं का पहचान सत्यापन REST समापन बिंदु बनाने के लिए उपयोग कर सकते हैं। यह एक सामान्य डिज़ाइन पैटर्न है जिसे आप मौजूदा या नए समाधानों में शामिल कर सकते हैं जिनके लिए चेहरा-आधारित पहचान सत्यापन की आवश्यकता होती है। उपयोगकर्ता ड्राइविंग लाइसेंस या पासपोर्ट जैसी पहचान का एक रूप प्रस्तुत करता है। उपयोगकर्ता एप्लिकेशन के साथ रीयल-टाइम सेल्फी लेता है। फिर हम दस्तावेज़ से चेहरे की तुलना उनके डिवाइस पर ली गई वास्तविक समय की सेल्फी से करते हैं।

Amazon रिकॉग्निशन कंपेयरफेस एपीआई

"आईडी + सेल्फी" डिजाइन पैटर्न के मूल में सेल्फी में चेहरे की तुलना पहचान दस्तावेज पर चेहरे से की गई है। इसके लिए हम Amazon Recognition का इस्तेमाल करते हैं CompareFaces एपीआई। एपीआई स्रोत इनपुट छवि में एक चेहरे की तुलना लक्ष्य इनपुट छवि में पाए गए चेहरे या चेहरे से करता है। निम्नलिखित उदाहरण में, हम ड्राइवर के लाइसेंस (बाएं) के नमूने की तुलना सेल्फी (दाएं) से करते हैं।

स्रोत लक्ष्य
"आईडी + सेल्फी" - एडब्ल्यूएस प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके डिजिटल पहचान सत्यापन में सुधार। लंबवत खोज. ऐ.

निम्नलिखित एपीआई कोड का एक उदाहरण है:

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

में कई मान लौटाए जाते हैं तुलनाफेस एपीआई प्रतिक्रिया. हम पर ध्यान केंद्रित करते हैं Similarity मूल्य में वापस आ गया FaceMatches सेल्फी को सत्यापित करने के लिए प्रदान की गई आईडी से मेल खाता है।

कुंजी ट्यूनिंग मापदंडों को समझना

SimilarityThreshold डिफ़ॉल्ट रूप से 80% पर सेट है और केवल 80% से अधिक या उसके बराबर समानता स्कोर वाले परिणाम लौटाएगा। निर्दिष्ट करके मान समायोजित करें SimilarityThreshold पैरामीटर।

QualityFilter एक इनपुट पैरामीटर है जो पहचाने गए चेहरों को फ़िल्टर करता है जो आवश्यक गुणवत्ता बार को पूरा नहीं करते हैं। गुणवत्ता पट्टी विभिन्न प्रकार के सामान्य उपयोग के मामलों पर आधारित है। प्रयोग करना QualityFilter निर्दिष्ट करके गुणवत्ता पट्टी सेट करने के लिए LOW, MEDIUMया, HIGH. यदि आप खराब गुणवत्ता वाले चेहरों को फ़िल्टर नहीं करना चाहते हैं, तो निर्दिष्ट करें NONE. डिफ़ॉल्ट मान है NONE.

समाधान अवलोकन

आप निम्नलिखित घटकों को तैनात करके डिजिटल पहचान सत्यापन के लिए एक "आईडी + सेल्फी" एपीआई बना सकते हैं:

  • एक POST विधि के साथ एक REST API जो हमें सेल्फी और पहचान पेलोड भेजने की अनुमति देता है और प्रतिक्रिया देता है, इस मामले में समानता स्कोर
  • पेलोड प्राप्त करने, छवियों को उचित प्रारूप में बदलने और अमेज़ॅन रिकॉग्निशन को कॉल करने के लिए एक फ़ंक्शन compare_faces एपीआई।

हम लागू करते हैं अमेज़ॅन एपीआई गेटवे बाकी एपीआई कार्यक्षमता के लिए और AWS लाम्बा समारोह के लिए.

निम्नलिखित आरेख समाधान वास्तुकला और कार्यप्रवाह को दर्शाता है।

"आईडी + सेल्फी" - एडब्ल्यूएस प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके डिजिटल पहचान सत्यापन में सुधार। लंबवत खोज. ऐ.

वर्कफ़्लो में निम्न चरण होते हैं:

  1. उपयोगकर्ता आवश्यक पहचान दस्तावेज और एक सेल्फी अपलोड करता है।
  2. ग्राहक पहचान दस्तावेज और सेल्फी को REST समापन बिंदु पर जमा करता है।
  3. REST समापन बिंदु क्लाइंट को एक समानता स्कोर लौटाता है।
  4. आपके आवेदन में व्यावसायिक तर्क के माध्यम से एक मूल्यांकन किया जाता है। उदाहरण के लिए, यदि समानता स्कोर 80% से कम है, तो यह डिजिटल पहचान जांच में विफल रहता है; अन्यथा यह डिजिटल पहचान जांच पास करता है।
  5. क्लाइंट उपयोगकर्ता को स्थिति भेजता है।

लैम्ब्डा कोड

लैम्ब्डा फ़ंक्शन आने वाले पेलोड को प्रत्येक छवि के लिए बेस 64 से बाइट में परिवर्तित करता है और फिर स्रोत (सेल्फ़ी) और लक्ष्य (पहचान) को अमेज़ॅन रिकॉग्निशन में भेजता है compare_faces एपीआई और एपीआई प्रतिक्रिया के मुख्य भाग में प्राप्त समानता स्कोर लौटाता है। निम्नलिखित कोड देखें:

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 प्रक्रिया का उपयोग कर सकते हैं।

  1. एक उपयोगकर्ता सेट करें जिसके पास AWS CDK के माध्यम से समाधान संसाधनों को प्रोग्रामेटिक रूप से परिनियोजित करने की अनुमति है।
  2. सेट अप करें AWS कमांड लाइन इंटरफ़ेस (एडब्ल्यूएस सीएलआई)। निर्देशों के लिए, देखें एडब्ल्यूएस सीएलआई को कॉन्फ़िगर करना.
  3. यदि आप पहली बार AWS CDK का उपयोग कर रहे हैं, तो इसमें सूचीबद्ध पूर्वापेक्षाएँ पूरी करें पायथन में एडब्ल्यूएस सीडीके के साथ काम करना.
  4. क्लोन किया गया गिटहब भंडार.
  5. आभासी वातावरण बनाएँ। आपके द्वारा उपयोग की जाने वाली कमांड आपके OS पर निर्भर करती है:
    1. यदि Windows का उपयोग कर रहे हैं, तो क्लोन रिपॉजिटरी के स्रोत से अपनी टर्मिनल विंडो में निम्न कमांड चलाएँ:
      ..venvScriptsactivate

    2. यदि मैक या लिनक्स का उपयोग कर रहे हैं, तो क्लोन रिपॉजिटरी के स्रोत से अपनी टर्मिनल विंडो में निम्न कमांड चलाएँ:
      .venv/bin/activate

  6. आभासी वातावरण को सक्रिय करने के बाद, ऐप की मानक निर्भरताएँ स्थापित करें:
    python -m pip install -r requirements.txt

  7. अब जब पर्यावरण स्थापित हो गया है और आवश्यकताएं पूरी हो गई हैं, तो हम इस परियोजना को AWS में तैनात करने के लिए AWS CDK परिनियोजन आदेश जारी कर सकते हैं:
    CDK Deploy

एपीआई कॉल करें

हमें आधार64 प्रारूप में पेलोड को REST समापन बिंदु पर भेजने की आवश्यकता है। हम एपीआई कॉल करने के लिए एक पायथन फ़ाइल का उपयोग करते हैं, जो हमें स्रोत और लक्ष्य फ़ाइलों को खोलने, उन्हें बेस 64 में बदलने और एपीआई गेटवे पर पेलोड भेजने की अनुमति देता है। यह कोड रिपॉजिटरी में उपलब्ध है।

ध्यान दें कि SOURCE और TARGET फ़ाइल स्थान आपके स्थानीय फ़ाइल सिस्टम पर होंगे, और URL प्रोजेक्ट के निर्माण के दौरान उत्पन्न API गेटवे URL है।

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

निष्कर्ष

वहां आपके पास एक साधारण एपीआई के साथ "आईडी + सेल्फी" डिज़ाइन पैटर्न है जिसे आप डिजिटल पहचान सत्यापन करने के लिए अपने आवेदन के साथ एकीकृत कर सकते हैं। हमारी श्रृंखला में अगली पोस्ट में, हम पहचान दस्तावेज़ से पाठ निकालने और दोहराव को रोकने के लिए चेहरों के संग्रह की खोज करके इस पैटर्न पर और विस्तार करते हैं।

अधिक जानने के लिए, देखें Amazon रिकॉग्निशन डेवलपर गाइड चेहरों का पता लगाने और उनका विश्लेषण करने पर।


लेखक के बारे में

"आईडी + सेल्फी" - एडब्ल्यूएस प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके डिजिटल पहचान सत्यापन में सुधार। लंबवत खोज. ऐ. माइक एम्स एडब्ल्यूएस के साथ प्रिंसिपल एप्लाइड एआई/एमएल सॉल्यूशंस आर्किटेक्ट है। वह धोखाधड़ी, बर्बादी और दुरुपयोग से निपटने के लिए कंपनियों को मशीन लर्निंग और एआई सेवाओं का उपयोग करने में मदद करता है। अपने खाली समय में, आप उसे 90 के दशक के मेटल बैंड में माउंटेन बाइकिंग, किकबॉक्सिंग या गिटार बजाते हुए पा सकते हैं।

"आईडी + सेल्फी" - एडब्ल्यूएस प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके डिजिटल पहचान सत्यापन में सुधार। लंबवत खोज. ऐ.नूह डोनाल्डसन AWS में एक समाधान वास्तुकार है जो संघीय वित्तीय संगठनों का समर्थन करता है। वह एआई/एमएल तकनीक के बारे में उत्साहित हैं जो मैन्युअल प्रक्रियाओं को कम कर सकती है, ग्राहक अनुभव में सुधार कर सकती है और दिलचस्प समस्याओं को हल करने में मदद कर सकती है। काम के बाहर, वह अपने बेटे के साथ हॉकी खेलने, अपनी सबसे बड़ी बेटी के साथ शिकार करने और अपनी सबसे छोटी बेटी के साथ शूटिंग हुप्स के साथ बर्फ पर समय बिताने का आनंद लेता है।

समय टिकट:

से अधिक AWS मशीन लर्निंग