Сравните два изображения с помощью ошибки AWS Rekognition
Я пытаюсь сравнить два изображения, которые есть в s3. Итак, я завершил код, ссылаясь на следующее: https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/faces-comparefaces.html
Я создал IdentityPool с ролью (S3 Full Access, Rekognition Full Access).
try{
CompareFacesRequest compareFacesRequest = new CompareFacesRequest().
withSourceImage(new Image().withS3Object(new S3Object().withName(photo1).withBucket(bucket))).
withTargetImage(new Image().withS3Object(new S3Object().withName(photo2).withBucket(bucket))).withSimilarityThreshold(80F);
CompareFacesResult result = amazonRekognitionClient.compareFaces(compareFacesRequest);
List<CompareFacesMatch> list = result.getFaceMatches();
Log.d(TAG,"testing..");
if (!list.isEmpty()){
Log.d(TAG,"face match");
for (CompareFacesMatch match:list){
Log.d(TAG,match.getFace() + "" + match.getSimilarity());
}
}else{
Log.d(TAG,"face dismatch");
}
}catch (Exception e){
Log.d(TAG,"Exception occurs");
e.printStackTrace();
}
Но это делает эту ошибку. com.amazonaws.services.rekognition.model.InvalidS3ObjectException: невозможно получить метаданные объекта из S3. Проверьте ключ объекта, регион и / или права доступа. (Сервис: AmazonRekognition; Код состояния: 400; Код ошибки: InvalidS3ObjectException; Идентификатор запроса: 2c4720e3-0e67-11e9-a286-7761b1c828e5)
Я подумал, что если я ошибусь в IAM, приложение не сможет загрузить файл. Я пытаюсь загрузить файл с теми же учетными данными Provider, загрузка успешна.
Я не думаю, что это произошло из-за разрешения.
Регион S3 находится в Сеуле, а регион Cognito IdentityPool - AP_NORTHEAST_2
Есть ли информация, чтобы получить объект S3 с Rekognition?
1 ответ
Я думаю, что вы должны использовать операцию rekognitionClient.setRegion().
Например: amazonrekognitionClient.setRegion(Region.getRegion(Regions.US_EAST_1));
Надеюсь, что это может помочь.