1
resposta

Amazon Lambda

Boa Noite !

Estou com problemas para criar a collection faces:

Codigo Python:

def indexa_colecao(imagens): for i in imagens: response = client.index_faces( CollectionId='faces', DetectionAttributes=[], ExternalImageId=i[:-4], Image={ 'S3Object': { 'Bucket': 'imagensrelson', 'Name': i, } }, ) imagens = lista_imagens() indexa_colecao(imagens)

aws2 rekognition create-collection --collection-id "faces"

Na verdade ele cria a collection 'faces' via linha de comando , mas quando executo o código python vem a seguinte mensagem. File "D:\Projetos_Python\face-analise\venv\lib\site-packages\botocore\client.py", line 676, in makeapi_call raise error_class(parsed_response, operation_name) botocore.errorfactory.ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the IndexFaces operation: The collection id: faces does not exist

Poderiam me dar um apoio nesse caso?

Obrigado e fico no aguardo.

1 resposta

Olá Relson, tudo bem?

A mensagem de erro que você está recebendo indica que a coleção "faces" não existe. Parece que você está tentando criar a coleção via linha de comando, mas quando executa o código Python, ocorre o erro.

Uma possível solução para esse problema é verificar se a coleção "faces" já existe antes de tentar indexar as faces. Você pode fazer isso utilizando o método list_collections do serviço Rekognition da AWS. Se a coleção não existir, você pode criar utilizando o método create_collection.

Aqui está um exemplo de como você pode fazer isso no seu código Python:

import boto3

def indexa_colecao(imagens):
    client = boto3.client('rekognition')
    response = client.list_collections()

    if 'faces' not in response['CollectionIds']:
        client.create_collection(CollectionId='faces')

    for i in imagens:
        response = client.index_faces(
            CollectionId='faces',
            DetectionAttributes=[],
            ExternalImageId=i[:-4],
            Image={
                'S3Object': {
                    'Bucket': 'imagensrelson',
                    'Name': i,
                }
            },
        )

imagens = lista_imagens()
indexa_colecao(imagens)

Dessa forma, o código irá verificar se a coleção "faces" já existe antes de tentar indexar as faces. Caso não exista, ele irá criar a coleção antes de prosseguir.

Espero ter ajudado e bons estudos!