More Related Content Similar to AWS(Rekognition)と Pepperの良い関係(さるる勉強会 with Serverworks様) (8) More from Mitsuhiro Yamashita (20) AWS(Rekognition)と Pepperの良い関係(さるる勉強会 with Serverworks様)18. 2. Amazon Rekognitionについて
● can_paginate()
● compare_faces()
● create_collection()
● create_stream_processor()
● delete_collection()
● delete_faces()
● delete_stream_processor()
● describe_stream_processor()
● detect_faces()
● detect_labels()
● detect_moderation_labels()
● detect_text()
● generate_presigned_url()
● get_celebrity_info()
● get_celebrity_recognition()
● get_content_moderation()
● get_face_detection()
● get_face_search()
● get_label_detection()
● get_paginator()
● get_person_tracking()
● get_waiter()
● index_faces()
● list_collections()
● list_faces()
● list_stream_processors()
● recognize_celebrities()
● search_faces()
● search_faces_by_image()
● start_celebrity_recognition()
● start_content_moderation()
● start_face_detection()
● start_face_search()
● start_label_detection()
● start_person_tracking()
● start_stream_processor()
● stop_stream_processor()
Boto3
Rekognition Client
#nsesaruru
23. 3. やったこと
s3 = boto3.resource('s3')
bucket = s3.Bucket(os.environ['BUCKET_NAME'])
#eventデータから画像ファイルを取得
image_body = base64.b64decode(event['body-json'])
#乱数でオブジェクトキーを生成
n = 10
key = ''.join([random.choice(string.ascii_letters + string.digits) for i in range(n)])
#S3バケットに画像ファイルをアップロード
bucket.put_object(
Body=image_body,
Key=key
)
API Gateway経由でLambdaからS3に画像ファイルをアップロード
#nsesaruru
24. 3. やったこと
client = boto3.client('rekognition')
response = client.detect_faces(
Image={
'S3Object': {
'Bucket': os.environ['BUCKET_NAME'],
'Name': key
}
},
Attributes=['ALL']
)
S3の画像ファイルをRekognitionで顔分析
#nsesaruru
25. 3. やったこと
"AgeRange": {"Low": 26,"High": 43},
"Gender": {"Value": "Female","Confidence": 52.36514663696289},
"Smile": {"Value": true,"Confidence": 88.67390441894531},
"EyesOpen": {"Value": true,"Confidence": 99.9950942993164},
"Beard": {"Value": false,"Confidence": 99.86187744140625},
"Emotions": [
{"Type": "HAPPY","Confidence": 97.94617462158203},
{"Type": "CALM","Confidence": 3.9698123931884766},
{"Type": "DISGUSTED","Confidence": 3.0542492866516113}
]
分析結果のレスポンス(一部)
#nsesaruru
26. 3. やったこと
#画像データ
data = open(file_path, 'rb').read()
#API呼び出し
response = requests.post(
url=api_url,
data=data,
headers={'Content-Type': 'image/jpg'}
)
#レスポンスを文字列へ変換
data = response.json()['FaceDetails'][0]
age_low = data['AgeRange']['Low']
age_high = data['AgeRange']['High']
~~~~~~後略~~~~~~~
PepperのPythonからAPI呼び出し
#nsesaruru