Noções básicas sobre treinar e testar manifestos de resultados de validação - 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á.

Noções básicas sobre treinar e testar manifestos de resultados de validação

Durante o treinamento, o Amazon Rekognition Custom Labels cria manifestos de resultados de validação para conter erros não terminais de linha JSON. Os manifestos dos resultados da validação são cópias dos conjuntos de dados de treinamento e teste com informações de erro adicionadas. É possível acessar os manifestos de validação após a conclusão do treinamento. Para obter mais informações, consulte Como obter os resultados de validação. O Amazon Rekognition Custom Labels também cria um resumo do manifesto que inclui informações gerais sobre erros de linha JSON, como locais de erros e contagens de erros de linha JSON. Para obter mais informações, consulte Noções básicas sobre o resumo do manifesto.

nota

Os resultados da validação (manifestos de resultados de validação de treinamento e teste e resumo do manifesto) são criados somente se não houver Erros terminais do arquivo de manifesto.

Um manifesto contém linhas JSON para cada imagem no conjunto de dados. Nos manifestos dos resultados da validação, as informações de erro da linha JSON são adicionadas às linhas JSON em que ocorrem erros.

Um erro de linha JSON é um erro não terminal relacionado a uma única imagem. Um erro não terminal de validação pode invalidar toda a linha JSON ou apenas uma parte. Por exemplo, se a imagem referenciada em uma linha JSON não estiver no formato PNG ou JPG, ocorrerá um erro ERROR_INVALID_IMAGE e toda a linha JSON será excluída do treinamento. O treinamento continua com outras linhas JSON válidas.

Em uma linha JSON, um erro pode significar que a linha JSON ainda pode ser usada para treinamento. Por exemplo, se o valor esquerdo de uma das quatro caixas delimitadoras associadas a um rótulo for negativo, o modelo ainda será treinado usando as outras caixas delimitadoras válidas. As informações de erro da linha JSON são retornadas para a caixa delimitadora inválida (ERROR_INVALID_BOUNDING_BOX). Neste exemplo, as informações do erro são adicionadas ao objeto annotation em que o erro ocorre.

Os erros de aviso, como WARNING_NO_ANNOTATIONS, não são usados para treinamento e contam como linhas JSON ignoradas (ignored_json_lines) no resumo do manifesto. Para obter mais informações, consulte Noções básicas sobre o resumo do manifesto. Além disso, as linhas JSON ignoradas não contam para o limite de erro de 20% para treinamento e teste.

Para obter informações sobre erros não terminais específicos de validação de dados, consulte Erros não terminais de validação de linha JSON.

nota

Se houver muitos erros de validação de dados, o treinamento será interrompido e um erro terminal de ERROR_TOO_MANY_INVALID_ROWS_IN_MANIFEST será relatado no resumo do manifesto.

Para obter informações sobre como corrigir erros da linha JSON, consulte Como corrigir erros de treinamento.

Formato de erro de linha JSON

O Amazon Rekognition Custom Labels adiciona informações de erros não terminais de validação ao nível da imagem e ao formato de localização de objetos JSON Lines. Para obter mais informações, consulte Criar um arquivo de manifesto.

Erros no nível da imagem

O exemplo a seguir mostra as matrizes Error em uma linha JSON em nível de imagem. Há dois conjuntos de erros. Erros relacionados aos metadados do atributo do rótulo (neste exemplo, metadados esportivos) e erros relacionados à imagem. Um erro inclui um código de erro (código), mensagem de erro (mensagem). Para obter mais informações, consulte Rótulos em nível de imagem em arquivos de manifesto.

{ "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 } ] }

Erros de localização de objetos

O exemplo a seguir mostra as matrizes de erro em uma linha JSON de localização de objetos. A linha JSON contém informações de matriz Errors para campos nas seguintes seções da linha JSON. Cada objeto Error inclui o código de erro e a mensagem de erro.

  • label attribute: erros nos campos do atributo do rótulo. Consulte bounding-box no exemplo.

  • anotações: os erros de anotação (caixas delimitadoras) são armazenados na matriz annotations dentro do atributo de rótulo.

  • label attribute-metadata: erros nos metadados do atributo do rótulo. Consulte bounding-box-metadata no exemplo.

  • image: erros não relacionados aos campos de atributo do rótulo, anotação e metadados do atributo do rótulo.

Para obter mais informações, consulte Localização de objetos em arquivos de manifesto.

{ "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 } ] }

Exemplo de erro de linha JSON

A seguinte linha JSON de localização de objetos (formatada para facilitar a leitura) mostra um erro ERROR_BOUNDING_BOX_TOO_SMALL. Neste exemplo, as dimensões da caixa delimitadora (altura e largura) não são maiores que 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" } }