AWS Rekognition Сравнение лиц с изображениями в папках

Я могу сравнить два изображения, если они находятся в корне ведра S3.

const params = {
  SourceImage: {
    S3Object: {
      Bucket: bucket,
      Name: 'source.jpg'
    }
  },
  TargetImage: {
    S3Object: {
      Bucket: bucket,
      Name: 'target.jpg'
    }
  },
  SimilarityThreshold: 90
}

Но я получаю сообщение об ошибке, если они находятся в подпапках:

сообщение: 'Запрос имеет недопустимые параметры',

код: 'InvalidParameterException',

время: 2019-11-25T13: 12: 44.498Z,

requestId: '7ac7f297-fc36-436b-a1dc-113d419da766',

statusCode: 400,

retryable: false, retryDelay: 71.0571139838835

Если я попытаюсь сравнить изображения в подпапках (обратите внимание, что я пробовал с './', '/' перед путем - то же самое)

const params = {
  SourceImage: {
    S3Object: {
      Bucket: bucket,
      Name: '/sub1/sub2/source.jpg'
    }
  },
  TargetImage: {
    S3Object: {
      Bucket: bucket,
      Name: '/sub1/sub2/target.jpg'
    }
  },
  SimilarityThreshold: 90
}

Мне действительно нужно, чтобы фотографии были в подпапках. Любая помощь будет оценена.


person mexus    schedule 25.11.2019    source источник


Ответы (1)


Вот рабочий пример.

import boto3

reko=boto3.client('rekognition')

resp = reko.compare_faces(
        SourceImage={
        'S3Object': {
            'Bucket': 'jsimon-public-us',
            'Name': 'pref1/image1.jpg',
        }},
        TargetImage={
        'S3Object': {
            'Bucket': 'jsimon-public-us',
            'Name': 'pref2/image2.jpg',
        }}
)

print(resp)
person Julien Simon    schedule 11.01.2020