コレクションの作成

このステップでは、 Amazon Rekognition Video で顔認識をするためのコレクションを作成します。

コレクション用の画像の用意

まず、Amazon Rekognition で顔認識を行うための顔写真をPCに保存します。 後で可視化する際に分かりやすいよう、 最低でも2〜3人の顔を登録するのがオススメです。

写真はスマートフォンなどで撮影したものでも、PCのカメラの画像をキャプチャしたものでも差し支えありません。 顔が画像の大部分を占めている、15MB以下のPNGもしくはJPEG形式の画像ファイルを用意してください。

保存した画像ファイルのファイル名は、お名前.jpg (例: tanaka.jpg) のようなファイル名にしておきます。 コレクションに登録する際に お名前 の部分を、イメージ ID として利用します。

コレクション用の S3 バケットの作成と画像のアップロード

  • Amazon S3 のコンソール を開きます
  • 左側のメニューの バケット を選び、右側の バケットを作成 ボタンをクリックします
  • 以下の設定でバケットを作成します
    • バケット名: kvs-workshop-bucket-日付-お名前 (例: kvs-workshop-bucket-20200101-tanaka)
    • リージョン: Lab-1 で選択したリージョンと同じ
    • パブリックアクセスをすべてブロック: チェックを入れる
  • バケットを作成 をクリックします
  • バケットの一覧から、作成した kvs-workshop-bucket- から始まる名前のバケットをクリックします
  • 以下のような画面が表示されるので、先ほど保存した画像ファイルをすべて選択して、この画面にドラッグ&ドロップします
  • アップロード をクリックします

Amazon S3バケット

コレクションの作成

続いて、 Amazon Rekognition で顔認識を行うための、コレクションを作成します。

操作用 PC のターミナル から以下のコマンドを実行します。

export COLLECTION_ID=kvs-workshop-collection
aws rekognition create-collection --collection-id $COLLECTION_ID

以下のような出力が返ってくれば、kvs-workshop-collection という名前のコレクションが作成されています。

{
    "StatusCode": 200,
    "CollectionArn": "aws:rekognition:your-region:012345678901:collection/kvs-workshop-collection",
    "FaceModelVersion": "4.0"
}

コレクションへの顔の登録

先ほど作成した S3 バケット名を環境変数に登録します。以下のコマンドでは 日付-お名前 の部分を自分のものに書き換えてください。

export BUCKET_NAME="kvs-workshop-bucket-日付-お名前"

以下のコマンドを実行して、先ほど S3 バケットにアップロードした全画像をコレクションに登録します。

for key in $(aws s3 ls s3://$BUCKET_NAME/ | awk '{print $4}'); do
  name=$(echo $key | sed 's/\.[^\.]*$//')
  echo "index: $key"
  aws rekognition index-faces --collection-id $COLLECTION_ID \
  --image "S3Object={Bucket=$BUCKET_NAME,Name=$key}" \
  --external-image-id $name \
  --max-faces=1
done

コレクションに登録された顔の数を確認します。

aws rekognition describe-collection --collection-id $COLLECTION_ID

以下のような結果が出力されるので、 FaceCount の値を確認します。 この場合は2つの顔がコレクションに登録されていることが分かります。

{
    "FaceCount": 2,
    "FaceModelVersion": "4.0",
    "CollectionARN": "arn:aws:rekognition:your-region:012345678901:collection/kvs-workshop-collection",
    "CreationTimestamp": 1588237022.79
}

以上でコレクションの作成は完了です。 続いて、作成したコレクションを利用して顔認識を行えるようにストリームプロセッサの設定を行います。