AWSのAI画像認識で、顔認証するには【Python】

  • 2022-06-11
  • 2022-07-02
  • AI
AI

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で顔認証システムをパパッと構築してみてはどうでしょうか。

最後まで読んでいただき、ありがとうございます。
また、お会いしましょう。