使用 AWS Rekognition 错误比较两个图像
Compare two images by using AWS Rekognition error
我尝试比较 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 获取对象元数据。检查对象键,区域 and/or 访问权限。 (服务:AmazonRekognition;状态代码:400;错误代码:InvalidS3ObjectException;请求 ID:2c4720e3-0e67-11e9-a286-7761b1c828e5)
我想如果我弄错了IAM,应用程序无法上传文件。
我尝试使用相同的 credentialsProvider 上传文件,上传成功。
我不认为这是因为许可而发生的事情。
S3 区域在首尔,Cognito IdentityPool 区域AP_NORTHEAST_2
是否有关于使用 Rekognition 获取 s3 对象的任何信息?
我认为你必须使用 rekognitionClient.setRegion() 操作。
例如:亚马逊rekognitionClient.setRegion(Region.getRegion(地区。US_EAST_1));
希望对您有所帮助。
我尝试比较 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 获取对象元数据。检查对象键,区域 and/or 访问权限。 (服务:AmazonRekognition;状态代码:400;错误代码:InvalidS3ObjectException;请求 ID:2c4720e3-0e67-11e9-a286-7761b1c828e5)
我想如果我弄错了IAM,应用程序无法上传文件。 我尝试使用相同的 credentialsProvider 上传文件,上传成功。
我不认为这是因为许可而发生的事情。
S3 区域在首尔,Cognito IdentityPool 区域AP_NORTHEAST_2
是否有关于使用 Rekognition 获取 s3 对象的任何信息?
我认为你必须使用 rekognitionClient.setRegion() 操作。
例如:亚马逊rekognitionClient.setRegion(Region.getRegion(地区。US_EAST_1));
希望对您有所帮助。