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
feita há 3 meses167 visualizações
1 Resposta
3
Resposta aceita

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
ESPECIALISTA
Matt-B
respondido há 3 meses
profile picture
ESPECIALISTA
avaliado há 2 meses
profile pictureAWS
ESPECIALISTA
avaliado há 3 meses
  • 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.

Você não está conectado. Fazer login para postar uma resposta.

Uma boa resposta responde claramente à pergunta, dá feedback construtivo e incentiva o crescimento profissional de quem perguntou.

Diretrizes para responder a perguntas