Le seguenti sezioni sugli obiettivi includono informazioni sui requisiti dei dati, il file dello schema di input/output e il formato dei file di importazione dei dati (JSON Lines & CSV) definiti dallo schema.
Autorizzazioni
Per utilizzare le immagini di un bucket Cloud Storage, devi concedere a Vertex AI Service Agent il ruolo Storage Object Viewer per il bucket. L'agente di servizio è un account di servizio gestito da Google che Vertex AI utilizza per accedere ai tuoi dati per tuo conto. Per una spiegazione più dettagliata, consulta Agenti di servizio.
Classificazione con etichetta singola
Requisiti dei dati
- Dati di addestramento: quando addestri il modello, sono supportati i seguenti formati di immagine. Dopo che l'API Vertex AI ha pre-elaborato queste immagini importate, queste fungono da dati utilizzati per addestrare a modello. La dimensione massima del file per immagine è di 30 MB.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Dati di previsione: quando richiedi una previsione dal modello (esegui una query), sono supportati i seguenti formati di immagine. La dimensione massima del file è di 1,5 MB.
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- I modelli AutoML sono ottimizzati per le fotografie di oggetti in tempo reale.
- I dati di addestramento devono essere il più simili possibile ai dati su cui devono essere eseguite le previsioni. Ad esempio, se il tuo caso d'uso prevede immagini sfocate e a bassa risoluzione (ad esempio da una videocamera di sicurezza), i dati di addestramento devono essere composti da immagini sfocate e a bassa risoluzione. In generale, dovresti anche prendere in considerazione la possibilità di fornire più angolazioni, risoluzioni e sfondi per le immagini di addestramento.
- In genere, i modelli Vertex AI non possono prevedere etichette che gli esseri umani non possono assegnare. Pertanto, se un essere umano non può essere addestrato ad assegnare etichette guardando l'immagine per 1-2 secondi, è probabile che il modello non possa essere addestrato a farlo neanche.
- Consigliamo di utilizzare circa 1000 immagini di addestramento per etichetta. Il valore minimo per etichetta è 10. In generale, sono necessari più esempi per etichetta per addestrare i modelli con più etichette per immagine e i punteggi risultanti sono più difficili da interpretare.
- Il modello funziona meglio quando ci sono al massimo 100 volte più immagini per l' etichetta più comune che per l'etichetta meno comune. Ti consigliamo di rimuovere le 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 set di dati di fiori includi immagini di fiori al di fuori delle varietà etichettate, ed etichettale come None_of_the_above.
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.
File dello schema YAML
Utilizza il seguente file dello schema accessibile pubblicamente per importare le annotazioni di classificazione delle immagini con etichetta singola. Questo file dello schema determina il formato dei file di input dei dati. La struttura di questo file segue lo schema OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml
File dello 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
JSON Lines
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 sui campi:
imageGcsUri: l'unico campo obbligatorio.annotationResourceLabels: può contenere un numero qualsiasi di coppie chiave-valore di stringhe. L'unica coppia chiave-valore riservata dal sistema è la seguente:- "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 qualsiasi di coppie chiave-valore di stringhe. L'unica coppia chiave-valore riservata dal sistema è la seguente, che specifica il set di utilizzo di machine learning dell' elemento di dati:- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Esempio di JSON Lines - 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]
ML_USE(facoltativo) - Per scopi di suddivisione dei dati durante l'addestramento di un modello. Utilizza TRAINING, TEST o VALIDATION. Per saperne di più 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 dell'immagine. Gli URI Cloud Storage fanno distinzione tra maiuscole e minuscole.LABEL(facoltativo) - Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi.
Esempio di 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
...
Classificazione con più etichette
Requisiti dei dati
- Dati di addestramento: quando addestri il modello, sono supportati i seguenti formati di immagine. Dopo che l'API Vertex AI ha pre-elaborato queste immagini importate, queste fungono da dati utilizzati per addestrare a modello. La dimensione massima del file per immagine è di 30 MB.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Dati di previsione: quando richiedi una previsione dal modello (esegui una query), sono supportati i seguenti formati di immagine. La dimensione massima del file è di 1,5 MB.
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- I modelli AutoML sono ottimizzati per le fotografie di oggetti in tempo reale.
- I dati di addestramento devono essere il più simili possibile ai dati su cui devono essere eseguite le previsioni. Ad esempio, se il tuo caso d'uso prevede immagini sfocate e a bassa risoluzione (ad esempio da una videocamera di sicurezza), i dati di addestramento devono essere composti da immagini sfocate e a bassa risoluzione. In generale, dovresti anche prendere in considerazione la possibilità di fornire più angolazioni, risoluzioni e sfondi per le immagini di addestramento.
- In genere, i modelli Vertex AI non possono prevedere etichette che gli esseri umani non possono assegnare. Pertanto, se un essere umano non può essere addestrato ad assegnare etichette guardando l'immagine per 1-2 secondi, è probabile che il modello non possa essere addestrato a farlo neanche.
- Consigliamo di utilizzare circa 1000 immagini di addestramento per etichetta. Il valore minimo per etichetta è 10. In generale, sono necessari più esempi per etichetta per addestrare i modelli con più etichette per immagine e i punteggi risultanti sono più difficili da interpretare.
- Il modello funziona meglio quando ci sono al massimo 100 volte più immagini per l' etichetta più comune che per l'etichetta meno comune. Ti consigliamo di rimuovere le 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 set di dati di fiori includi immagini di fiori al di fuori delle varietà etichettate, ed etichettale come None_of_the_above.
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.
File dello schema YAML
Utilizza il seguente file dello schema accessibile pubblicamente per importare le annotazioni di classificazione delle immagini con più etichette. Questo file dello schema determina il formato dei file di input dei dati. La struttura di questo file segue lo schema OpenAPI.
File dello 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
JSON Lines
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 sui campi:
imageGcsUri: l'unico campo obbligatorio.annotationResourceLabels: può contenere un numero qualsiasi di coppie chiave-valore di stringhe. L'unica coppia chiave-valore riservata dal sistema è la seguente:- "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 qualsiasi di coppie chiave-valore di stringhe. L'unica coppia chiave-valore riservata dal sistema è la seguente, che specifica il set di utilizzo di machine learning dell' elemento di dati:- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Esempio di JSON Lines - 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]
ML_USE(facoltativo) - Per scopi di suddivisione dei dati durante l'addestramento di un modello. Utilizza TRAINING, TEST o VALIDATION. Per saperne di più 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 dell'immagine. Gli URI Cloud Storage fanno distinzione tra maiuscole e minuscole.LABEL(facoltativo) - Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi.
Esempio di 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
...