Amazonの再認識 合理化されたID検証プロセスを通じて、不正な攻撃を軽減し、正当な顧客のオンボーディング摩擦を最小限に抑えることができます。 これにより、顧客の信頼と安全性が向上する可能性があります。 このソリューションの主な機能は次のとおりです。
- 自撮り写真を使用して新しいユーザーを登録する
- IDカードとの顔照合およびIDカードデータ抽出後に新規ユーザーを登録する
- リピーターを認証する
AmazonRekognitionは事前トレーニング済みを提供します 顔認識 オプトインされたユーザーのIDをオンラインで確認するために、ユーザーのオンボーディングおよび認証ワークフローにすばやく追加できる機能。 このサービスを使用するために機械学習(ML)の専門知識は必要ありません。
以前で 役職、典型的なID検証ワークフローについて説明し、さまざまなAmazonRekognitionAPIを使用してID検証ソリューションを構築する方法を示しました。 この投稿では、完全なエンドツーエンドのID検証ソリューションを示すために、顔のIDベースの認証ユーザーインターフェイスを追加しました。 完全なサンプル実装を GitHubリポジトリ.
ソリューションの概要
次のリファレンスアーキテクチャは、AmazonRekognitionを他のAWSサービスとともに使用してID検証を実装する方法を示しています。
このアーキテクチャには、次のコンポーネントが含まれています。
- ユーザーは、内でホストされているフロントエンドWebポータルにアクセスします。 AWS 増幅 Amplifyは、フロントエンドWeb開発者が安全でスケーラブルなフルスタックアプリケーションを構築および展開できるようにするエンドツーエンドのソリューションです。
- アプリケーションが呼び出す アマゾンAPIゲートウェイ リクエストを正しいものにルーティングする AWSラムダ ユーザーフローに応じて機能します。 このソリューションには、認証、登録、IDカードへの登録、更新のXNUMXつの主要なアクションがあります。
- API Gatewayは、サービス統合を使用して AWSステップ関数 APIGatewayから呼び出された特定のエンドポイントに対応するエクスプレスステートマシン。 各ステップ内で、Lambda関数は、からの正しい呼び出しセットをトリガーする役割を果たします。 Amazon DynamoDB および Amazon シンプル ストレージ サービス (Amazon S3)、および関連するAmazonRekognitionAPI。
- DynamoDBはFaceIDを保持します(
face-id
)、S3パスURI、およびそれぞれの一意のID(従業員ID番号など)face-id
。 Amazon S3は、すべての顔画像を保存します。 - ソリューションの最後の主要コンポーネントはAmazonRekognitionです。 各フロー(認証、登録、IDカードへの登録、更新)は、タスクに応じて異なるAmazonRekognitionAPIを呼び出します。
ソリューションをデプロイする前に、次の概念とAPIの説明を知っておくことが重要です。
- コレクション – Amazon Rekognitionは、検出された顔に関する情報を、 コレクション。 コレクションに保存されている顔の情報を使用して、画像、保存されているビデオ、ストリーミングビデオで既知の顔を検索できます。 コレクションはさまざまなシナリオで使用できます。 たとえば、スキャンしたバッジ画像を保存するための顔コレクションを作成するには、 インデックスフェイス 従業員が建物に入ると、従業員の顔の画像がキャプチャされ、 画像で顔を検索 手術。 顔の一致で十分に高い類似度スコア(たとえば99%)が生成された場合、従業員を認証できます。
- DetectFaces API –このAPIは、入力として提供された画像内の顔を検出し、顔に関する情報を返します。 ユーザー登録ワークフローでは、この操作は次のステップに進む前に画像をスクリーニングするのに役立つ場合があります。 たとえば、写真に顔が含まれているかどうか、識別された人物が正しい向きであるかどうか、サングラスやキャップなどのフェイスブロッカーを着用していないかどうかを確認できます。
- IndexFaces API –このAPIは、入力画像内の顔を検出し、それらを指定されたコレクションに追加します。 この操作は、将来のクエリのために、スクリーニングされた画像をコレクションに追加するために使用されます。
- SearchFacesByImage API –指定された入力画像に対して、APIは最初に画像内の最大の顔を検出し、次に指定されたコレクションで一致する顔を検索します。 この操作では、入力面の特徴を指定されたコレクションの顔の特徴と比較します。
- CompareFaces API –このAPIは、ソース入力画像の顔を、ターゲット入力画像で検出された100個の最大の顔のそれぞれと比較します。 ソース画像に複数の顔が含まれている場合、サービスは最大の顔を検出し、それをターゲット画像で検出された各顔と比較します。 このユースケースでは、ソース画像とターゲット画像の両方に単一の顔が含まれていると想定しています。
- DeleteFaces API –このAPIは、コレクションから顔を削除します。 削除するコレクションIDとFaceIDの配列を指定します。
ワークフロー
このソリューションは、ユーザーの登録、認証、およびユーザープロファイルイメージの更新を可能にするワークフローのサンプルを提供します。 このセクションでは、各ワークフローについて詳しく説明します。
フェイスセルフィーを使用して新しいユーザーを登録する
次の図は、新規ユーザー登録のワークフローを示しています。 このプロセスの一般的な手順は次のとおりです。
- ユーザーが自分撮り画像をキャプチャします。
- 自撮り画像の品質チェックが行われます。
Note:このステップの後に、活性検出チェックを実行することもできます。 詳しくはこちらをご覧ください ブログ. - 自撮り写真は、既存のユーザーの顔のデータベースと照合されます。
次の画像は、新規ユーザー登録のステップ関数ワークフローを示しています。
このワークフローでは、次のXNUMXつの関数が呼び出されます。 顔を検出する, 検索面, インデックス面を選択します。 顔を検出する 関数はAmazonRekognitionを呼び出します DetectFaces
顔が画像で検出されて使用可能かどうかを判断するためのAPI。 品質チェックには、画像に顔がXNUMXつしかないことの確認、サングラスや帽子で顔が隠されていないことの確認、顔が回転していないことの確認などがあります。 ポーズ 寸法。 画像が品質チェックに合格した場合、 検索面 関数は、Amazon Rekognitionコレクション内の既存の顔の一致を確認することにより、検索します。 FaceMatch しきい値 信頼スコアは、しきい値の目標を満たしています。 詳細については、を参照してください。 類似性しきい値を使用して顔を一致させる。 コレクションに顔画像が存在しない場合は、 インデックス面 コレクション内の顔にインデックスを付けるために関数が呼び出されます。 顔画像のメタデータはDynamoDBテーブルに保存され、顔画像はS3バケットに保存されます。
新規ユーザー登録が成功すると、DynamoDBに顔画像の属性情報が追加されます。 ビジネスプロセスに応じてフローをカスタマイズできます。 多くの場合、前の図に示されているステップの一部またはすべてが含まれています。 すべてのステップを同期して実行することを選択できます(次のステップに進む前に、XNUMXつのステップが完了するのを待ちます)。 または、一部の手順を非同期で実行して(その手順が完了するのを待たずに)、ユーザー登録プロセスを高速化し、カスタマーエクスペリエンスを向上させることもできます。 手順が成功しない場合は、ユーザー登録をロールバックする必要があります。
IDカードデータ抽出によるIDカードとの顔照合後に新規ユーザーを登録する
このワークフローでは、画像によるユーザー登録に加えて、運転免許証などの身分証明書を使用して登録することができます。 IDカードで新規ユーザーを登録する手順は、新規ユーザーを登録する手順と同様です。
次の画像は、IDを使用した新規ユーザー登録のステップ関数ワークフローを示しています。
このワークフローでは、次のXNUMXつの関数が呼び出されます。 顔を検出する, 検索面, インデックス面 および 顔を比較する。 このワークフローの操作のシーケンスは、ユーザー登録ワークフローに似ていますが、 顔を比較する。 自撮り画像の品質を確認し、顔画像がコレクションに存在しないことを確認した後、 顔を比較する この関数は、自分撮り画像がIDカードの顔画像と一致することを確認するために呼び出されます。 画像が一致する場合、関連するプロパティがIDカードから抽出されます。 新しく起動したIDドキュメントを使用して、IDドキュメントからキーと値のペアを抽出できます アマゾンテキストラック AnalyzeID
API(米国地域の場合)またはAmazon Rekognition DetectText
API(米国以外の地域および英語以外の言語)。 IDカードから抽出されたプロパティがマージされ、ユーザーの顔がコレクション内でインデックスに登録されます。 インデックス面 機能。
顔画像のメタデータはDynamoDBテーブルに保存され、顔画像はS3バケットに保存されます。
画像が一致しない場合、または登録の重複が検出された場合、ユーザーはログインに失敗します。 ログインの失敗は、 アマゾンクラウドウォッチ イベント、およびアクションはを使用してトリガーできます Amazon シンプル通知サービス (Amazon SNS)失敗したログインを監視および追跡するためのセキュリティ操作を通知します。 詳細については、を参照してください。 CloudWatchを使用したAmazonSNSトピックのモニタリング.
リピーターを認証する
もうXNUMXつの一般的なフローは、既存またはリピーターのユーザーログインです。 このフローでは、ユーザーの顔(自分撮り)のチェックが、以前に登録された顔に対して実行されます。 このプロセスの一般的な手順には、ユーザーの顔のキャプチャ(自分撮り)、自分撮りの画質の確認、自分撮りの検索と顔データベースとの比較が含まれます。 次の図は、考えられるフローを示しています。
次の画像は、既存のユーザーを認証するためのワークフローを示しています。
このステップ関数ワークフローは、次のXNUMXつの関数を呼び出します。 顔を検出する, 顔を比較する および 検索面。 後に 顔を検出する 関数は、キャプチャされた顔画像が有効であることを確認します。 顔を比較する 関数は、DynamoDBテーブル内のリンクをチェックして、既存のユーザーと一致するS3バケット内の顔画像を探します。 一致するものが見つかった場合、ユーザーは正常に認証されます。 一致するものが見つからない場合は、search-faces関数が呼び出され、コレクション内の顔画像が検索されます。 ユーザーの顔画像がコレクションに存在する場合、ユーザーは検証され、認証プロセスが完了します。 それ以外の場合、ユーザーのアクセスは拒否されます。
前提条件
開始する前に、次の前提条件を完了してください。
- AWSアカウントを作成する.
- インストール AWSコマンドラインインターフェイス (AWS CLI)ローカルマシン上のバージョン2。 手順については、を参照してください AWSCLIの最新バージョンのインストールまたは更新.
- AWSCLIを設定します.
- Node.jsをインストールする ローカルマシンで。
- ローカルマシンでサンプルリポジトリのクローンを作成します。
ソリューションを展開する
適切なCloudFormationスタックを選択して、ご希望のリージョンのAWSアカウントでソリューションをプロビジョニングします。 このソリューションは、StepFunctionsおよびAmazonRekognitionAPIと統合されたAPIGatewayをデプロイして、ID検証ワークフローを実行します。
次の起動ボタンのいずれかをクリックすると、特定のリージョンのAWSアカウントにソリューションがプロビジョニングされます。
ローカルマシンで次の手順を実行して、フロントエンドアプリケーションを展開します。
WebUIを呼び出す
WebポータルはAmplifyで展開されます。 Amplifyコンソールで、ホストされているWebアプリケーション環境とURLを見つけます。 URLをコピーして、ブラウザからアクセスします。
フェイスセルフィーを使用して新しいユーザーを登録する
次の手順でユーザーとして登録します。
- Amplifyから提供されたWebURLを開きます。
- 選択する 登録する
- カメラを有効にして、顔画像をキャプチャします。
- ユーザー名と詳細を入力します。
- 選択する サインアップ アカウントを登録します。
リピーターを認証する
登録後、認証メカニズムとしてFaceIDを使用してログインします。
- Amplifyが提供するWebURLを開きます
- FaceIDをキャプチャします。
- ユーザーIDを入力します。
- 選択する ログイン.
登録画像でFaceIDが確認されると、「ログインに成功しました」というメッセージが表示されます。
IDカードデータ抽出によるIDカードとの顔照合後に新規ユーザーを登録する
IDを使用したユーザー登録をテストするには、次の手順を実行します。
- Amplifyが提供するWebURLを開きます。
- 選択する IDで登録
- カメラを有効にして、顔画像をキャプチャします。
- IDカードをドラッグアンドドロップします
- 選択する 登録する.
次のスクリーンショットは例を示しています。 このアプリケーションは、最大256KBのIDカードイメージをサポートします。
「正常に登録されたユーザー」というメッセージが表示されます。
クリーンアップ
AWSアカウントで追加料金が発生しないようにするには、AWS CloudFormationコンソールに移動してプロビジョニングしたリソースを削除し、 Riv-Prod
スタック。
スタックを削除しても、作成したS3バケットは削除されません。 このバケットには、すべての顔画像が保存されます。 S3バケットを削除する場合は、Amazon S3コンソールに移動し、バケットを空にしてから、完全に削除することを確認します。
まとめ
Amazon Rekognitionを使用すると、MLの専門知識を必要としない、実績のある高度にスケーラブルなディープラーニングテクノロジーを使用して、ID検証アプリケーションに画像分析を簡単に追加できます。 AmazonRekognitionは 顔の検出と比較 機能。 の組み合わせで 顔検出, 顔の比較, インデックスフェイス, 画像で顔を検索, テキストの検出 および 分析ID、新規ユーザー登録と既存ユーザーログインに関する一般的なフローを実装できます。
Amazon Rekognitionコレクションは、検出された顔に関する情報をサーバー側のコンテナーに保存する方法を提供します。 次に、コレクションに保存されている顔情報を使用して、画像内の既知の顔を検索できます。 コレクションを使用する場合、コレクション内の顔にインデックスを付けた後、元の写真を保存する必要はありません。 Amazon Rekognitionコレクションは、実際の画像を保持しません。 代わりに、基礎となる検出アルゴリズムが入力画像内の顔を検出し、顔の特徴を各顔の特徴ベクトルに抽出して、コレクションに保存します。
本人確認に向けた旅を始めるには、次のWebサイトにアクセスしてください。 AmazonRekognitionを使用したID検証.
著者について
ビニート・カチャワハ は、機械学習の専門知識を持つAWSのソリューションアーキテクトです。 彼は、お客様がAWSでスケーラブルで安全で費用効果の高いワークロードを設計するのを支援する責任があります。
ラメシュチャガラジャン サンフランシスコを拠点とするシニアソリューションアーキテクトです。 彼は応用科学の理学士号とサイバーセキュリティの修士号を取得しています。 彼は、クラウド移行、クラウドセキュリティ、コンプライアンス、およびリスク管理を専門としています。 仕事以外では、彼は情熱的な庭師であり、不動産や住宅改修プロジェクトに熱心に関心を持っています。
アミット・グプタ AWSのAIサービスソリューションアーキテクトです。 彼は、適切に設計された機械学習ソリューションを大規模に顧客に提供することに情熱を注いでいます。
ティムマーフyはAWSのシニアソリューションアーキテクトであり、ビジネスクラウド中心のソリューションを構築するエンタープライズ金融サービスのお客様と協力しています。 彼は過去XNUMX年間、新興企業、非営利団体、営利企業、政府機関と協力して、大規模なインフラストラクチャを展開してきました。 彼がテクノロジーをいじくり回していない暇なときは、地球の遠く離れた地域で山をハイキングしたり、波をサーフィンしたり、新しい街を自転車で走ったりしていることに気付くでしょう。
ネイト・バッハマイヤー は、一度にXNUMXつのクラウド統合でニューヨークを遊牧的に探索するAWSシニアソリューションアーキテクトです。 彼はアプリケーションの移行と最新化を専門としています。 これに加えて、ネイトはフルタイムの学生であり、XNUMX人の子供がいます。
ジェシー-リーフライ AWSのコンピュータービジョンに焦点を当てたSnrAIMLスペシャリストです。 彼女は、組織が機械学習とAIを活用して不正と戦い、顧客に代わってイノベーションを推進するのを支援しています。 仕事以外では、彼女は家族と過ごしたり、旅行したり、ResponsibleAIについてすべて読んだりすることを楽しんでいます。