Preparar dados da imagem

Nesta página, descrevemos como preparar dados de imagem para uso em um conjunto de dados da Vertex AI. O formato dos dados de entrada da imagem depende do objetivo. No momento, os objetivos de imagem a seguir são compatíveis:

  • Classificação de imagem (etiqueta única)
  • Classificação de imagem (vários rótulos)
  • Detecção de objetos de imagem

As seções de objetivo a seguir incluem informações sobre requisitos de dados, o arquivo de esquema de entrada/saída e o formato dos arquivos de importação de dados (JSONL e CSV) definidos pelo esquema.

Classificação de rótulo único

Requisitos de dados

  • Dados de treinamento: os formatos de imagem a seguir são compatíveis com o treinamento do modelo. O tamanho máximo do arquivo é de 30 MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • Dados de previsão: os formatos de imagem a seguir são compatíveis com a solicitação de uma consulta (consulta) para o modelo. O tamanho máximo do arquivo é de 1,5 MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO

    Práticas recomendadas para dados de imagem usados para treinar modelos do AutoML

    As práticas recomendadas a seguir se aplicam a conjuntos de dados que treinam modelos usando o AutoML.

  • Os modelos do AutoML são otimizados para fotografias de objetos reais.
  • Os dados de treinamento precisam estar o mais próximo possível dos dados que serão previstos. Por exemplo, se o caso de uso envolver imagens borradas e de baixa resolução (como de uma câmera de segurança), seus dados de treinamento precisarão ser compostos por imagens borradas de baixa resolução. Em geral, pense também em fornecer vários ângulos, resoluções e planos de fundo para suas imagens de treinamento.
  • Os modelos da Vertex AI geralmente não preveem rótulos que pessoas não possam atribuir. Então, se um humano não puder ser treinado para atribuir rótulos olhando a imagem por 1 ou 2 segundos, o modelo provavelmente não poderá ser treinado para fazer isso também.
  • Recomendamos cerca de 1.000 imagens de treinamento por rótulo. O mínimo por rótulo é 10. Em geral, são necessários mais exemplos por rótulo para treinar modelos com vários rótulos por imagem, e os resultados são mais difíceis de interpretar.
  • O modelo funciona melhor quando há no máximo 100 vezes mais imagens para o rótulo mais comum do que para o menos comum. Recomendamos remover rótulos de frequência muito baixa.
  • Pense em incluir um rótulo None_of_the_above e imagens que não correspondam a nenhum dos rótulos definidos. Por exemplo, para um conjunto de dados de flores, inclua imagens de flores fora das variedades rotuladas e identifique-as como None_of_the_above.

Arquivo de esquema YAML

Use o seguinte arquivo de esquema de acesso público para importar anotações de classificação de imagem de rótulo único. Esse arquivo de esquema determina o formato dos arquivos de entrada de dados. A estrutura desse arquivo segue o esquema OpenAPI.

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

Arquivo 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

Arquivos de entrada

JSONL

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

Observações sobre o 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"

    Em que value é um dos nomes de exibição 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 uso de machine learning do item de dados:
    • "aiplatform.googleapis.com/ml_use" : "training/test/validation"

Exemplo de JSONL - 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 treinar um modelo. Use TRAINING, TEST, ou VALIDATION. Para mais informações sobre a divisão de dados manual, consulte Sobre a divisão de dados para modelos do AutoML.
  • GCS_FILE_PATH: este campo contém o URI do Cloud Storage para a imagem. Esses URIs diferenciam maiúsculas de minúsculas.
  • LABEL Os rótulos precisam começar com uma letra e conter apenas letras, números e sublinhado (opcional).

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 de vários rótulos

Requisitos de dados

  • Dados de treinamento: os formatos de imagem a seguir são compatíveis com o treinamento do modelo. O tamanho máximo do arquivo é de 30 MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • Dados de previsão: os formatos de imagem a seguir são compatíveis com a solicitação de uma consulta (consulta) para o modelo. O tamanho máximo do arquivo é de 1,5 MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO

    Práticas recomendadas para dados de imagem usados para treinar modelos do AutoML

    As práticas recomendadas a seguir se aplicam a conjuntos de dados que treinam modelos usando o AutoML.

  • Os modelos do AutoML são otimizados para fotografias de objetos reais.
  • Os dados de treinamento precisam estar o mais próximo possível dos dados que serão previstos. Por exemplo, se o caso de uso envolver imagens borradas e de baixa resolução (como de uma câmera de segurança), seus dados de treinamento precisarão ser compostos por imagens borradas de baixa resolução. Em geral, pense também em fornecer vários ângulos, resoluções e planos de fundo para suas imagens de treinamento.
  • Os modelos da Vertex AI geralmente não preveem rótulos que pessoas não possam atribuir. Então, se um humano não puder ser treinado para atribuir rótulos olhando a imagem por 1 ou 2 segundos, o modelo provavelmente não poderá ser treinado para fazer isso também.
  • Recomendamos cerca de 1.000 imagens de treinamento por rótulo. O mínimo por rótulo é 10. Em geral, são necessários mais exemplos por rótulo para treinar modelos com vários rótulos por imagem, e os resultados são mais difíceis de interpretar.
  • O modelo funciona melhor quando há no máximo 100 vezes mais imagens para o rótulo mais comum do que para o menos comum. Recomendamos remover rótulos de frequência muito baixa.
  • Pense em incluir um rótulo None_of_the_above e imagens que não correspondam a nenhum dos rótulos definidos. Por exemplo, para um conjunto de dados de flores, inclua imagens de flores fora das variedades rotuladas e identifique-as como None_of_the_above.

Arquivo de esquema YAML

Use o seguinte arquivo de esquema de acesso público para importar anotações de classificação de imagem de vários rótulos. Esse arquivo de esquema determina o formato dos arquivos de entrada de dados. A estrutura desse arquivo segue o esquema OpenAPI.

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

Arquivo 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

Arquivos de entrada

JSONL

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

Observações sobre o 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"

    Em que value é um dos nomes de exibição 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 uso de machine learning do item de dados:
    • "aiplatform.googleapis.com/ml_use" : "training/test/validation"

Exemplo de JSONL - 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 treinar um modelo. Use TRAINING, TEST, ou VALIDATION. Para mais informações sobre a divisão de dados manual, consulte Sobre a divisão de dados para modelos do AutoML.
  • GCS_FILE_PATH: este campo contém o URI do Cloud Storage para a imagem. Esses URIs diferenciam maiúsculas de minúsculas.
  • LABEL Os rótulos precisam começar com uma letra e conter apenas letras, números e sublinhado (opcional).

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
...
    

Detecção de objetos

Requisitos de dados

Requisitos gerais de imagem
Tipos de arquivos compatíveis
  • JPEG
  • PNG
  • GIF
  • BMP
  • ICO
Tipos de imagens

Os modelos do AutoML são otimizados para fotografias de objetos reais.

Tamanho do arquivo de imagem de treinamento (MB) Tamanho máximo de 30 MB.
Tamanho do arquivo de imagem de previsão* (MB) Tamanho máximo de 1,5 MB.
Tamanho da imagem (pixels)

Máximo sugerido de 1024 x 1024 pixels.

Para imagens muito maiores que 1.024 pixels por 1.024 pixels, a qualidade de algumas imagens talvez seja perdida durante o processo de normalização de imagens da Vertex AI.

Rótulos e requisitos da caixa delimitadora
Os requisitos a seguir se aplicam aos conjuntos de dados usados para treinar modelos do AutoML.
Rotular instâncias para treinamento

No mínimo 10 anotações (instâncias).

Requisitos de anotação

Para cada rótulo, é preciso ter pelo menos 10 imagens, cada uma com pelo menos uma anotação (caixa delimitadora e rótulo).

No entanto, para fins de treinamento de modelo, o ideal é usar cerca de 1.000 anotações por rótulo. Em geral, quanto mais imagens por rótulo você tiver, melhor será o desempenho do seu modelo.

Proporção de rótulos (do rótulo mais comum para o menos comum):

O modelo funciona melhor quando há no máximo 100 vezes mais imagens para o rótulo mais comum do que para o menos comum.

Para melhorar o desempenho do modelo, recomendamos a remoção de rótulos com frequência muito baixa.

Comprimento da borda da caixa delimitadora

Pelo menos 0,01 * comprimento de um lado de uma imagem. Por exemplo, uma imagem de 1.000 * 900 pixels exigiria caixas delimitadoras de pelo menos 10 * 9 pixels.

Tamanho mínimo da caixa delimitadora: 8 pixels por 8 pixels.

Os requisitos a seguir se aplicam a conjuntos de dados usados para treinar o AutoML ou modelos personalizados treinados.
Caixas delimitadoras por imagem distinta No máximo 500.
Caixas delimitadoras retornadas de uma solicitação de previsão

100 (padrão), no máximo 500.

Dados de treinamento e requisitos do conjunto de dados
Os requisitos a seguir se aplicam aos conjuntos de dados usados para treinar modelos do AutoML.
Características da imagem de treinamento

Os dados de treinamento precisam estar os mais próximos possíveis dos dados que serão usados nas previsões.

Por exemplo, se o caso de uso envolver imagens borradas de baixa resolução, como de uma câmera de segurança, seus dados de treinamento precisarão ser compostos de imagens borradas de baixa resolução. Em geral, pense também em fornecer vários ângulos, resoluções e planos de fundo para suas imagens de treinamento.

Os modelos da Vertex AI geralmente não preveem rótulos que pessoas não possam atribuir. Então, se um humano não puder ser treinado para atribuir rótulos olhando a imagem por um ou dois segundos, o modelo provavelmente não poderá ser treinado para fazer isso também.

Pré-processamento interno de imagem

Depois que as imagens são importadas, a Vertex AI executa um pré-processamento nos dados. As imagens pré-processadas são os dados reais usados para treinar o modelo.

O pré-processamento de imagens (redimensionamento) ocorre quando a menor borda da imagem é maior do que 1.024 pixels. No caso em que o lado menor da imagem é maior que 1.024 pixels, esse lado menor é redimensionado para 1.024 pixels. O lado maior e os caixas delimitadoras são reduzidos pela mesma quantidade do lado menor. Consequentemente, todas as anotações reduzidas (caixas delimitadoras e rótulos) serão removidas se tiverem menos de 8 pixels por 8 pixels.

Imagens com um lado menor que ou menor que 1.024 pixels não estão sujeitas ao redimensionamento de pré-processamento.

Os requisitos a seguir se aplicam a conjuntos de dados usados para treinar o AutoML ou modelos personalizados treinados.
Imagens em cada conjunto de dados No máximo 150.000
Caixas delimitadoras totais anotadas em cada conjunto de dados No máximo 1.000.000
Número de rótulos em cada conjunto de dados No mínimo 1, no máximo 1.000

Arquivo de esquema YAML

Use o seguinte arquivo de esquema de acesso público para importar anotações de detecção de objetos de imagem (caixas delimitadoras e rótulos). Esse arquivo de esquema determina o formato dos arquivos de entrada de dados. A estrutura desse arquivo segue o esquema OpenAPI.

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

Arquivo de esquema completo

title: ImageBoundingBox
description: >
  Import and export format for importing/exporting images together with bounding
  box 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`.
  boundingBoxAnnotations:
    type: array
    description: Multiple bounding box Annotations on the image.
    items:
      type: object
      description: >
        Bounding box anntoation. `xMin`, `xMax`, `yMin`, and `yMax` are relative
        to the image size, and the point 0,0 is in the top left of 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.
        xMin:
          description: The leftmost coordinate of the bounding box.
          type: number
          format: double
        xMax:
          description: The rightmost coordinate of the bounding box.
          type: number
          format: double
        yMin:
          description: The topmost coordinate of the bounding box.
          type: number
          format: double
        yMax:
          description: The bottommost coordinate of the bounding box.
          type: number
          format: double
        annotationResourceLabels:
          description: Resource labels on the Annotation.
          type: object
          additionalProperties:
            type: string
  dataItemResourceLabels:
    description: Resource labels on the DataItem.
    type: object
    additionalProperties:
      type: string

Arquivos de entrada

JSONL

JSON em cada linha:


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "boundingBoxAnnotations": [
    {
      "displayName": "OBJECT1_LABEL",
      "xMin": "X_MIN",
      "yMin": "Y_MIN",
      "xMax": "X_MAX",
      "yMax": "Y_MAX",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name": "displayName",
        "env": "prod"
      }
    },
    {
      "displayName": "OBJECT2_LABEL",
      "xMin": "X_MIN",
      "yMin": "Y_MIN",
      "xMax": "X_MAX",
      "yMax": "Y_MAX"
    }
  ],
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "test/train/validation"
  }
}

Observações sobre o 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"

    Em que value é um dos nomes de exibição 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 uso de machine learning do item de dados:
    • "aiplatform.googleapis.com/ml_use" : "training/test/validation"

Exemplo de JSONL - object_detection.jsonl:


{"imageGcsUri": "gs://bucket/filename1.jpeg", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.3", "yMin": "0.3", "xMax": "0.7", "yMax": "0.6"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.8", "yMin": "0.2", "xMax": "1.0", "yMax": "0.4"},{"displayName": "Salad", "xMin": "0.0", "yMin": "0.0", "xMax": "1.0", "yMax": "1.0"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png", "boundingBoxAnnotations": [{"displayName": "Baked goods", "xMin": "0.5", "yMin": "0.7", "xMax": "0.8", "yMax": "0.8"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.tiff", "boundingBoxAnnotations": [{"displayName": "Salad", "xMin": "0.1", "yMin": "0.2", "xMax": "0.8", "yMax": "0.9"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

CSV

Formato CSV:

[ML_USE],GCS_FILE_PATH,[LABEL],[BOUNDING_BOX]*
Lista de colunas
  • ML_USE (Opcional). Para fins de divisão de dados ao treinar um modelo. Use TRAINING, TEST, ou VALIDATION. Para mais informações sobre a divisão de dados manual, consulte Sobre a divisão de dados para modelos do AutoML.
  • GCS_FILE_PATH Esse campo contém o URI do Cloud Storage para a imagem. Esses URIs diferenciam maiúsculas de minúsculas.
  • LABEL Os rótulos precisam começar com uma letra e conter apenas letras, números e sublinhado (opcional).
  • BOUNDING_BOX Uma caixa delimitadora para um objeto na imagem. Especificar uma caixa delimitadora envolve mais de uma coluna.
    Caixa delimitadora
    A. X_MIN,Y_MIN
    B. X_MAX,Y_MIN
    C. X_MAX,Y_MAX
    D. X_MIN,Y_MAX

    Cada vertex é especificado por valores de coordenadas x, y. As coordenadas são valores flutuantes normalizados [0,1]; 0.0 é X_MIN ou Y_MIN, 1.0 é X_MAX ou Y_MAX.

    Por exemplo, uma caixa delimitadora para toda a imagem é expressa como (0.0,0.0,,,1.0,1.0,,) ou (0.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0).

    A caixa delimitadora de um objeto pode ser especificada de duas maneiras:

    1. Dois vértices (dois conjuntos de coordenadas x,y) que são pontos diagonalmente opostos do retângulo:
      A. X_MIN,Y_MIN
      C. X_MAX,Y_MAX
      como mostrado neste exemplo:
      A,,C,
      X_MIN,Y_MIN,,,X_MAX,Y_MAX,,.
    2. Todos os quatro vértices especificados conforme mostrado em:
      X_MIN,Y_MIN,X_MAX,Y_MIN, X_MAX,Y_MAX,X_MIN,Y_MAX,
      Se os quatro vértices especificados não formarem um retângulo paralelo às bordas da imagem, a Vertex AIespecifica os vértices que formem um retângulo.

Exemplo de CSV - object_detection.csv:

test,gs://bucket/filename1.jpeg,Tomato,0.3,0.3,,,0.7,0.6,,
training,gs://bucket/filename2.gif,Tomato,0.8,0.2,,,1.0,0.4,,
gs://bucket/filename2.gif
gs://bucket/filename3.png,Baked goods,0.5,0.7,0.8,0.7,0.8,0.8,0.5,0.8
validation,gs://bucket/filename4.tiff,Salad,0.1,0.2,,,0.8,0.9,,
...
    

A seguir