Я использую AWS rekognition для изучения эмоций. Это мой код:
photo = 'InVacation.jpg'
image = Image.open(photo)
stream = io.BytesIO()
image.save(stream,format="JPEG")
image_binary = stream.getvalue()
response = client.detect_faces(
Image={'Bytes':image_binary},
Attributes=['ALL']
)
response
Проблема в том, что каждый раз, когда я обрабатываю несколько фотографий, порядок типов эмоций меняется. Например:
response['FaceDetails'][0]["Emotions"]
[{'Type': 'DISGUSTED', 'Confidence': 3.6973443031311035},
{'Type': 'HAPPY', 'Confidence': 1.150834321975708},
{'Type': 'ANGRY', 'Confidence': 4.140467643737793},
{'Type': 'CALM', 'Confidence': 70.42333221435547},
{'Type': 'CONFUSED', 'Confidence': 9.918739318847656},
{'Type': 'SAD', 'Confidence': 4.620922565460205},
{'Type': 'SURPRISED', 'Confidence': 6.048351764678955}]
Используя тот же код, вторая фотография дает:
[{'Type': 'SAD', 'Confidence': 4.620922565460205},
{'Type': 'ANGRY', 'Confidence': 4.140467643737793},
{'Type': 'CONFUSED', 'Confidence': 9.918739318847656},
{'Type': 'CALM', 'Confidence': 70.42333221435547},
{'Type': 'DISGUSTED', 'Confidence': 3.6973443031311035},
{'Type': 'HAPPY', 'Confidence': 1.150834321975708},
{'Type': 'SURPRISED', 'Confidence': 6.048351764678955}]
В первом испытании порядок вывода такой: Отвращение, счастье ... Удивление. Однако во втором испытании порядок меняется на: Грустный, злой ... Удивленный.
Изменения в выводе заказа становятся проблемой, потому что я хочу просмотреть несколько фотографий и сохранить значения confidence
в наборе строк. Например:
FaceEmotions = pd.DataFrame(response['FaceDetails'][0]["Emotions"])
awsConfidence = FaceEmotions[["Confidence"]].T
awsConfidence.columns = ["Surprised", "Happy", "Calm", "Sad", "Disgusted", "Angry", "Confused"]
awsConfidence
Surprised Happy Calm Sad Disgusted Angry Confused
Confidence 3.697344 6.048352 70.423332 4.620923 1.150834 9.918739 4.140468
Confidence 5.623224 3.032444 40.413132 6.420921 2.400834 1.118739 7.140412
And so on...
Какую настройку мне нужно изменить в модуле boto3
, чтобы сохранить постоянными типы заказов на выходе?