Qué son los manifiestos de resultados de validación de entrenamiento y de prueba - 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.

Qué son los manifiestos de resultados de validación de entrenamiento y de prueba

Durante el entrenamiento, Etiquetas personalizadas de Amazon Rekognition crea manifiestos de resultados de validación que registran los errores no terminales de líneas JSON. Los manifiestos de resultados de validación son copias de los conjuntos de datos de entrenamiento y de prueba a los que se añade información sobre los errores. Puede acceder a los manifiestos de validación una vez completado el entrenamiento. Para obtener más información, consulte Cómo obtener los resultados de la validación. Etiquetas personalizadas de Amazon Rekognition también crea un resumen del manifiesto que incluye información general sobre los errores en las líneas JSON, como las ubicaciones de los errores y el número de errores de las líneas JSON. Para obtener más información, consulte Qué es el resumen del manifiesto.

nota

Los resultados de la validación (los manifiestos de resultados de validación y el resumen del manifiesto del entrenamiento y de las pruebas) solo se crean si no hay Errores terminales de archivos de manifiesto.

Un manifiesto contiene las líneas JSON de cada imagen en el conjunto de datos. En los manifiestos de resultados de validación, la información sobre los errores de las líneas JSON se añade a las líneas JSON en las que se registran errores.

Un error de línea JSON es un error no terminal relacionado con una sola imagen. Un error de validación no terminal puede invalidar toda la línea JSON o solo una parte. Por ejemplo, si la imagen a la que se hace referencia en una línea JSON no está en formato PNG o JPG, se produce el error ERROR_INVALID_IMAGE y toda la línea JSON queda excluida del entrenamiento. El entrenamiento continuará con las otras líneas JSON válidas.

Dentro de una línea JSON, un error podría significar que la línea JSON todavía se puede usar para el entrenamiento. Por ejemplo, si el valor de la izquierda de uno de los cuatro cuadros delimitadores asociados a una etiqueta es negativo, el modelo seguirá entrenándose con los demás cuadros delimitadores válidos. Se devolverá la información del error de la línea JSON con respecto al cuadro delimitador no válido (ERROR_INVALID_BOUNDING_BOX). En este ejemplo, la información del error se añade al objeto annotation en el que se produce el error.

Los errores de advertencia, como WARNING_NO_ANNOTATIONS, no se utilizan para el entrenamiento y se consideran líneas JSON ignoradas (ignored_json_lines) en el resumen del manifiesto. Para obtener más información, consulte Qué es el resumen del manifiesto. Además, las líneas JSON ignoradas no se tienen en cuenta para el umbral de error del 20 % en el entrenamiento y las pruebas.

Para obtener información sobre errores específicos de validación de datos no terminales, consulteErrores no terminales de validación en líneas JSON.

nota

Si hay demasiados errores de validación de datos, se detendrá el entrenamiento y se registrará el error terminal ERROR_TOO_MANY_INVALID_ROWS_IN_MANIFEST en el resumen del manifiesto.

Para obtener información sobre cómo corregir los errores en las líneas JSON, consulte Soluciones de errores de entrenamiento.

Formato de error de líneas JSON

Etiquetas personalizadas de Amazon Rekognition añade información sobre los errores no terminales de validación relacionados con las imágenes y el formato de la localización de objetos. Para obtener más información, consulte Creación de un archivo de manifiesto.

Errores relacionados con imágenes

En el siguiente ejemplo se muestran las matrices Error en una línea JSON de imagen. Hay dos tipos de errores. Errores relacionados con los metadatos de los atributos de etiqueta (en este ejemplo, sport-metadata) y errores relacionados con la imagen. El error incluye un código de error (code) y un mensaje de error (message). Para obtener más información, consulte Etiquetas de imagen en los archivos de manifiesto.

{ "source-ref": String, "sport": Number, "sport-metadata": { "class-name": String, "confidence": Float, "type": String, "job-name": String, "human-annotated": String, "creation-date": String, "errors": [ { "code": String, # error codes for label "message": String # Description and additional contextual details of the error } ] }, "errors": [ { "code": String, # error codes for image "message": String # Description and additional contextual details of the error } ] }

Errores de localización de objetos

En el siguiente ejemplo se muestran las matrices de errores en una línea JSON de localización de objetos. La línea JSON contiene una matriz Errors de información sobre los campos de las siguientes secciones de la línea JSON. Cada objeto Error incluye el código de error y el mensaje de error.

  • label attribute: errores en los campos de atributos de etiqueta. Consulte bounding-box en el ejemplo.

  • annotations: los errores de anotaciones (cuadros delimitadores) se almacenan en la matriz annotations dentro del atributo de etiqueta.

  • label attribute-metadata: errores en los metadatos de atributos de etiqueta. Consulte bounding-box-metadata en el ejemplo.

  • image: errores no relacionados con los campos de atributos de etiqueta, anotaciones ni metadatos de atributos de etiqueta.

Para obtener más información, consulte Localización de objetos en archivos de manifiesto.

{ "source-ref": String, "bounding-box": { "image_size": [ { "width": Int, "height": Int, "depth":Int, } ], "annotations": [ { "class_id": Int, "left": Int, "top": Int, "width": Int, "height": Int, "errors": [ # annotation field errors { "code": String, # annotation field error code "message": String # Description and additional contextual details of the error } ] } ], "errors": [ #label attribute field errors { "code": String, # error code "message": String # Description and additional contextual details of the error } ] }, "bounding-box-metadata": { "objects": [ { "confidence": Float } ], "class-map": { String: String }, "type": String, "human-annotated": String, "creation-date": String, "job-name": String, "errors": [ #metadata field errors { "code": String, # error code "message": String # Description and additional contextual details of the error } ] }, "errors": [ # image errors { "code": String, # error code "message": String # Description and additional contextual details of the error } ] }

Ejemplo de error en línea JSON

En la siguiente línea JSON de localización de objetos (cuyo formato se ha modificado para facilitar su lectura) aparece el error ERROR_BOUNDING_BOX_TOO_SMALL. En este ejemplo, las dimensiones del cuadro delimitador (alto y ancho) no son superiores a 1 x 1.

{ "source-ref": "s3://bucket/Manifests/images/199940-1791.jpg", "bounding-box": { "image_size": [ { "width": 3000, "height": 3000, "depth": 3 } ], "annotations": [ { "class_id": 1, "top": 0, "left": 0, "width": 1, "height": 1, "errors": [ { "code": "ERROR_BOUNDING_BOX_TOO_SMALL", "message": "The height and width of the bounding box is too small." } ] }, { "class_id": 0, "top": 65, "left": 86, "width": 220, "height": 334 } ] }, "bounding-box-metadata": { "objects": [ { "confidence": 1 }, { "confidence": 1 } ], "class-map": { "0": "Echo", "1": "Echo Dot" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2019-11-20T02:57:28.288286", "job-name": "my job" } }