Como adicionar um conjunto de dados a um projeto - Rekognition

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como adicionar um conjunto de dados a um projeto

É possível adicionar um conjunto de dados de treinamento ou teste a um projeto existente. Se quiser substituir um conjunto de dados existente, primeiro exclua o conjunto de dados existente. Para obter mais informações, consulte Como excluir um conjunto de dados. Em seguida, adicione o novo conjunto de dados.

Como adicionar um conjunto de dados a um projeto (console)

É possível adicionar um conjunto de dados de treinamento ou teste a um projeto usando o console do Amazon Rekognition Custom Labels.

Para adicionar um conjunto de dados a um projeto
  1. Abra o console do Amazon Rekognition em https://console.aws.amazon.com/rekognition/.

  2. No painel esquerdo, escolha Usar rótulos personalizados. A página inicial do Amazon Rekognition Custom Labels é exibida.

  3. No painel de navegação esquerdo, selecione Projetos. A visualização Projetos é exibida.

  4. Escolha o projeto ao qual você deseja adicionar um conjunto de dados.

  5. No painel de navegação esquerdo, abaixo do nome do projeto, escolha Conjuntos de dados.

  6. Se o projeto não tiver um conjunto de dados existente, a página Criar conjunto de dados será exibida. Faça o seguinte:

    1. Na página Criar conjunto de dados, insira as informações da fonte da imagem. Para obter mais informações, consulte Como criar conjuntos de dados de treinamento e teste com imagens.

    2. Escolha Criar conjunto de dados para criar o conjunto de dados.

  7. Se o projeto tiver um conjunto de dados existente (treinamento ou teste), a página de detalhes do projeto será exibida. Faça o seguinte:

    1. Na página de detalhes do projeto, escolha Ações.

    2. Se quiser adicionar um conjunto de dados de treinamento, escolha Criar conjunto de dados de teste.

    3. Se quiser adicionar um conjunto de dados de teste, escolha Criar conjunto de dados de teste.

    4. Na página Criar conjunto de dados, insira as informações da fonte da imagem. Para obter mais informações, consulte Como criar conjuntos de dados de treinamento e teste com imagens.

    5. Escolha Criar conjunto de dados para criar o conjunto de dados.

  8. Adicione imagens ao seu conjunto de dados. Para obter mais informações, consulte Como adicionar mais imagens (console).

  9. Adicione rótulos ao seu conjunto de dados. Para obter mais informações, consulte Adicionar novos rótulos (console).

  10. Adicione rótulos às suas imagens. Se estiver adicionando rótulos em nível de imagem, consulte Como atribuir rótulos em nível de imagem em uma imagem. Se estiver adicionando caixas delimitadoras, consulte Como rotular objetos com caixas delimitadoras. Para obter mais informações, consulte Como definir os conjuntos de dados.

Como adicionar um conjunto de dados a um projeto (SDK)

É possível adicionar um conjunto de dados de treinamento ou teste a um projeto existente das seguintes maneiras:

Tópicos
    Para adicionar um conjunto de dados a um projeto (SDK)
    1. Se ainda não tiver feito isso, instale e configure a AWS CLI e os AWS SDKs. Para obter mais informações, consulte Etapa 4: configurar os AWS SDKs AWS CLI e.

    2. Use os exemplos a seguir para adicionar linhas JSON a um conjunto de dados.

      CLI

      Substitua project_arn pelo projeto ao qual deseja adicionar o conjunto de dados. Substitua dataset_type por TRAIN para criar um conjunto de dados de treinamento ou TEST para criar um conjunto de dados de teste.

      aws rekognition create-dataset --project-arn project_arn \ --dataset-type dataset_type \ --profile custom-labels-access
      Python

      Use o código a seguir para criar um conjunto de dados. Forneça as seguintes opções de linha de comando:

      • project_arn: o ARN do projeto ao qual você deseja adicionar o conjunto de dados de teste.

      • type: o tipo de conjunto de dados que você deseja criar (treinamento ou teste).

      # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 import argparse import logging import time import boto3 from botocore.exceptions import ClientError logger = logging.getLogger(__name__) def create_empty_dataset(rek_client, project_arn, dataset_type): """ Creates an empty Amazon Rekognition Custom Labels dataset. :param rek_client: The Amazon Rekognition Custom Labels Boto3 client. :param project_arn: The ARN of the project in which you want to create a dataset. :param dataset_type: The type of the dataset that you want to create (train or test). """ try: #Create the dataset. logger.info("Creating empty %s dataset for project %s", dataset_type, project_arn) dataset_type=dataset_type.upper() response = rek_client.create_dataset( ProjectArn=project_arn, DatasetType=dataset_type ) dataset_arn=response['DatasetArn'] logger.info("dataset ARN: %s", dataset_arn) finished=False while finished is False: dataset=rek_client.describe_dataset(DatasetArn=dataset_arn) status=dataset['DatasetDescription']['Status'] if status == "CREATE_IN_PROGRESS": logger.info(("Creating dataset: %s ", dataset_arn)) time.sleep(5) continue if status == "CREATE_COMPLETE": logger.info("Dataset created: %s", dataset_arn) finished=True continue if status == "CREATE_FAILED": error_message = f"Dataset creation failed: {status} : {dataset_arn}" logger.exception(error_message) raise Exception(error_message) error_message = f"Failed. Unexpected state for dataset creation: {status} : {dataset_arn}" logger.exception(error_message) raise Exception(error_message) return dataset_arn except ClientError as err: logger.exception("Couldn't create dataset: %s", err.response['Error']['Message']) raise def add_arguments(parser): """ Adds command line arguments to the parser. :param parser: The command line parser. """ parser.add_argument( "project_arn", help="The ARN of the project in which you want to create the empty dataset." ) parser.add_argument( "dataset_type", help="The type of the empty dataset that you want to create (train or test)." ) def main(): logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") try: # Get command line arguments. parser = argparse.ArgumentParser(usage=argparse.SUPPRESS) add_arguments(parser) args = parser.parse_args() print(f"Creating empty {args.dataset_type} dataset for project {args.project_arn}") # Create the empty dataset. session = boto3.Session(profile_name='custom-labels-access') rekognition_client = session.client("rekognition") dataset_arn=create_empty_dataset(rekognition_client, args.project_arn, args.dataset_type.lower()) print(f"Finished creating empty dataset: {dataset_arn}") except ClientError as err: logger.exception("Problem creating empty dataset: %s", err) print(f"Problem creating empty dataset: {err}") except Exception as err: logger.exception("Problem creating empty dataset: %s", err) print(f"Problem creating empty dataset: {err}") if __name__ == "__main__": main()
      Java V2

      Use o código a seguir para criar um conjunto de dados. Forneça as seguintes opções de linha de comando:

      • project_arn: o ARN do projeto ao qual você deseja adicionar o conjunto de dados de teste.

      • type: o tipo de conjunto de dados que você deseja criar (treinamento ou teste).

      /* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ package com.example.rekognition; import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.rekognition.RekognitionClient; import software.amazon.awssdk.services.rekognition.model.CreateDatasetRequest; import software.amazon.awssdk.services.rekognition.model.CreateDatasetResponse; import software.amazon.awssdk.services.rekognition.model.DatasetDescription; import software.amazon.awssdk.services.rekognition.model.DatasetStatus; import software.amazon.awssdk.services.rekognition.model.DatasetType; import software.amazon.awssdk.services.rekognition.model.DescribeDatasetRequest; import software.amazon.awssdk.services.rekognition.model.DescribeDatasetResponse; import software.amazon.awssdk.services.rekognition.model.RekognitionException; import java.net.URI; import java.util.logging.Level; import java.util.logging.Logger; public class CreateEmptyDataset { public static final Logger logger = Logger.getLogger(CreateEmptyDataset.class.getName()); public static String createMyEmptyDataset(RekognitionClient rekClient, String projectArn, String datasetType) throws Exception, RekognitionException { try { logger.log(Level.INFO, "Creating empty {0} dataset for project : {1}", new Object[] { datasetType.toString(), projectArn }); DatasetType requestDatasetType = null; switch (datasetType) { case "train": requestDatasetType = DatasetType.TRAIN; break; case "test": requestDatasetType = DatasetType.TEST; break; default: logger.log(Level.SEVERE, "Unrecognized dataset type: {0}", datasetType); throw new Exception("Unrecognized dataset type: " + datasetType); } CreateDatasetRequest createDatasetRequest = CreateDatasetRequest.builder().projectArn(projectArn) .datasetType(requestDatasetType).build(); CreateDatasetResponse response = rekClient.createDataset(createDatasetRequest); boolean created = false; //Wait until updates finishes do { DescribeDatasetRequest describeDatasetRequest = DescribeDatasetRequest.builder() .datasetArn(response.datasetArn()).build(); DescribeDatasetResponse describeDatasetResponse = rekClient.describeDataset(describeDatasetRequest); DatasetDescription datasetDescription = describeDatasetResponse.datasetDescription(); DatasetStatus status = datasetDescription.status(); logger.log(Level.INFO, "Creating dataset ARN: {0} ", response.datasetArn()); switch (status) { case CREATE_COMPLETE: logger.log(Level.INFO, "Dataset created"); created = true; break; case CREATE_IN_PROGRESS: Thread.sleep(5000); break; case CREATE_FAILED: String error = "Dataset creation failed: " + datasetDescription.statusAsString() + " " + datasetDescription.statusMessage() + " " + response.datasetArn(); logger.log(Level.SEVERE, error); throw new Exception(error); default: String unexpectedError = "Unexpected creation state: " + datasetDescription.statusAsString() + " " + datasetDescription.statusMessage() + " " + response.datasetArn(); logger.log(Level.SEVERE, unexpectedError); throw new Exception(unexpectedError); } } while (created == false); return response.datasetArn(); } catch (RekognitionException e) { logger.log(Level.SEVERE, "Could not create dataset: {0}", e.getMessage()); throw e; } } public static void main(String args[]) { String datasetType = null; String datasetArn = null; String projectArn = null; final String USAGE = "\n" + "Usage: " + "<project_arn> <dataset_type>\n\n" + "Where:\n" + " project_arn - the ARN of the project that you want to add copy the datast to.\n\n" + " dataset_type - the type of the empty dataset that you want to create (train or test).\n\n"; if (args.length != 2) { System.out.println(USAGE); System.exit(1); } projectArn = args[0]; datasetType = args[1]; try { // Get the Rekognition client RekognitionClient rekClient = RekognitionClient.builder() .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access")) .region(Region.US_WEST_2) .build(); // Create the dataset datasetArn = createMyEmptyDataset(rekClient, projectArn, datasetType); System.out.println(String.format("Created dataset: %s", datasetArn)); rekClient.close(); } catch (RekognitionException rekError) { logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage()); System.exit(1); } catch (Exception rekError) { logger.log(Level.SEVERE, "Error: {0}", rekError.getMessage()); System.exit(1); } } }
    3. Adicione imagens ao conjunto de dados. Para obter mais informações, consulte Como adicionar mais imagens (SDK).