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
asked 2 months ago143 views
1 Answer
3
Accepted Answer

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
answered 2 months ago
profile picture
EXPERT
reviewed a month ago
profile pictureAWS
EXPERT
reviewed 2 months ago
  • 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.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions