“ID + Selfie” – Meningkatkan verifikasi identitas digital menggunakan AWS PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

“ID + Selfie” – Meningkatkan verifikasi identitas digital menggunakan AWS

Pandemi global COVID-19 telah mempercepat kebutuhan untuk memverifikasi dan mengarahkan pengguna secara online di beberapa industri, seperti layanan keuangan, asuransi, dan perawatan kesehatan. Dalam hal pengalaman pengguna, sangat penting untuk menyediakan transaksi tanpa gesekan sambil mempertahankan standar tinggi untuk verifikasi identitas. Pertanyaannya adalah, bagaimana Anda memverifikasi orang sungguhan di dunia digital?

Rekognisi Amazon menyediakan pengenalan wajah dan kemampuan analisis pra-terlatih untuk verifikasi identitas ke aplikasi online Anda, seperti perbankan, manfaat, e-niaga, dan banyak lagi.

Pada postingan kali ini kami menyajikan pola desain verifikasi identitas “ID+Selfie” dan Kode sampel Anda dapat menggunakan untuk membuat titik akhir verifikasi identitas Anda sendiri REST. Ini adalah pola desain umum yang dapat Anda masukkan ke dalam solusi yang sudah ada atau baru yang memerlukan verifikasi identitas berbasis wajah. Pengguna menunjukkan bentuk identifikasi seperti SIM atau paspor. Pengguna kemudian mengambil selfie real-time dengan aplikasi. Kami kemudian membandingkan wajah dari dokumen dengan selfie real-time yang diambil di perangkat mereka.

Amazon Rekognition CompareFaces API

Inti dari pola desain “ID+Selfie” adalah perbandingan wajah dalam selfie dengan wajah pada dokumen identitas. Untuk ini, kami menggunakan Pengakuan Amazon CompareFaces API. API membandingkan wajah di gambar input sumber dengan wajah atau wajah yang terdeteksi di gambar input target. Dalam contoh berikut, kami membandingkan contoh SIM (kiri) dengan selfie (kanan).

sumber target
“ID + Selfie” – Meningkatkan verifikasi identitas digital menggunakan AWS PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Berikut ini adalah contoh kode 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'])

Beberapa nilai dikembalikan dalam Respons API CompareFaces. Kami fokus pada Similarity nilai yang dikembalikan dalam FaceMatches untuk memvalidasi selfie sesuai dengan ID yang diberikan.

Memahami parameter penyetelan utama

SimilarityThreshold diatur ke 80% secara default dan hanya akan mengembalikan hasil dengan skor kesamaan lebih besar dari atau sama dengan 80%. Sesuaikan nilainya dengan menentukan SimilarityThreshold parameter.

QualityFilter adalah parameter input untuk menyaring wajah yang terdeteksi yang tidak memenuhi standar kualitas yang diperlukan. Bilah kualitas didasarkan pada berbagai kasus penggunaan umum. Menggunakan QualityFilter untuk mengatur bilah kualitas dengan menentukan LOW, MEDIUM, atau HIGH. Jika Anda tidak ingin memfilter wajah berkualitas buruk, tentukan NONE. Nilai defaultnya adalah NONE.

Ikhtisar solusi

Anda dapat membuat API “ID + Selfie” untuk verifikasi identitas digital dengan menerapkan komponen berikut:

  • API REST dengan metode POST yang memungkinkan kita untuk mengirim selfie dan muatan identifikasi dan mengembalikan respons, dalam hal ini skor kesamaan
  • Fungsi untuk menerima muatan, mengonversi gambar ke format yang tepat, dan memanggil Amazon Rekognition compare_faces API.

Kami menerapkan Gerbang API Amazon untuk fungsionalitas REST API dan AWS Lambda untuk fungsi.

Diagram berikut mengilustrasikan arsitektur solusi dan alur kerja.

“ID + Selfie” – Meningkatkan verifikasi identitas digital menggunakan AWS PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Alur kerja berisi langkah-langkah berikut ini:

  1. Pengguna mengunggah dokumen identifikasi yang diperlukan dan selfie.
  2. Klien menyerahkan dokumen identifikasi dan selfie ke titik akhir REST.
  3. Titik akhir REST mengembalikan skor kesamaan ke klien.
  4. Evaluasi dilakukan melalui logika bisnis dalam aplikasi Anda. Misalnya, jika skor kesamaan di bawah 80%, pemeriksaan identitas digital gagal; jika tidak, ia melewati pemeriksaan identitas digital.
  5. Klien mengirimkan status ke pengguna.

Kode lambda

Fungsi Lambda mengonversi payload yang masuk dari base64 ke byte untuk setiap gambar dan kemudian mengirimkan sumber (selfie) dan target (identifikasi) ke Amazon Rekognition compare_faces API dan mengembalikan skor kesamaan yang diterima di isi respons API. Lihat kode berikut:

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

  }

Sebarkan proyek

Proyek ini tersedia untuk disebarkan melalui Sampel AWS pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. Kit Pengembangan AWS Cloud (AWS CDK). Anda dapat mengkloning repositori dan menggunakan proses AWS CDK berikut untuk diterapkan ke akun AWS Anda.

  1. Siapkan pengguna yang memiliki izin untuk menerapkan sumber daya solusi secara terprogram melalui AWS CDK.
  2. Siapkan Antarmuka Baris Perintah AWS (AWS CLI). Untuk petunjuk, lihat Mengonfigurasi AWS CLI.
  3. Jika ini pertama kalinya Anda menggunakan AWS CDK, selesaikan prasyarat yang tercantum di Bekerja dengan AWS CDK dengan Python.
  4. Clone file Repositori GitHub.
  5. Buat lingkungan virtual. Perintah yang Anda gunakan tergantung pada OS Anda:
    1. Jika menggunakan Windows, jalankan perintah berikut di jendela terminal Anda dari sumber repositori kloning:
      ..venvScriptsactivate

    2. Jika menggunakan Mac atau Linux, jalankan perintah berikut di jendela terminal Anda dari sumber repositori kloning:
      .venv/bin/activate

  6. Setelah mengaktifkan lingkungan virtual, instal dependensi standar aplikasi:
    python -m pip install -r requirements.txt

  7. Sekarang setelah lingkungan disiapkan dan persyaratan terpenuhi, kami dapat mengeluarkan perintah penerapan AWS CDK untuk menerapkan proyek ini ke AWS:
    CDK Deploy

Lakukan panggilan API

Kita perlu mengirim muatan dalam format base64 ke titik akhir REST. Kami menggunakan file Python untuk membuat panggilan API, yang memungkinkan kami untuk membuka file sumber dan target, mengonversinya ke base64, dan mengirim muatan ke API Gateway. Kode ini tersedia di repositori.

Perhatikan bahwa SOURCE dan TARGET lokasi file akan berada di sistem file lokal Anda, dan URL-nya adalah URL Gateway API yang dihasilkan selama pembuatan proyek.

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

Membersihkan

Kami menggunakan AWS CDK untuk membangun proyek ini, sehingga kami dapat membuka proyek kami secara lokal dan mengeluarkan perintah AWS CDK berikut untuk membersihkan sumber daya:

CDK Destroy

Kesimpulan

Itu dia, pola desain “ID + Selfie” dengan API sederhana yang dapat Anda integrasikan dengan aplikasi Anda untuk melakukan verifikasi identitas digital. Dalam posting berikutnya dalam seri kami, kami memperluas pola ini lebih lanjut dengan mengekstraksi teks dari dokumen identifikasi dan mencari koleksi wajah untuk mencegah duplikasi.

Untuk mempelajari lebih lanjut, lihat Panduan Pengembang Pengakuan Amazon dalam mendeteksi dan menganalisis wajah.


Tentang Penulis

“ID + Selfie” – Meningkatkan verifikasi identitas digital menggunakan AWS PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai. Mike Ames adalah Arsitek Solusi AI/ML Terapan Utama dengan AWS. Dia membantu perusahaan menggunakan pembelajaran mesin dan layanan AI untuk memerangi penipuan, pemborosan, dan penyalahgunaan. Di waktu senggangnya, Anda bisa menemuinya bersepeda gunung, kickboxing, atau bermain gitar di band metal 90-an.

“ID + Selfie” – Meningkatkan verifikasi identitas digital menggunakan AWS PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Nuh Donaldson adalah Arsitek Solusi di AWS yang mendukung organisasi keuangan federal. Dia senang dengan teknologi AI/ML yang dapat mengurangi proses manual, meningkatkan pengalaman pelanggan, dan membantu memecahkan masalah yang menarik. Di luar pekerjaan, ia menikmati menghabiskan waktu di atas es bersama putranya bermain hoki, berburu dengan putri sulungnya, dan menembak dengan putri bungsunya.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS