概要
下の図表は、GitHub にあるサンプルコードを使って構築できるアーキテクチャを示しています。
Auto Check-In App のアーキテクチャ
コードが Amazon API Gateway、Amazon Cognito ユーザープール、AWS Lambda 関数、Amazon DynamoDB テーブル、Amazon Rekognition、Amazon CloudWatch、および Amazon Simple Storage Service (Amazon S3) バケットをデプロイします。
参加者がイベントに登録する際に写真をアップロードすると、Simple Storage Service (Amazon S3) バケットに保存されます。Simple Storage Service (Amazon S3) へのアップロードによって、Amazon Rekognition の IndexFaces API を呼び出す Lambda 関数がトリガーされます。Amazon Rekognition が顔の特徴を特徴ベクトルに抽出し、face_id を作成します。次に、そのベクトルが顔のコレクションに保存され、face_id と対応するユーザー名が DynamoDB テーブルに保存されます。
イベントでは、オペレーターがこのアプリケーションの Python ベースの UI とカメラを使って参加者の写真を撮影すると、写真がトリミングされ、Amazon API Gateway に送信されます。これによって、Amazon Rekognition SearchFacesByImage API を呼び出す Lambda 関数がトリガーされます。Amazon Rekognition が画像から顔の特徴を特徴ベクトルに抽出し、そのベクトルを顔のコレクションにあるベクトルと比較します。Amazon Rekognition が類似性の高い顔を見つけると、face_id を使ってユーザー名が取得されます。ユーザー名がオペレーターのラップトップに送信され、参加者が認証されたことを示します。
参加者が認証されたら、このアプリケーションは参加者が登録時にアップロードした顔画像を Simple Storage Service (Amazon S3) から自動的に削除します。イベント時に撮影された写真は保存されません。処理が終わった顔画像を保存しません。