Rekognition - Invalid ParameterException problem

0

Greetings, I've set up a successfully run a python script that will take a source image and do facial comparision against an S3 image sub-directory. However, when I add a .png which does not have any faces in it, I get this error:

Error comparing source/isla.JPG and fred/safewatch.png: An error occurred (InvalidParameterException) when calling the CompareFaces operation: Request has invalid parameters

I do have other .jpg images that don't have faces in them and my code is set to print, 'nope, no match in' image name. Which does work nicely. Like the isla.JPG above compared to a .jpg image of a tent with no people. It works, no problem. My question is: When rekognition throws up the error I mention, is there a way to get more detailed information as to why that particular image isn't liked. Any thoughts gratefully appreciated.

Rick

profile picture
demandé il y a 3 mois168 vues
1 réponse
3
Réponse acceptée

Hi THere

That error usually means no face was detected.

From the documentation: If no faces are detected in the source or target images, CompareFaces returns an InvalidParameterException error.

Make sure you are handling errors in your code properly. Heres an example. Its using DetectLabels, but the error handling would be similar for CompareFaces

import boto3

rekognition = boto3.client('rekognition')

try:
    response = rekognition.detect_labels(Image={'S3Object': {'Bucket': bucket, 'Name': photo}})
    labels = response['Labels']
    
    print(f"Detected labels for {photo}")
    for label in labels:
        print(f"{label['Name']}: {label['Confidence']}")
        
except rekognition.exceptions.AmazonRekognitionException as e:
    print("Could not complete operation")
    print(f"Error Message: {e.message}")
    print(f"HTTP Status: {e.response['Error']['Code']}")
    print(f"AWS Error Code: {e.response['Error']['Code']}")
    print(f"Error Type: {e.response['Error']['Type']}")
    print(f"Request ID: {e.response['ResponseMetadata']['RequestId']}")

except Exception as e:
    print(f"Internal error occurred communicating with Rekognition: {e}")
profile pictureAWS
EXPERT
Matt-B
répondu il y a 3 mois
profile picture
EXPERT
vérifié il y a 2 mois
profile pictureAWS
EXPERT
vérifié il y a 3 mois
  • Thanks, Matt. I'm not sure why the error isn't consistent with each photo that doesn't have a face in it. I get 'nope' on most and on this one image I get this error. I can trap for it, for sure but just wish I knew more as to why. Thanks for the quick response.

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions