La seguente sezione relativa agli obiettivi include informazioni sui requisiti dei dati, sul file dello schema di input/output e sul 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.
Rilevamento di oggetti
Requisiti dei dati
| Requisiti generali delle immagini | |
|---|---|
| Tipi di file supportati |
|
| Tipi di immagini | I modelli AutoML sono ottimizzati per le fotografie di oggetti nel mondo reale. |
| Dimensioni del file immagine di addestramento (MB) | Dimensioni massime di 30 MB. |
| Dimensioni del file immagine di previsione* (MB) | Dimensioni massime di 1,5 MB. |
| Dimensioni dell'immagine (pixel) | Dimensioni massime consigliate di 1024 x 1024 pixel. Per le immagini molto più grandi di 1024 x 1024 pixel, la qualità dell'immagine potrebbe essere compromessa durante il processo di normalizzazione delle immagini di Vertex AI. |
| Requisiti per etichette e riquadri di delimitazione | |
|---|---|
| I seguenti requisiti si applicano ai set di dati utilizzati per addestrare i modelli AutoML. | |
| Istanze di etichette per l'addestramento | Minimo 10 annotazioni (istanze). |
| Requisiti per le annotazioni | Per ogni etichetta devi avere almeno 10 immagini, ognuna con almeno un'annotazione (riquadro di delimitazione ed etichetta). Tuttavia, ai fini dell'addestramento del modello, ti consigliamo di utilizzare circa 1000 annotazioni per etichetta. In generale, più immagini per etichetta hai, migliori saranno le prestazioni del modello. |
| Rapporto tra le etichette (etichetta più comune ed etichetta meno comune): | Il modello funziona meglio quando ci sono al massimo 100 volte più immagini per l' etichetta più comune che per l'etichetta meno comune. Per migliorare le prestazioni del modello, si consiglia di rimuovere le etichette con frequenza molto bassa. |
| Lunghezza del bordo del riquadro di delimitazione | Almeno 0,01 * la lunghezza di un lato di un'immagine. Ad esempio, un'immagine di 1000 x 900 pixel richiederebbe riquadri di delimitazione di almeno 10 x 9 pixel. Dimensioni minime del riquadro di delimitazione: 8 x 8 pixel. |
| I seguenti requisiti si applicano ai set di dati utilizzati per addestrare i modelli AutoML o addestrati personalizzati. | |
| Riquadri di delimitazione per immagine distinta | Massimo 500. |
| Riquadri di delimitazione restituiti da una richiesta di previsione | 100 (valore predefinito), massimo 500. |
| Requisiti per i dati di addestramento e il set di dati | |
|---|---|
| I seguenti requisiti si applicano ai set di dati utilizzati per addestrare i modelli AutoML. | |
| Caratteristiche delle immagini di addestramento | I dati di addestramento devono essere il più possibile simili ai dati su cui devono essere effettuate le previsioni. Ad esempio, se il tuo caso d'uso riguarda 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. |
| Pre-elaborazione interna delle immagini | Dopo l'importazione delle immagini, Vertex AI esegue la pre-elaborazione dei dati. Le immagini pre-elaborate sono i dati effettivi utilizzati per addestrare il modello. La pre-elaborazione delle immagini (ridimensionamento) si verifica quando il bordo più piccolo dell'immagine è maggiore di 1024 pixel. Se il lato più piccolo dell'immagine è maggiore di 1024 pixel, quel lato più piccolo viene ridimensionato a 1024 pixel. Il lato più grande e specificati riquadri di delimitazione vengono entrambi ridimensionati della stessa quantità del lato più piccolo. Di conseguenza, le annotazioni ridimensionate (riquadri di delimitazione ed etichette) vengono rimosse se sono inferiori a 8 x 8 pixel. Le immagini con un lato più piccolo inferiore o uguale a 1024 pixel non sono soggette al ridimensionamento della pre-elaborazione. |
| I seguenti requisiti si applicano ai set di dati utilizzati per addestrare i modelli AutoML o addestrati personalizzati. | |
| Immagini in ogni set di dati | Massimo 150.000 |
| Numero totale di riquadri di delimitazione annotati in ogni set di dati | Massimo 1.000.000 |
| Numero di etichette in ogni set di dati | Minimo 1, massimo 1000 |
File dello schema YAML
Utilizza il seguente file dello schema accessibile pubblicamente per importare le annotazioni di rilevamento di oggetti nelle immagini (riquadri di delimitazione ed etichette). 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_bounding_box_io_format_1.0.0.yaml
File dello schema 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
File di input
JSON Lines
JSON su ogni riga:
{
"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"
}
}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 - 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]*
ML_USE(facoltativo). Ai fini della suddivisione dei dati durante l'addestramento di un modello. Utilizza 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 dell'immagine. Gli URI Cloud Storage fanno distinzione tra maiuscole e minuscole.LABEL. Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi.BOUNDING_BOX. Un riquadro di delimitazione per un oggetto nell'immagine. La specifica di un riquadro di delimitazione coinvolge più di una colonna.

A.X_MIN,Y_MIN
B.X_MAX,Y_MIN
C.X_MAX,Y_MAX
D.X_MIN,Y_MAX
Ogni vertice è specificato dai valori delle coordinate x e y. Le coordinate sono valori float normalizzati [0,1]; 0,0 è X_MIN o Y_MIN, 1,0 è X_MAX o Y_MAX.
Ad esempio, un riquadro di delimitazione per l'intera immagine viene espresso come (0.0,0.0,,,1.0,1.0,,) o (0.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0).
Il riquadro di delimitazione per un oggetto può essere specificato in uno dei due modi seguenti:
- Due vertici (due insiemi di coordinate x,y) che sono punti diagonalmente opposti del
il rettangolo:
A.X_MIN,Y_MIN
C.X_MAX,Y_MAX
come mostrato in questo esempio:
A,,C,
X_MIN,Y_MIN,,,X_MAX,Y_MAX,, - Tutti e quattro i vertici specificati come mostrato in:
X_MIN,Y_MIN,X_MAX,Y_MIN, X_MAX,Y_MAX,X_MIN,Y_MAX,
Se i quattro vertici specificati non formano un rettangolo parallelo ai bordi dell'immagine, Vertex AI specifica i vertici che formano un rettangolo di questo tipo.
- Due vertici (due insiemi di coordinate x,y) che sono punti diagonalmente opposti del
il rettangolo:
Esempio di 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,,
...