“ID + Selfie” – Cải thiện xác minh danh tính kỹ thuật số bằng cách sử dụng AWS PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

“ID + Selfie” – Cải thiện việc xác minh danh tính kỹ thuật số bằng AWS

Đại dịch toàn cầu COVID-19 đã đẩy nhanh nhu cầu xác minh và hỗ trợ người dùng trực tuyến trong một số ngành, chẳng hạn như dịch vụ tài chính, bảo hiểm và chăm sóc sức khỏe. Khi nói đến trải nghiệm người dùng, điều quan trọng là phải cung cấp giao dịch suôn sẻ trong khi vẫn duy trì tiêu chuẩn cao về xác minh danh tính. Câu hỏi đặt ra là làm cách nào để xác minh người thật trong thế giới kỹ thuật số?

Nhận thức lại Amazon cung cấp khả năng phân tích và nhận dạng khuôn mặt được đào tạo trước để xác minh danh tính cho các ứng dụng trực tuyến của bạn, chẳng hạn như ngân hàng, phúc lợi, thương mại điện tử, v.v.

Trong bài đăng này, chúng tôi trình bày mẫu thiết kế xác minh danh tính “ID + Selfie” và mã mẫu bạn có thể sử dụng để tạo điểm cuối REST xác minh danh tính của riêng mình. Đây là mẫu thiết kế phổ biến mà bạn có thể kết hợp vào các giải pháp hiện có hoặc giải pháp mới yêu cầu xác minh danh tính dựa trên khuôn mặt. Người dùng xuất trình một hình thức nhận dạng như bằng lái xe hoặc hộ chiếu. Người dùng sẽ chụp ảnh selfie theo thời gian thực bằng ứng dụng. Sau đó, chúng tôi so sánh khuôn mặt trong tài liệu với ảnh selfie thời gian thực được chụp trên thiết bị của họ.

API so sánh nhận thức của Amazon

Cốt lõi của mẫu thiết kế “ID + Selfie” là việc so sánh khuôn mặt trong ảnh selfie với khuôn mặt trên giấy tờ tùy thân. Để làm được điều này, chúng tôi sử dụng Amazon Rekognition CompareFaces API. API so sánh một khuôn mặt trong ảnh đầu vào nguồn với một hoặc nhiều khuôn mặt được phát hiện trong ảnh đầu vào đích. Trong ví dụ sau, chúng tôi so sánh giấy phép lái xe mẫu (trái) với ảnh selfie (phải).

nguồn Mục tiêu
“ID + Selfie” – Cải thiện xác minh danh tính kỹ thuật số bằng cách sử dụng AWS PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Sau đây là một ví dụ về mã 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'])

Một số giá trị được trả về trong Phản hồi API CompareFaces. Chúng tôi tập trung vào Similarity giá trị trả về trong FaceMatches để xác thực ảnh selfie khớp với ID được cung cấp.

Hiểu các tham số điều chỉnh chính

SimilarityThreshold được đặt thành 80% theo mặc định và sẽ chỉ trả về kết quả có điểm tương tự lớn hơn hoặc bằng 80%. Điều chỉnh giá trị bằng cách chỉ định SimilarityThreshold tham số.

QualityFilter là tham số đầu vào để lọc ra những khuôn mặt được phát hiện không đáp ứng thanh chất lượng yêu cầu. Thanh chất lượng dựa trên nhiều trường hợp sử dụng phổ biến. Sử dụng QualityFilter để đặt thanh chất lượng bằng cách chỉ định LOW, MEDIUM, hoặc là HIGH. Nếu bạn không muốn lọc các khuôn mặt có chất lượng kém, hãy chỉ định NONE. Giá trị mặc định là NONE.

Tổng quan về giải pháp

Bạn có thể tạo API “ID + Selfie” để xác minh danh tính kỹ thuật số bằng cách triển khai các thành phần sau:

  • API REST có phương thức POST cho phép chúng tôi gửi ảnh selfie và tải trọng nhận dạng rồi trả về phản hồi, trong trường hợp này là điểm tương tự
  • Chức năng nhận tải trọng, chuyển đổi hình ảnh sang định dạng phù hợp và gọi Amazon Rekognition compare_faces API.

Chúng tôi thực hiện Cổng API Amazon cho chức năng REST API và AWS Lambda cho chức năng.

Sơ đồ sau minh họa kiến ​​trúc giải pháp và quy trình làm việc.

“ID + Selfie” – Cải thiện xác minh danh tính kỹ thuật số bằng cách sử dụng AWS PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Dòng công việc bao gồm các bước sau:

  1. Người dùng tải lên giấy tờ tùy thân cần thiết và một bức ảnh selfie.
  2. Khách hàng gửi tài liệu nhận dạng và ảnh selfie đến điểm cuối REST.
  3. Điểm cuối REST trả về điểm tương đồng cho máy khách.
  4. Việc đánh giá được thực hiện thông qua logic nghiệp vụ trong ứng dụng của bạn. Ví dụ: nếu điểm tương đồng dưới 80%, nó sẽ không vượt qua được quá trình kiểm tra nhận dạng kỹ thuật số; nếu không nó sẽ vượt qua quá trình kiểm tra nhận dạng kỹ thuật số.
  5. Client gửi trạng thái cho người dùng.

Mã lambda

Hàm Lambda chuyển đổi tải trọng đến từ base64 thành byte cho mỗi hình ảnh, sau đó gửi nguồn (ảnh selfie) và mục tiêu (nhận dạng) tới Amazon Rekognition compare_faces API và trả về điểm tương tự nhận được trong nội dung phản hồi API. Xem đoạn mã sau:

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

  }

Triển khai dự án

Dự án này có sẵn để triển khai thông qua Mẫu AWS với Bộ công cụ phát triển đám mây AWS (AWS CDK). Bạn có thể sao chép kho lưu trữ và sử dụng quy trình AWS CDK sau đây để triển khai vào tài khoản AWS của mình.

  1. Thiết lập người dùng có quyền triển khai theo chương trình các tài nguyên giải pháp thông qua AWS CDK.
  2. Thiết lập Giao diện dòng lệnh AWS (AWS CLI). Để biết hướng dẫn, hãy tham khảo Định cấu hình AWS CLI.
  3. Nếu đây là lần đầu tiên bạn sử dụng AWS CDK, hãy hoàn thành các điều kiện tiên quyết được liệt kê trong Làm việc với AWS CDK bằng Python.
  4. Sao chép Kho GitHub.
  5. Tạo môi trường ảo. Lệnh bạn sử dụng tùy thuộc vào hệ điều hành của bạn:
    1. Nếu sử dụng Windows, hãy chạy lệnh sau trong cửa sổ terminal của bạn từ nguồn của kho lưu trữ nhân bản:
      ..venvScriptsactivate

    2. Nếu sử dụng Mac hoặc Linux, hãy chạy lệnh sau trong cửa sổ terminal của bạn từ nguồn của kho lưu trữ nhân bản:
      .venv/bin/activate

  6. Sau khi kích hoạt môi trường ảo, hãy cài đặt các phần phụ thuộc tiêu chuẩn của ứng dụng:
    python -m pip install -r requirements.txt

  7. Bây giờ môi trường đã được thiết lập và các yêu cầu đã được đáp ứng, chúng ta có thể đưa ra lệnh triển khai AWS CDK để triển khai dự án này lên AWS:
    CDK Deploy

Thực hiện lệnh gọi API

Chúng ta cần gửi tải trọng ở định dạng base64 đến điểm cuối REST. Chúng tôi sử dụng tệp Python để thực hiện lệnh gọi API, cho phép chúng tôi mở tệp nguồn và tệp đích, chuyển đổi chúng thành base64 và gửi tải trọng đến Cổng API. Mã này có sẵn trong kho lưu trữ.

Lưu ý rằng SOURCETARGET vị trí tệp sẽ nằm trên hệ thống tệp cục bộ của bạn và URL là URL Cổng API được tạo trong quá trình tạo dự án.

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

Làm sạch

Chúng tôi đã sử dụng AWS CDK để xây dựng dự án này, vì vậy, chúng tôi có thể mở dự án của mình cục bộ và đưa ra lệnh AWS CDK sau để dọn sạch tài nguyên:

CDK Destroy

Kết luận

Vậy là bạn đã có mẫu thiết kế “ID + Selfie” với một API đơn giản mà bạn có thể tích hợp với ứng dụng của mình để thực hiện xác minh danh tính kỹ thuật số. Trong bài đăng tiếp theo của loạt bài này, chúng tôi sẽ mở rộng hơn nữa về mẫu này bằng cách trích xuất văn bản từ tài liệu nhận dạng và tìm kiếm bộ sưu tập khuôn mặt để tránh trùng lặp.

Để tìm hiểu thêm, hãy xem Hướng dẫn dành cho nhà phát triển Amazon Rekognition về phát hiện và phân tích khuôn mặt.


Về các tác giả

“ID + Selfie” – Cải thiện xác minh danh tính kỹ thuật số bằng cách sử dụng AWS PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái. Mike Ames là Kiến trúc sư giải pháp AI/ML ứng dụng chính của AWS. Anh giúp các công ty sử dụng dịch vụ máy học và AI để chống gian lận, lãng phí và lạm dụng. Khi rảnh rỗi, bạn có thể thấy anh ấy đạp xe leo núi, kickboxing hoặc chơi ghi-ta trong ban nhạc metal những năm 90.

“ID + Selfie” – Cải thiện xác minh danh tính kỹ thuật số bằng cách sử dụng AWS PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Nô-ê Donaldson là Kiến trúc sư giải pháp tại AWS hỗ trợ các tổ chức tài chính liên bang. Anh ấy rất hào hứng với công nghệ AI/ML có thể giảm bớt các quy trình thủ công, cải thiện trải nghiệm của khách hàng và giúp giải quyết các vấn đề thú vị. Ngoài công việc, anh thích dành thời gian trên sân băng cùng con trai chơi khúc côn cầu, đi săn với con gái lớn và bắn súng với con gái út.

Dấu thời gian:

Thêm từ Học máy AWS