使用AWS Rekognition错误比较两个图像

时间:2019-01-03 01:48:03

标签: amazon-s3 amazon-cognito amazon-rekognition

我尝试比较s3中的两个图像。 因此,我通过参考以下内容完成了代码: https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/faces-comparefaces.html

我使用角色(S3完全访问权限,Rekognition完全访问权限)制作了IdentityPool。

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;请求ID:2c4720e3-0e67-11e9-a286-7761b1c828e5)

我认为,如果我输入IAM错误,该应用程序将无法上传文件。 我尝试使用相同的凭据提供商上传文件,上传成功。

我不认为这是由于允许而发生的事情。

S3地区位于首尔,Cognito IdentityPool地区位于AP_NORTHEAST_2

是否有任何信息可以通过Rekognition获得s3对象?

1 个答案:

答案 0 :(得分:1)

我认为您必须使用rekognitionClient.setRegion()操作。

例如:amazonrekognitionClient.setRegion(Region.getRegion(Regions.US_EAST_1));

希望它会有所帮助。