業務で触れた画像分析の復習の意味も込めて、今回の記事の内容として決めさせていただきました。
アジェンダ
Amazon Rekognitionとは?
画像や動画の中から人物や物体を認識し、分析するためのサービスです。
サービス
- Amazon Rekognition
- AWS Lambda
- Amazon API Gateway
全体像
実装
カメラ機能実装
今回は、JavaScriptを使用してローカルのカメラ機能を実装していきます。
WebブラウザのWebRTC(Web Real-Time Communication)APIを使用していきます。
Lambda作成
- Lambdaコンソールで「関数を作成」をクリックします。
- 基本的な設定
- 「関数の名前」を入力します。(自由)
- ランタイム(言語)を選択します。(Python3.9)
- 「新しいロールを作成」をクリックします。
- コード
4. 「設定」タブの「一般設定」項目でタイムアウトの時間を1分に設定します。
API Gateway作成
-
API Gatewayコンソールで「APIを作成」をクリックします。
-
「REST API」タイプの「構築」をクリックします。
-
基本的な設定
- 「API名」を入力します。(自由)
- 「APIを作成」をクリックします。
-
メソッドを作成・連携
- メソッドタイプは、「POST」を選択します。
- 総合タイプは、「Lambda関数」を選択します。
- Lambda関数は、作成したLambda関数を選択します。
- 「メソッドレスポンス」タブにいき、レスポンスヘッダーを編集で追加します。
ヘッダー名に
Access-Control-Allow-Headers
Access-Control-Allow-Methods
Access-Control-Allow-Origin
この3つを追加します。
※同様の作業を、メソッドタイプが、「GET」・「OPTIONS」でも行います。
-
「CORSを有効にする」をクリックし、「Access-Control-Allow-Headers」に全てチェックを入れます。そして、「保存」をクリックします。
-
「APIをデプロイ」をクリックします。その後、「New Stage」でステージ名を入力し、「デプロイ」をクリックします。
-
「ステージの詳細」にある「URLを呼び出す」のリンクをコピーし、JavaScriptのコードの中にある「URL」の部分にペーストします。
Rekognitionとの連携
画像内のラベルの情報を検知してレスポンスとして返ってきます。
結果
画像に写っているモノの信頼度やサイズなどの情報が返ってきます。
- Labels: 画像から抽出されたラベルのリストです。
- Name: ラベルの名前。
- Confidence: ラベルが正しいと判断される信頼度。
- Instances: ラベルのインスタンス情報。
- Parents: ラベルの親ラベル。
- Aliases: ラベルに関連付けられた別名。
- Categories: ラベルが属するカテゴリ。
- LabelModelVersion: 使用されているモデルのバージョン。
- ResponseMetadata: レスポンスのメタデータ。RequestId、HTTPStatusCode、HTTPHeaders、RetryAttemptsが含まれます。
最後に
今回は画像に含まれている情報を取得するのみだったので、次は取得した情報をもとに顔認証など、よりRekognitionというサービスを活用していけたらなと思います。