「ID + Selfie」 – AWS PlatoBlockchain Data Intelligence を使用したデジタル ID 検証の改善。垂直検索。あい。

「ID + Selfie」 – AWS を使用したデジタル ID 検証の改善

COVID-19 の世界的大流行により、金融サービス、保険、ヘルスケアなどの複数の業界で、ユーザーをオンラインで検証してオンボーディングする必要性が加速しています。 ユーザーエクスペリエンスに関して言えば、身元確認の高い基準を維持しながら、摩擦のないトランザクションを提供することが重要です. 問題は、デジタルの世界で実在の人物をどのように確認するかです。

Amazonの再認識 銀行、福利厚生、e コマースなどのオンライン アプリケーションに ID 検証用の事前トレーニング済みの顔認識および分析機能を提供します。

この投稿では、「ID + Selfie」の本人確認デザイン パターンと、 サンプルコード 独自の ID 検証 REST エンドポイントを作成するために使用できます。 これは、顔ベースの ID 検証を必要とする既存または新しいソリューションに組み込むことができる一般的な設計パターンです。 ユーザーは、運転免許証やパスポートなどの身分証明書を提示します。 ユーザーは、アプリケーションでリアルタイムのセルフィーをキャプチャします。 次に、ドキュメントの顔と、デバイスで撮影したリアルタイムのセルフィーを比較します。

Amazon Rekognition CompareFaces API

「ID + Selfie」のデザインパターンの核となるのは、セルフィーの顔と身分証明書の顔の比較です。 このために、Amazon Rekognition を使用します。 CompareFaces API。 API は、ソース入力画像の顔をターゲット入力画像で検出された顔と比較します。 次の例では、サンプルの運転免許証 (左) とセルフィー (右) を比較します。

ソース ターゲット
「ID + Selfie」 – AWS PlatoBlockchain Data Intelligence を使用したデジタル ID 検証の改善。垂直検索。あい。

以下は、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 セルフィーが提供された ID と一致することを検証します。

主要な調整パラメータについて

SimilarityThreshold デフォルトでは 80% に設定されており、類似度スコアが 80% 以上の結果のみが返されます。 を指定して値を調整します。 SimilarityThreshold パラメータに一致する最初のデバイスのリモートコントロール URL を返します。

QualityFilter 必要な品質バーを満たさない検出された顔を除外するための入力パラメーターです。 品質バーは、さまざまな一般的なユース ケースに基づいています。 使用する QualityFilter 指定して品質基準を設定する LOW, MEDIUMまたは HIGH. 低品質の顔をフィルタリングしたくない場合は、指定します NONE。 デフォルト値は NONE.

ソリューションの概要

次のコンポーネントをデプロイすることで、デジタル ID 検証用の「ID + Selfie」API を作成できます。

  • セルフィーと識別ペイロードを送信し、応答 (この場合は類似度スコア) を返すことを可能にする POST メソッドを備えた REST API
  • ペイロードを受け取り、画像を適切な形式に変換し、Amazon Rekognition を呼び出す関数 compare_faces APIです。

実施します アマゾンAPIゲートウェイ REST API 機能と AWSラムダ 機能のために。

次の図は、ソリューションのアーキテクチャとワークフローを示しています。

「ID + Selfie」 – AWS PlatoBlockchain Data Intelligence を使用したデジタル ID 検証の改善。垂直検索。あい。

ワークフローには次の手順が含まれます。

  1. ユーザーは、必要な身分証明書とセルフィーをアップロードします。
  2. クライアントは、身分証明書とセルフィーを REST エンドポイントに送信します。
  3. REST エンドポイントは、類似性スコアをクライアントに返します。
  4. 評価は、アプリケーションのビジネス ロジックを通じて行われます。 たとえば、類似性スコアが 80% 未満の場合、デジタル アイデンティティ チェックに失敗します。 それ以外の場合は、デジタル ID チェックに合格します。
  5. クライアントはステータスをユーザーに送信します。

ラムダコード

Lambda 関数は、画像ごとに受信ペイロードを base64 からバイトに変換し、ソース (セルフィー) とターゲット (ID) を 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)。 手順については、を参照してください。 AWSCLIの設定.
  3. AWS CDK を初めて使用する場合は、に記載されている前提条件を完了してください。 Python で AWS CDK を操作する.
  4. クローン GitHubリポジトリ.
  5. 仮想環境を作成します。 使用するコマンドは、OS によって異なります。
    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 Gateway に送信できます。 このコードはリポジトリで入手できます。

なお、 SOURCE & TARGET ファイルの場所はローカル ファイル システム上にあり、URL はプロジェクトの作成中に生成された API Gateway 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

まとめ

これで、アプリケーションと統合してデジタル ID 検証を実行できるシンプルな API を備えた「ID + Selfie」デザイン パターンが完成しました。 シリーズの次の投稿では、このパターンをさらに拡張して、身分証明書からテキストを抽出し、顔のコレクションを検索して重複を防ぎます。

さらに詳しく知りたい場合は、以下をご覧ください。 Amazon Rekognition 開発者ガイド 顔の検出と分析について。


著者について

「ID + Selfie」 – AWS PlatoBlockchain Data Intelligence を使用したデジタル ID 検証の改善。垂直検索。あい。 マイクエイムス AWS のプリンシパル応用 AI/ML ソリューション アーキテクトです。 彼は、企業が機械学習と AI サービスを使用して詐欺、浪費、悪用に対抗するのを支援しています。 余暇には、マウンテン バイク、キックボクシング、または 90 年代のメタル バンドでギターを弾いているのを見つけることができます。

「ID + Selfie」 – AWS PlatoBlockchain Data Intelligence を使用したデジタル ID 検証の改善。垂直検索。あい。ノア・ドナルドソン 連邦金融機関をサポートする AWS のソリューション アーキテクトです。 彼は、手作業のプロセスを減らし、カスタマー エクスペリエンスを向上させ、興味深い問題を解決するのに役立つ AI/ML テクノロジに興奮しています。 仕事以外では、ホッケーをする息子と一緒に氷上で過ごしたり、長女と一緒に狩りをしたり、末娘と一緒にフープを撃ったりすることを楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習