AWSの画像認識AI(Amazon Rekognition)にて、detect_facesで詳細な顔認識結果を得るには、AttributesパラメータでAllを指定します。
目次
detect_facesで詳細な顔認識結果を得るには【AWS】
入力画像・顔認識画像
1つ目の画像は、笑顔で泳ぐ女性です。
2つ目の画像は、その顔認識結果の画像です。
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()
# AWSへバイト列を渡し、顔分析結果を受け取る
response = client.detect_faces(Image={ 'Bytes': source_bytes},Attributes=['ALL'])
print(response)
上記が実際に、入力画像から詳細な顔認識結果を得るためのPythonサンプルです。
11行目のdetect_facesで、AttributesパラメータにAllを指定します。
実行結果(レスポンス)
{
'FaceDetails': [
{
'BoundingBox': {
'Width': 0.10961852222681046,
'Height': 0.16975530982017517,
'Left': 0.5423860549926758,
'Top': 0.3526102900505066
},
'AgeRange': {
'Low': 6,
'High': 14
},
'Smile': {
'Value': True,
'Confidence': 96.2066421508789
},
'Eyeglasses': {
'Value': False,
'Confidence': 97.6272964477539
},
'Sunglasses': {
'Value': False,
'Confidence': 99.9966812133789
},
'Gender': {
'Value': 'Female',
'Confidence': 99.99646759033203
},
'Beard': {
'Value': False,
'Confidence': 93.72439575195312
},
'Mustache': {
'Value': False,
'Confidence': 98.21497344970703
},
'EyesOpen': {
'Value': False,
'Confidence': 62.69801712036133
},
'MouthOpen': {
'Value': True,
'Confidence': 94.70932006835938
},
'Emotions': [
{
'Type': 'HAPPY',
'Confidence': 99.65362548828125
},
{
'Type': 'SURPRISED',
'Confidence': 6.299189567565918
},
{
'Type': 'FEAR',
'Confidence': 5.884213924407959
},
{
'Type': 'SAD',
'Confidence': 2.1580452919006348
},
{
'Type': 'CONFUSED',
'Confidence': 0.0657760351896286
},
{
'Type': 'DISGUSTED',
'Confidence': 0.05785580724477768
},
{
'Type': 'ANGRY',
'Confidence': 0.04922771453857422
},
{
'Type': 'CALM',
'Confidence': 0.017044730484485626
}
],
'Landmarks': [
{
'Type': 'eyeLeft',
'X': 0.5825510621070862,
'Y': 0.3998590409755707
},
{
'Type': 'eyeRight',
'X': 0.6174367666244507,
'Y': 0.4314084053039551
},
{
'Type': 'mouthLeft',
'X': 0.5621569752693176,
'Y': 0.45807960629463196
},
{
'Type': 'mouthRight',
'X': 0.5910769104957581,
'Y': 0.4845644533634186
},
{
'Type': 'nose',
'X': 0.5814960598945618,
'Y': 0.43160295486450195
},
{
'Type': 'leftEyeBrowLeft',
'X': 0.5767808556556702,
'Y': 0.3797701299190521
},
{
'Type': 'leftEyeBrowRight',
'X': 0.5943266749382019,
'Y': 0.3850482106208801
},
{
'Type': 'leftEyeBrowUp',
'X': 0.5865024924278259,
'Y': 0.37545496225357056
},
{
'Type': 'rightEyeBrowLeft',
'X': 0.6144145727157593,
'Y': 0.4029627740383148
},
{
'Type': 'rightEyeBrowRight',
'X': 0.6374925374984741,
'Y': 0.4344621002674103
},
{
'Type': 'rightEyeBrowUp',
'X': 0.6269071102142334,
'Y': 0.411628395318985
},
{
'Type': 'leftEyeLeft',
'X': 0.5771717429161072,
'Y': 0.39566418528556824
},
{
'Type': 'leftEyeRight',
'X': 0.5891825556755066,
'Y': 0.4066116511821747
},
{
'Type': 'leftEyeUp',
'X': 0.5832312107086182,
'Y': 0.39622947573661804
},
{
'Type': 'leftEyeDown',
'X': 0.5816190242767334,
'Y': 0.40232759714126587
},
{
'Type': 'rightEyeLeft',
'X': 0.6102693676948547,
'Y': 0.4256235957145691
},
{
'Type': 'rightEyeRight',
'X': 0.6243975758552551,
'Y': 0.43844717741012573
},
{
'Type': 'rightEyeUp',
'X': 0.6182647943496704,
'Y': 0.427870512008667
},
{
'Type': 'rightEyeDown',
'X': 0.6161149144172668,
'Y': 0.43360966444015503
},
{
'Type': 'noseLeft',
'X': 0.5759546756744385,
'Y': 0.4401973485946655
},
{
'Type': 'noseRight',
'X': 0.5888327360153198,
'Y': 0.45193007588386536
},
{
'Type': 'mouthUp',
'X': 0.5763760805130005,
'Y': 0.45813649892807007
},
{
'Type': 'mouthDown',
'X': 0.5702818632125854,
'Y': 0.47684305906295776
},
{
'Type': 'leftPupil',
'X': 0.5825510621070862,
'Y': 0.3998590409755707
},
{
'Type': 'rightPupil',
'X': 0.6174367666244507,
'Y': 0.4314084053039551
},
{
'Type': 'upperJawlineLeft',
'X': 0.5705062747001648,
'Y': 0.4026917815208435
},
{
'Type': 'midJawlineLeft',
'X': 0.5517405867576599,
'Y': 0.46701860427856445
},
{
'Type': 'chinBottom',
'X': 0.561085045337677,
'Y': 0.5118287801742554
},
{
'Type': 'midJawlineRight',
'X': 0.6135259866714478,
'Y': 0.5230182409286499
},
{
'Type': 'upperJawlineRight',
'X': 0.646816611289978,
'Y': 0.471271276473999
}
],
'Pose': {
'Roll': 28.84288215637207,
'Yaw': -16.315746307373047,
'Pitch': 13.813894271850586
},
'Quality': {
'Brightness': 96.46727752685547,
'Sharpness': 16.49492073059082
},
'Confidence': 99.9798812866211
}
],
'ResponseMetadata': {
'RequestId': 'c97f95e8-dc29-4b95-93f7-1f0f510a9d9d',
'HTTPStatusCode': 200,
'HTTPHeaders': {
'x-amzn-requestid': 'c97f95e8-dc29-4b95-93f7-1f0f510a9d9d',
'content-type': 'application/x-amz-json-1.1',
'content-length': '3340',
'date': 'Sat,
11 Jun 2022 07 : 12 : 17 GMT'
},
'RetryAttempts': 0
}
}
かなり長いレスポンス(JSON)になりますが、詳細な顔認識結果を取得できます。
Pythonサンプル使用の前提
・AWSアカウント作成済み
・AWSキー情報を、自分のPCに初期設定済み
上記の準備の上、ご使用ください。
まとめ
Amazon Rekognitionで、詳細な顔認識結果を得る方法を解説しました。
みなさんもAmazon Rekognitionの、詳細な顔認識結果を分析して、皆さんならではの活用方法を考えてみてはどうでしょうか。
最後まで読んでいただき、ありがとうございます。
また、お会いしましょう。