Interfaz de entrada y salida para el TensorFlow algoritmo de detección de objetos - Amazon SageMaker AI

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.

Interfaz de entrada y salida para el TensorFlow algoritmo de detección de objetos

Cada uno de los modelos previamente entrenados que figuran en TensorFlow Modelos se puede ajustar a cualquier conjunto de datos con cualquier número de clases de imágenes. Ten cuidado con el formato de los datos de entrenamiento para introducirlos en el modelo de detección de objetos. TensorFlow

  • Formato de entrada de los datos de entrenamiento: los datos de entrenamiento deben estar en un directorio con un subdirectorio images y un archivo annotations.json.

A continuación se muestra un ejemplo con una estructura de directorios de entrada. El directorio de entrada debe alojarse en un bucket de Amazon S3 con una ruta similar a s3://bucket_name/input_directory/. Tenga en cuenta que es obligatorio incluir / al final.

input_directory |--images |--abc.png |--def.png |--annotations.json

El archivo annotations.json debe contener información sobre los cuadros delimitadores y sus etiquetas de clase en forma de diccionario "images" y claves de "annotations". El valor de la clave "images" debe ser una lista de diccionarios. Debe haber un diccionario para cada imagen con la siguiente información: {"file_name": image_name, "height": height, "width": width, "id": image_id}. El valor de la clave "annotations" debe ser también una lista de diccionarios. Debe haber un diccionario para cada cuadro delimitador con la siguiente información: {"image_id": image_id, "bbox": [xmin, ymin, xmax, ymax], "category_id": bbox_label}.

Tras el entrenamiento, se guarda un archivo de asignación de etiquetas y un modelo entrenado en su bucket de Amazon S3.

Entrenamiento incremental

Puedes iniciar el entrenamiento de un nuevo modelo con artefactos de un modelo que hayas entrenado previamente con SageMaker IA. El entrenamiento incremental supone un ahorro de tiempo cuando queremos entrenar un nuevo modelo con datos idénticos o similares.

nota

Solo puedes combinar un modelo de detección de objetos mediante SageMaker IA con otro TensorFlow modelo de detección de objetos entrenado en SageMaker IA. TensorFlow

Para el entrenamiento incremental, puede utilizar cualquier conjunto de datos, siempre y cuando el conjunto de clases siga siendo el mismo. El paso de entrenamiento incremental es similar al paso de ajuste; la diferencia es que, en lugar de comenzar con un modelo previamente entrenado, se comienza con un modelo ajustado existente. Para obtener más información sobre cómo utilizar el entrenamiento incremental con la detección de objetos mediante SageMaker IA TensorFlow, consulte el cuaderno Introducción a SageMaker TensorFlow la detección de objetos.

Inferencia con el algoritmo de detección de objetos TensorFlow

Puede alojar el modelo ajustado que resulta de su entrenamiento en detección de TensorFlow objetos para realizar inferencias. Cualquier imagen de entrada para la inferencia debe estar en el formato .jpg, jpeg o .png y ser del tipo de contenido application/x-image. El TensorFlow algoritmo de detección de objetos cambia el tamaño de las imágenes de entrada automáticamente.

Al ejecutar la inferencia, se codifican en formato JSON los recuadros delimitadores, las clases pronosticadas y las puntuaciones de cada predicción. El TensorFlow modelo de detección de objetos procesa una sola imagen por solicitud y genera solo una línea. Lo siguiente es un ejemplo de una respuesta en formato JSON:

accept: application/json;verbose {"normalized_boxes":[[xmin1, xmax1, ymin1, ymax1],....], "classes":[classidx1, class_idx2,...], "scores":[score_1, score_2,...], "labels": [label1, label2, ...], "tensorflow_model_output":<original output of the model>}

Si accept está configurado en application/json, el modelo solo genera cuadros, clases y puntuaciones normalizados.