Ошибка проверки параметра: неизвестный параметр в Image.S3Object в AWS Rekognition - PullRequest
0 голосов
/ 24 марта 2020

Я хочу получить метки изображения с именем "sample.jpg", хранящегося в S3 Bucket с именем "bucket1"

Я следую этой документации в Python.

import boto3

def detect_labels(photo, bucket):

    client=boto3.client('rekognition')

    response = client.detect_labels(Image={'S3Object':{'Bucket':"bucket1",'Name':"sample.jpg"}},
        MaxLabels=10)

    print('Detected labels for ' + photo) 
    print()   
    for label in response['Labels']:
        print ("Label: " + label['Name'])
        print ("Confidence: " + str(label['Confidence']))
        print ("Instances:")
        for instance in label['Instances']:
            print ("  Bounding box")
            print ("    Top: " + str(instance['BoundingBox']['Top']))
            print ("    Left: " + str(instance['BoundingBox']['Left']))
            print ("    Width: " +  str(instance['BoundingBox']['Width']))
            print ("    Height: " +  str(instance['BoundingBox']['Height']))
            print ("  Confidence: " + str(instance['Confidence']))
            print()

        print ("Parents:")
        for parent in label['Parents']:
            print ("   " + parent['Name'])
        print ("----------")
        print ()
    return len(response['Labels'])


def main():
    photo=''
    bucket=''
    label_count=detect_labels(photo, bucket)
    print("Labels detected: " + str(label_count))


if __name__ == "__main__":
    main()

Но Iam получает следующую ошибку.

Ошибка проверки параметра: неизвестный параметр в Image.S3Object: "bucket1", должен быть одним из: Bucket, Name, Version Unknown параметр в Image.S3Object: "sample.jpg", должен быть одним из: Bucket, Name, Version *

1 Ответ

0 голосов
/ 25 апреля 2020

Я проверил и протестировал ваш Python фрагмент кода и могу в меру своих возможностей подтвердить, что с вашим кодом все в порядке.

В случае успешного ответа (в зависимости от вашего изображения) должно получиться что-то похожее to:

Label: Car
Confidence: 99.52464294433594
Instances:
  Bounding box
    Top: 0.5000969767570496
    Left: 0.002728196792304516
    Width: 0.10333306342363358
    Height: 0.1907607913017273
  Confidence: 99.52464294433594

  Bounding box
    Top: 0.5250729322433472
    Left: 0.7276265621185303
    Width: 0.2508099675178528
    Height: 0.22016148269176483
  Confidence: 99.27792358398438

  ...
  ...

Labels detected: 10

Из-за ошибки проблема больше связана с версией boto3, т.е. вы, скорее всего, используете более старую версию boto3, поэтому старая версия не может подобрать требуемый параметр Image.S3Object

Разрешение Шаги:

1. Проверьте текущую версию boto3:

pip show boto3

или

pip3 show boto3

или

>>> import boto3
>>> boto3.__version__

Если выходное значение меньше, чем текущей версии (1.12.39), затем перейдите к обновлению версии boto3, как показано ниже.

2. Обновите ваш boto3:

pip install botocore --upgrade
pip install boto3 --upgrade

или

pip3 install botocore --upgrade
pip3 install boto3 --upgrade

Примечание. Чтобы изменения вступили в силу, вам необходимо выйти из системы

Надеюсь, это поможет!

...