Interfaz de entrada/salida para el algoritmo de detección de objetos - TensorFlow
Todos los modelos prentrenados que se enumeran en los modelos de TensorFlow se pueden refinar a cualquier conjunto de datos compuesto por cualquier número de clases de imagen. Es importante que piense en cómo va a dar formato a los datos de entrenamiento para la entrada del 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
imagesy un archivoannotations.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://. Tenga en cuenta que es obligatorio incluir bucket_name/input_directory// 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": . El valor de la clave image_name,
"height": height, "width":
width, "id":
image_id}"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
También puede aplicar valores de inicialización en el entrenamiento de un nuevo modelo con los artefactos de un modelo que ya ha entrenado previamente con SageMaker AI. El entrenamiento incremental supone un ahorro de tiempo cuando queremos entrenar un nuevo modelo con datos idénticos o similares.
nota
Solo puede combinar un modelo de detección de objetos - TensorFlow de SageMaker AI con otro modelo de detección de objetos - TensorFlow entrenado en SageMaker AI.
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 de ajuste fino existente. Para obtener más información sobre cómo utilizar el entrenamiento incremental la detección de objetos - TensorFlow de SageMaker AI, consulte el cuaderno Introduction to SageMaker TensorFlow - Object Detection
Inferencia con el algoritmo de detección de objetos - TensorFlow
Puede alojar el modelo de ajuste fino generado por el entrenamiento de detección de objetos - TensorFlow para llevar a cabo 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 algoritmo de detección de objetos - TensorFlow 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 modelo de detección de objetos - TensorFlow 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.