Amazon Rekognition detect_labels не возвращает экземпляры или родительские объекты

Согласно https://docs.aws.amazon.com/rekognition/latest/dg/labels-detect-labels-image.html#detectlabels-response и https://docs.aws.amazon.com/rekognition/last/dg/API_DetectLabels.html , Amazon Rekognition должен возвращать экземпляры (сведения о ограничивающей рамке ) и Родители с каждой меткой. Однако при успешном запуске detect_labels с реализацией, аналогичной приведенным выше ссылкам, единственными ключами в моем ответе являются «Имя» и «Уверенность»; «Экземпляры» и «Родители» — это даже не ключи, не говоря уже о ключах с пустыми значениями.

У кого-нибудь есть мысли?

Мой код ниже:

def _bounding_box(imageFile):

    client = boto3.client('rekognition')

    with open(imageFile, 'rb') as image:
        response = client.detect_labels(Image={'Bytes': image.read()})

    print('Detected labels in ' + imageFile)
    for label in response['Labels']:

        print(label)
        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()

person thedon    schedule 27.02.2019    source источник


Ответы (1)


Мне удалось точно воспроизвести ваши результаты.

Затем я обновил свою версию boto3, и информация Instances была возвращена.

  • Instances не возвращено: Версия 1.9.16
  • Instances возвращено: Версия 1.9.104

Вы можете найти версию с помощью:

>>> import boto3
>>> boto3.__version__

Поэтому обновите свой boto3. (pip install boto3 --upgrade)

Обычно полезно использовать виртуальные среды, чтобы поддерживать чистоту.

person John Rotenstein    schedule 28.02.2019
comment
В моем случае я использовал Node, поэтому мне пришлось обновить пакет aws-sdk. - person istvanp; 12.07.2019
comment
@РС. Zia 2.492.0, но они обновляются почти каждую неделю, потому что все API находятся в этом одном SDK... Обычно в обновлении нет недостатков, поэтому попробуйте последнюю версию. - person istvanp; 08.10.2019