Prepare dados de preparação de imagens para classificação

Esta página descreve como preparar dados de preparação de imagens para utilização num conjunto de dados do Vertex AI para preparar um modelo de classificação de imagens.

As secções de objetivos seguintes incluem informações sobre os requisitos de dados, o ficheiro de esquema de entrada/saída e o formato dos ficheiros de importação de dados (linhas JSON e CSV) definidos pelo esquema.

Classificação de etiqueta única

Requisitos de dados

  • Dados de preparação: os seguintes formatos de imagem são suportados quando prepara o modelo. Depois de a API Vertex AI pré-processar estas imagens importadas, estas servem como os dados usados para preparar um modelo. O tamanho máximo do ficheiro por imagem é de 30 MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • Dados de previsão: os seguintes formatos de imagem são suportados quando pede uma previsão (consulta) ao seu modelo. O tamanho máximo do ficheiro é 1,5 MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO

    Práticas recomendadas para dados de imagens usados para preparar modelos do AutoML

    As seguintes práticas recomendadas aplicam-se a conjuntos de dados que preparam modelos com o AutoML.

  • Os modelos do AutoML estão otimizados para fotografias de objetos no mundo real.
  • Os dados de preparação devem estar o mais próximos possível dos dados com base nos quais as previsões vão ser feitas. Por exemplo, se o seu exemplo de utilização envolver imagens desfocadas e de baixa resolução (como as de uma câmara de segurança), os seus dados de preparação devem ser compostos por imagens desfocadas e de baixa resolução. Em geral, também deve considerar fornecer vários ângulos, resoluções e fundos para as suas imagens de preparação.
  • Geralmente, os modelos da Vertex AI não conseguem prever etiquetas que os humanos não conseguem atribuir. Assim, se não for possível preparar um humano para atribuir etiquetas observando a imagem durante 1 a 2 segundos, é provável que também não seja possível preparar o modelo para o fazer.
  • Recomendamos cerca de 1000 imagens de preparação por etiqueta. O mínimo por etiqueta é 10. Em geral, são necessários mais exemplos por etiqueta para formar modelos com várias etiquetas por imagem, e as classificações resultantes são mais difíceis de interpretar.
  • O modelo funciona melhor quando existem, no máximo, 100 vezes mais imagens para a etiqueta mais comum do que para a etiqueta menos comum. Recomendamos que remova as etiquetas de frequência muito baixa.
  • Considere incluir uma etiqueta None_of_the_above e imagens que não correspondam a nenhuma das etiquetas definidas. Por exemplo, para um conjunto de dados de flores, inclua imagens de flores fora das suas variedades etiquetadas e etiquete-as como None_of_the_above.

Ficheiro de esquema YAML

Use o ficheiro de esquema acessível publicamente seguinte para importar anotações de classificação de imagens com uma única etiqueta. Este ficheiro de esquema determina o formato dos ficheiros de entrada de dados. A estrutura deste ficheiro segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml

Ficheiro de esquema completo

title: ImageClassificationSingleLabel
description: >
 Import and export format for importing/exporting images together with
 single-label classification annotation. Can be used in
 Dataset.import_schema_uri field.
type: object
required:
- imageGcsUri
properties:
 imageGcsUri:
   type: string
   description: >
     A Cloud Storage URI pointing to an image. Up to 30MB in size.
     Supported file mime types: `image/jpeg`, `image/gif`, `image/png`,
     `image/webp`, `image/bmp`, `image/tiff`, `image/vnd.microsoft.icon`.
 classificationAnnotation:
   type: object
   description: Single classification Annotation on the image.
   properties:
     displayName:
       type: string
       description: >
         It will be imported as/exported from AnnotationSpec's display name,
         i.e. the name of the label/class.
     annotationResourceLabels:
       description: Resource labels on the Annotation.
       type: object
       additionalProperties:
         type: string
 dataItemResourceLabels:
   description: Resource labels on the DataItem.
   type: object
   additionalProperties:
     type: string

Ficheiros de entrada

JSON Lines

JSON em cada linha:



{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotation": {
    "displayName": "LABEL",
    "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name": "displayName",
        "env": "prod"
      }
   },
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

Notas de campo:

  • imageGcsUri: o único campo obrigatório.
  • annotationResourceLabels - Pode conter qualquer número de pares de strings de chave-valor. O único par de chave-valor reservado pelo sistema é o seguinte:
    • "aiplatform.googleapis.com/annotation_set_name" : "value"

    Onde value é um dos nomes a apresentar dos conjuntos de anotações existentes no conjunto de dados.

  • dataItemResourceLabels - Pode conter qualquer número de pares de strings de chave-valor. O único par de chave-valor reservado pelo sistema é o seguinte, que especifica o conjunto de utilização de aprendizagem automática do item de dados:
    • "aiplatform.googleapis.com/ml_use" : "training/test/validation"

Exemplo de linhas JSON – image_classification_single_label.jsonl:



{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

CSV

Formato CSV:

[ML_USE],GCS_FILE_PATH,[LABEL]
Lista de colunas
  • ML_USE (Opcional) – Para fins de divisão de dados ao preparar um modelo. Use TRAINING, TEST ou VALIDATION. Para mais informações sobre a divisão manual de dados, consulte o artigo Acerca das divisões de dados para modelos do AutoML.
  • GCS_FILE_PATH: este campo contém o URI do Cloud Storage para a imagem. Os URIs do Cloud Storage são sensíveis a maiúsculas e minúsculas.
  • LABEL (Opcional) – As etiquetas têm de começar por uma letra e só podem conter letras, números e carateres de sublinhado.

Exemplo de CSV – image_classification_single_label.csv:

test,gs://bucket/filename1.jpeg,daisy
training,gs://bucket/filename2.gif,dandelion
gs://bucket/filename3.png
gs://bucket/filename4.bmp,sunflowers
validation,gs://bucket/filename5.tiff,tulips
...
    

Classificação com várias etiquetas

Requisitos de dados

  • Dados de preparação: os seguintes formatos de imagem são suportados quando prepara o modelo. Depois de a API Vertex AI pré-processar estas imagens importadas, estas servem como os dados usados para preparar um modelo. O tamanho máximo do ficheiro por imagem é de 30 MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • Dados de previsão: os seguintes formatos de imagem são suportados quando pede uma previsão (consulta) ao seu modelo. O tamanho máximo do ficheiro é 1,5 MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO

    Práticas recomendadas para dados de imagens usados para preparar modelos do AutoML

    As seguintes práticas recomendadas aplicam-se a conjuntos de dados que preparam modelos com o AutoML.

  • Os modelos do AutoML estão otimizados para fotografias de objetos no mundo real.
  • Os dados de preparação devem estar o mais próximos possível dos dados com base nos quais as previsões vão ser feitas. Por exemplo, se o seu exemplo de utilização envolver imagens desfocadas e de baixa resolução (como as de uma câmara de segurança), os seus dados de preparação devem ser compostos por imagens desfocadas e de baixa resolução. Em geral, também deve considerar fornecer vários ângulos, resoluções e fundos para as suas imagens de preparação.
  • Geralmente, os modelos da Vertex AI não conseguem prever etiquetas que os humanos não conseguem atribuir. Assim, se não for possível preparar um humano para atribuir etiquetas observando a imagem durante 1 a 2 segundos, é provável que também não seja possível preparar o modelo para o fazer.
  • Recomendamos cerca de 1000 imagens de preparação por etiqueta. O mínimo por etiqueta é 10. Em geral, são necessários mais exemplos por etiqueta para formar modelos com várias etiquetas por imagem, e as classificações resultantes são mais difíceis de interpretar.
  • O modelo funciona melhor quando existem, no máximo, 100 vezes mais imagens para a etiqueta mais comum do que para a etiqueta menos comum. Recomendamos que remova as etiquetas de frequência muito baixa.
  • Considere incluir uma etiqueta None_of_the_above e imagens que não correspondam a nenhuma das etiquetas definidas. Por exemplo, para um conjunto de dados de flores, inclua imagens de flores fora das suas variedades etiquetadas e etiquete-as como None_of_the_above.

Ficheiro de esquema YAML

Use o seguinte ficheiro de esquema acessível publicamente para importar anotações de classificação de imagens com várias etiquetas. Este ficheiro de esquema determina o formato dos ficheiros de entrada de dados. A estrutura deste ficheiro segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_multi_label_io_format_1.0.0.yaml

Ficheiro de esquema completo

title: ImageClassificationMultiLabel
description: >
 Import and export format for importing/exporting images together with
 multi-label classification annotations. Can be used in
 Dataset.import_schema_uri field.
type: object
required:
- imageGcsUri
properties:
 imageGcsUri:
   type: string
   description: >
     A Cloud Storage URI pointing to an image. Up to 30MB in size.
     Supported file mime types: `image/jpeg`, `image/gif`, `image/png`,
     `image/webp`, `image/bmp`, `image/tiff`, `image/vnd.microsoft.icon`.
 classificationAnnotations:
   type: array
   description: Multiple classification Annotations on the image.
   items:
     type: object
     description: Classification annotation.
     properties:
       displayName:
         type: string
         description: >
           It will be imported as/exported from AnnotationSpec's display name,
           i.e. the name of the label/class.
       annotationResourceLabels:
         description: Resource labels on the Annotation.
         type: object
         additionalProperties:
           type: string
 dataItemResourceLabels:
   description: Resource labels on the DataItem.
   type: object
   additionalProperties:
     type: string

Ficheiros de entrada

JSON Lines

JSON em cada linha:


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotations": [
    {
      "displayName": "LABEL1",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "flower_type"
      }
    },
    {
      "displayName": "LABEL2",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "image_shot_type"
      }
    }
  ],
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

Notas de campo:

  • imageGcsUri: o único campo obrigatório.
  • annotationResourceLabels - Pode conter qualquer número de pares de strings de chave-valor. O único par de chave-valor reservado pelo sistema é o seguinte:
    • "aiplatform.googleapis.com/annotation_set_name" : "value"

    Onde value é um dos nomes a apresentar dos conjuntos de anotações existentes no conjunto de dados.

  • dataItemResourceLabels - Pode conter qualquer número de pares de strings de chave-valor. O único par de chave-valor reservado pelo sistema é o seguinte, que especifica o conjunto de utilização de aprendizagem automática do item de dados:
    • "aiplatform.googleapis.com/ml_use" : "training/test/validation"

Exemplo de linhas JSON – image_classification_multi_label.jsonl:



{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

CSV

Formato CSV:

[ML_USE],GCS_FILE_PATH,[LABEL1,LABEL2,...LABELn]
Lista de colunas
  • ML_USE (Opcional) – Para fins de divisão de dados ao preparar um modelo. Use TRAINING, TEST ou VALIDATION. Para mais informações sobre a divisão manual de dados, consulte o artigo Acerca das divisões de dados para modelos do AutoML.
  • GCS_FILE_PATH: este campo contém o URI do Cloud Storage para a imagem. Os URIs do Cloud Storage são sensíveis a maiúsculas e minúsculas.
  • LABEL (Opcional) – As etiquetas têm de começar por uma letra e só podem conter letras, números e carateres de sublinhado.

Exemplo de CSV – image_classification_multi_label.csv:

test,gs://bucket/filename1.jpeg,daisy,full_shot
training,gs://bucket/filename2.gif,dandelion,medium_shot
gs://bucket/filename3.png
gs://bucket/filename4.bmp,sunflowers,closeup
validation,gs://bucket/filename5.tiff,tulips,extreme_closeup
...