AWSの画像認識AI(Amazon Rekognition)で、簡易的な顔認証を実装するには、compare_facesを使用します。
目次
AI画像認識で、顔認証するには【AWS】
顔の登録画像(例)
顔の認証用画像(例)
上記の顔の登録画像と認証用画像は、同一女性です。
この2つの画像を比較し、AWSのAIでも同一人物と判定されるか確認していきます。
顔認証結果
AWSの顔認証結果は、顔の一致度:99.8%と、高いスコアとなりました。
したがって、AWSのAIは、上記の2つの顔画像をほぼ同一人物と判定できています。
Pythonサンプル
以下は、顔の登録画像と認証用画像を実際に比較して、顔の一致度を判定するためのPythonサンプルです。
import boto3
#boto3のclient作成、AWSサービス名とリージョンを指定
client = boto3.client('rekognition','ap-northeast-1')
# 画像ファイルを読み込んでバイト列を取得
with open('./顔の登録画像.jpg', 'rb') as source_image:
source_bytes = source_image.read()
with open('./顔の認証用画像.jpg', 'rb') as target_image:
target_bytes = target_image.read()
# AWSへバイト列を渡し、顔分析結果を受け取る
response = client.compare_faces(SourceImage={'Bytes': source_bytes},
TargetImage={'Bytes': target_bytes})
# レスポンスに顔の一致度が格納されている場合、scoreへ代入
score = 0
if len(response['FaceMatches']) > 0:
score = response['FaceMatches'][0]['Similarity']
# 顔の一致度が99より大の場合、認証OK
if score > 99:
print('認証OK')
print('顔の一致度:' + str(round(score,1)) + '%')
else:
print('認証NG')
print('顔の一致度:' + str(round(score,1)) + '%')
実行結果
認証OK
顔の一致度:99.8%
顔の一致度:99.8%と、顔認証結果をしっかり判定できています。
Pythonサンプル使用の前提
・AWSアカウント作成済み
・AWSキー情報を、自分のPCに初期設定済み
上記の準備の上、ご使用ください。
まとめ
Amazon Rekognitionで、簡易的に顔認証する方法を解説しました。
みなさんも、DIYで顔認証システムをパパッと構築してみてはどうでしょうか。
最後まで読んでいただき、ありがとうございます。
また、お会いしましょう。