Añadir un conjunto de datos a un proyecto - Rekognition

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Añadir un conjunto de datos a un proyecto

Puedes añadir un conjunto de datos de entrenamiento o un conjunto de datos de prueba a un proyecto existente. Si quiere reemplazar un conjunto de datos existente, borre primero el conjunto de datos existente. Para obtener más información, consulte Eliminación de un conjuntos de datos. A continuación, añada el nuevo conjunto de datos.

Añadir un conjunto de datos a un proyecto (consola)

Puede añadir un conjunto de datos de entrenamiento o de prueba a un proyecto mediante la consola de Etiquetas personalizadas de Amazon Rekognition.

Añadir un conjunto de datos a un proyecto
  1. Abra la consola de Amazon Rekognition en https://console.aws.amazon.com/rekognition/.

  2. En el panel izquierdo, elija Usar etiquetas personalizadas. Se abrirá la página de inicio de Etiquetas personalizadas de Amazon Rekognition.

  3. En el panel de navegación izquierdo, elija Proyectos. Se abrirá la vista de proyectos.

  4. Elija el proyecto al que desee añadir un conjunto de datos.

  5. En el panel de navegación izquierdo, en el nombre del proyecto, elija Conjuntos de datos.

  6. Si el proyecto no tiene un conjunto de datos existente, se abrirá la página Crear conjunto de datos. Haga lo siguiente:

    1. En la página Crear conjunto de datos, introduzca la información de la fuente de la imagen. Para obtener más información, consulte Creación de conjuntos de datos de entrenamiento y prueba.

    2. Elija Crear conjunto de datos para crear el conjunto de datos.

  7. Si el proyecto tiene un conjunto de datos existente (de entrenamiento o de prueba), se abrirá la página de detalles del proyecto. Haga lo siguiente:

    1. En la página de detalles del proyecto, seleccione Acciones.

    2. Si quiere añadir un conjunto de datos de entrenamiento, elija Crear conjunto de datos de entrenamiento.

    3. Si quiere añadir un conjunto de datos de prueba, elija Crear conjunto de datos de prueba.

    4. En la página Crear conjunto de datos, introduzca la información de la fuente de la imagen. Para obtener más información, consulte Creación de conjuntos de datos de entrenamiento y prueba.

    5. Elija Crear conjunto de datos para crear el conjunto de datos.

  8. Añada imágenes al conjunto de datos. Para obtener más información, consulte Añadir más imágenes (consola).

  9. Añada etiquetas al conjunto de datos. Para obtener más información, consulte Agregar etiquetas nuevas (consola).

  10. Añada etiquetas a las imágenes. Si va a añadir etiquetas de imagen, consulte Asignación de etiquetas de imagen a una imagen. Si va a añadir cuadros delimitadores, consulte Etiquetado de objetos con cuadros delimitadores. Para obtener más información, consulte Finalidad de los conjuntos de datos.

Añadir un conjunto de datos a un proyecto (SDK)

Puedes añadir un conjunto de datos de entrenamiento o de prueba a un proyecto existente de las siguientes maneras:

Temas
    Cómo añadir un conjunto de datos a un proyecto (SDK)
    1. Si aún no lo ha hecho, instale y configure la AWS CLI y los SDK de AWS. Para obtener más información, consulte Paso 4: Configure los SDK y AWS CLIAWS.

    2. Use los siguientes ejemplos para añadir líneas JSON a un conjunto de datos.

      CLI

      Reemplace project_arn por el proyecto al que desee añadir el conjunto de datos. Sustituya dataset_type por TRAIN para crear un conjunto de datos de entrenamiento o por TEST para crear un conjunto de datos de prueba.

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

      Cree un conjunto de datos con el siguiente código. Indique las siguientes opciones de línea de comandos:

      • project_arn: el ARN del proyecto al que desea añadir el conjunto de datos de prueba.

      • type: el tipo de conjunto de datos que desea crear (entrenamiento o prueba)

      # 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

      Cree un conjunto de datos con el siguiente código. Indique las siguientes opciones de línea de comandos:

      • project_arn: el ARN del proyecto al que desea añadir el conjunto de datos de prueba.

      • type: el tipo de conjunto de datos que desea crear (entrenamiento o prueba)

      /* 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. Añada imágenes al conjunto de datos. Para obtener más información, consulte Añadir más imágenes (SDK).