AWS Rekognitionは画像分析が簡単にできるサービスです。
今回はCliを利用して顔認証をしていきます。
コレクションを作成
まずは顔の情報を保存するためのコレクションを作成します。
$ aws rekognition create-collection --collection-id "Face"
CollectionArn: aws:rekognition:ap-northeast-1:000000000:collection/Face
FaceModelVersion: '5.0'
StatusCode: 200
コレクションへ顔を登録
作成したコレクションに顔画像を登録します。
画像はS3にあげてから、それを指定して登録します。
external-image-idを画像に写っている人の名前とかにすると認識時にわかりやすくなります。
$ aws rekognition index-faces \
--image '{"S3Object":{"Bucket":"hogehoge-bucket","Name":"hogehoge.jpg"}}' \
--collection-id "Face" \
--max-faces 1 \
--quality-filter "AUTO" \
--detection-attributes "ALL" \
--external-image-id "kaotesuto"
コレクションに登録されたか確認します。
$ aws rekognition list-faces --collection-id "Face"
FaceModelVersion: '5.0'
Faces:
・・・・・・・
ExternalImageId: kaotesuto
コレクションの画像と比較
コレクションに登録された画像の中に、同じ人の顔があるか検索します。
CLIですとこちらもS3の画像を指定する必要があります。
S3を経由したくない場合はAWS SDKを利用してPHPなどから画像を直接AWS Rekognitionへ送ることが可能です。
$ aws rekognition search-faces-by-image \
--image '{"S3Object":{"Bucket":"hogehoge-bucket","Name":"hogehoge.jpg"}}' \
--collection-id "Face"
FaceMatches:
- Face:
BoundingBox:
Height: 0.5754799842834473
Left: 0.31725001335144043
Top: 0.16239699721336365
Width: 0.4426969885826111
Confidence: 99.98900604248047
ExternalImageId: kaotesuto
Similarity: 100.0
今回は同じ画像を使ったのでSimilarityが100で完全一致しました。
試して見る際は別の写真などを試してみてください!
まとめ
コレクションを作って登録するだけで簡単に顔認証が可能になります。
表情が変わっていてもかなりの精度で認識をしてくれます。
これを使って顔認証システムなど作るのも面白いと思います!