Preparare i dati di addestramento delle immagini per la classificazione

Questa pagina descrive come preparare i dati di addestramento delle immagini da utilizzare in una Set di dati Vertex AI per addestrare un modello di classificazione delle immagini.

Le seguenti sezioni degli obiettivi includono informazioni sui requisiti dei dati, sul file dello schema di input/output e sul formato dei file di importazione dei dati (JSON Lines e CSV) definiti dallo schema.

Classificazione con etichetta singola

Requisiti dei dati

  • Dati di addestramento: durante l'addestramento del modello sono supportati i seguenti formati di immagini. Dopo che l'API Vertex AI ha pretrattato queste immagini importate, vengono utilizzate come dati per addestrare un modello. La dimensione massima di un file immagine è 30 MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • Dati di previsione: i seguenti formati dell'immagine sono supportati quando si richiede un eseguire una previsione da eseguire query sul modello. La dimensione massima del file è di 1,5 MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO
    di Gemini Advanced.

    Best practice per i dati di immagine utilizzati per addestrare i modelli AutoML

    Le seguenti best practice si applicano ai set di dati che addestrano i modelli utilizzando AutoML.

  • I modelli AutoML sono ottimizzati per le fotografie di oggetti nel mondo reale.
  • I dati di addestramento devono essere il più simili possibile ai dati su cui è necessario fare previsioni. Ad esempio, se il tuo caso d'uso prevede immagini smussate e a bassa risoluzione (ad esempio quelle di una videocamera di sicurezza), i dati di addestramento devono essere costituiti da immagini smussate e a bassa risoluzione. In generale, dovresti anche valutare la possibilità di fornire più angolazioni, risoluzioni per le immagini di addestramento.
  • I modelli Vertex AI in genere non sono in grado di prevedere le etichette che gli esseri umani impossibile assegnare. Quindi, se un essere umano non può essere addestrato ad assegnare etichette guardando nell'immagine per 1-2 secondi, il modello probabilmente non può essere addestrato per farlo .
  • Consigliamo circa 1000 immagini di addestramento per etichetta. Il numero minimo per etichetta è 10. In generale, ci sono più esempi per etichetta per addestrare modelli con più etichette per immagine, ottenendo sono più difficili da interpretare.
  • Il modello funziona meglio quando ci sono al massimo 100 volte più immagini per il più comune che per l'etichetta meno comune. Ti consigliamo di rimuoverla etichette con frequenza molto bassa.
  • Valuta la possibilità di includere un'etichetta None_of_the_above e immagini che non corrispondono a nessuna delle etichette definite. Ad esempio, per un fiore includere immagini di fiori al di fuori delle varietà etichettate, e etichettali come None_of_the_above.

File dello schema YAML

Utilizza il seguente file di schema accessibile pubblicamente per importare un'etichetta singola annotazioni di classificazione delle immagini. Questo file di schema indica il formato file di input dati. La struttura di questo file segue Schema OpenAPI.

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

File di schema 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

File di input

Righe JSON

JSON su ogni riga:



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

Note sul campo:

  • imageGcsUri: l'unico campo obbligatorio.
  • annotationResourceLabels - Può contenere un numero illimitato di coppie chiave-valore. L'unica coppia chiave-valore prenotata dal sistema è le seguenti:
    • "aiplatform.googleapis.com/annotation_set_name" : "value"

    dove value è uno dei nomi visualizzati dei set di annotazioni esistenti nel set di dati.

  • dataItemResourceLabels - Può contenere un numero illimitato di coppie chiave-valore. L'unica coppia chiave-valore riservata dal sistema è la seguente, che specifica l'insieme di utilizzo del machine learning dell'elemento di dati:
    • "aiplatform.googleapis.com/ml_use" : "training/test/validation"

Esempio di righe 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]
Elenco di colonne
  • ML_USE (Facoltativo) - Per la suddivisione dei dati durante l'addestramento di un modello. Usa TRAINING, TEST o VALIDATION. Per ulteriori informazioni sui dati manuali sulla suddivisione dei dati, consulta Informazioni sulle suddivisioni dei dati per i modelli AutoML.
  • GCS_FILE_PATH: questo campo contiene l'URI Cloud Storage per l'immagine. Gli URI Cloud Storage sono sensibili alle maiuscole.
  • LABEL (Facoltativo) - Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi.

CSV di esempio - 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
...
    

Classificazione con più etichette

Requisiti dei dati

  • Dati di addestramento: durante l'addestramento del modello sono supportati i seguenti formati di immagini. Dopo che l'API Vertex AI ha pretrattato queste immagini importate, vengono utilizzate come dati per addestrare un modello. La dimensione massima di un file immagine è 30 MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • Dati di previsione: i seguenti formati dell'immagine sono supportati quando si richiede un eseguire una previsione da eseguire query sul modello. La dimensione massima del file è di 1,5 MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO
    di Gemini Advanced.

    Best practice per i dati di immagine utilizzati per addestrare i modelli AutoML

    Le seguenti best practice si applicano ai set di dati che addestrano i modelli utilizzando AutoML.

  • I modelli AutoML sono ottimizzati per le fotografie di oggetti nel mondo reale.
  • I dati di addestramento devono essere il più simili possibile ai dati su cui è necessario fare previsioni. Ad esempio, se il tuo caso d'uso prevede immagini smussate e a bassa risoluzione (ad esempio quelle di una videocamera di sicurezza), i dati di addestramento devono essere costituiti da immagini smussate e a bassa risoluzione. In generale, dovresti anche valutare la possibilità di fornire più angolazioni, risoluzioni per le immagini di addestramento.
  • I modelli Vertex AI in genere non sono in grado di prevedere le etichette che gli esseri umani impossibile assegnare. Quindi, se un essere umano non può essere addestrato ad assegnare etichette guardando nell'immagine per 1-2 secondi, il modello probabilmente non può essere addestrato per farlo .
  • Consigliamo circa 1000 immagini di addestramento per etichetta. Il numero minimo per etichetta è 10. In generale, ci sono più esempi per etichetta per addestrare modelli con più etichette per immagine, ottenendo sono più difficili da interpretare.
  • Il modello funziona meglio quando ci sono al massimo 100 volte più immagini per il più comune che per l'etichetta meno comune. Ti consigliamo di rimuoverla etichette con frequenza molto bassa.
  • Valuta la possibilità di includere un'etichetta None_of_the_above e immagini che non corrispondono a nessuna delle etichette definite. Ad esempio, per un fiore includere immagini di fiori al di fuori delle varietà etichettate, e etichettali come None_of_the_above.

File di schema YAML

Utilizza il seguente file di schema accessibile pubblicamente per importare più etichette annotazioni di classificazione delle immagini. Questo file di schema indica il formato file di input dati. La struttura di questo file segue Schema OpenAPI.

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

File schema 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

File di input

Righe JSON

JSON su ogni riga:


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

Note sul campo:

  • imageGcsUri: l'unico campo obbligatorio.
  • annotationResourceLabels - Può contenere un numero illimitato di coppie chiave-valore. L'unica coppia chiave-valore prenotata dal sistema è le seguenti:
    • "aiplatform.googleapis.com/annotation_set_name" : "value"

    dove value è uno dei nomi visualizzati dei set di annotazioni esistenti nel set di dati.

  • dataItemResourceLabels - Può contenere un numero illimitato di coppie chiave-valore. L'unica coppia chiave-valore riservata dal sistema è la seguente, che specifica l'insieme di utilizzo del machine learning dell'elemento di dati:
    • "aiplatform.googleapis.com/ml_use" : "training/test/validation"

Esempio di righe 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]
Elenco di colonne
  • ML_USE (Facoltativo) - Per la suddivisione dei dati durante l'addestramento di un modello. Usa TRAINING, TEST o VALIDATION. Per ulteriori informazioni sulla suddivisione manuale dei dati, consulta Informazioni sulle suddivisioni di dati per i modelli AutoML.
  • GCS_FILE_PATH - Questo campo contiene l'URI Cloud Storage per dell'immagine. Gli URI Cloud Storage sono sensibili alle maiuscole.
  • LABEL (Facoltativo) - Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi.

CSV di esempio - 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
...