AWSの画像認識AI(Amazon Rekognition)で、画像から笑顔などの表情を検出するには、detect_facesを使用します。
AIで画像から笑顔を検出するには【AWS】
入力画像 笑顔の女性4人
入力画像は、笑顔の女性4人の画像です。
AWSのAIは、女性4人の笑顔を正しく検出できるでしょうか?
実際にAIで分析すると、次の結果になります。
検出画像
smilingスコア:①94.9 % ②96.2 % ③95.8 % ④83.7 %(左端から順)
女性4人の表情は、smilingスコア:80%以上と、笑顔スコアが高く検出できています。
したがって、AWSは笑顔をしっかり検出できています。
特に楽しそうな左側3人の女性は、smilingスコアも高くなっています。
Pythonサンプル
import boto3
#boto3のclient作成、AWSサービス名とリージョンを指定
client = boto3.client('rekognition','ap-northeast-1')
# 画像ファイルを読み込んでバイト列を取得
with open('./女子会4人.jpg', 'rb') as source_image:
source_bytes = source_image.read()
# AWSへバイト列を渡し、顔分析結果を受け取る
response = client.detect_faces(Image={ 'Bytes': source_bytes},Attributes=['ALL'])
# 画像の左側の顔から順にソートする
faces = response['FaceDetails']
faces_s = sorted(faces, key=lambda x: x['BoundingBox']['Left'])
# 笑顔の場合、smilingスコアを表示
for face in faces_s:
if face['Smile']['Value'] == True:
print('smiling:' + str(round(face['Smile']['Confidence'],1)) + '%')
入力画像から複数の顔を検出し、そのsmilingスコアを表示するPythonサンプルです。
入力画像の左側の顔から順に、笑顔の場合にsmilingスコアを表示します。
実行結果
smiling:94.9%
smiling:96.2%
smiling:95.9%
smiling:83.7%
入力画像の女性4人のsmilingスコアを、しっかり検出できています。
Pythonサンプル使用の前提
・AWSアカウント作成済み
・AWSキー情報を、自分のPCに初期設定済み
上記の準備の上、ご使用ください。
まとめ
Amazon Rekognitionで、画像から笑顔検出する方法を解説しました。
みなさんも、身近な人の写真で、いろいろな表情を検出してみてはどうでしょうか。
最後まで読んでいただき、ありがとうございます。
また、お会いしましょう。