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 dati (JSON Lines e CSV) definiti dallo schema.
Rilevamento di oggetti
Requisiti dei dati
Requisiti generali delle immagini | |
---|---|
Tipi di file supportati |
|
Tipi di immagini | I modelli AutoML sono ottimizzati per fotografie di oggetti nel mondo reale. |
Dimensioni del file immagine di addestramento (MB) | Dimensione massima 30 MB. |
Dimensioni file immagine di previsione* (MB) | Dimensione massima 1,5 MB. |
Dimensioni immagine (pixel) | Valore massimo suggerito di 1024 x 1024 pixel. Nel caso di immagini molto più grandi di 1024 x 1024 pixel, è possibile che una parte della qualità dell'immagine vada persa durante il processo di normalizzazione delle immagini di Vertex AI. |
Requisiti relativi a etichette e riquadri di delimitazione | |
---|---|
I seguenti requisiti si applicano ai set di dati utilizzati per addestrare i modelli AutoML. | |
Etichetta le istanze per l'addestramento | Minimo 10 annotazioni (istanze). |
Requisiti per le annotazioni | Per ogni etichetta devi avere almeno 10 immagini, ciascuna con almeno un'annotazione (riquadro di delimitazione e l'etichetta). Tuttavia, a scopo di addestramento dei modelli, è consigliabile utilizzare circa 1000 annotazioni per etichetta. In generale, più immagini per etichetta hai, migliori le prestazioni del modello. |
Rapporto etichetta (l'etichetta più comune rispetto all'etichetta meno comune): | Il modello funziona meglio quando ci sono al massimo 100 volte più immagini per l'etichetta più comune rispetto all'etichetta meno comune. Per le prestazioni del modello, consigliamo di rimuovere le etichette di frequenza molto bassa. |
Lunghezza bordo riquadro di delimitazione | Almeno 0,01 * lunghezza di un lato di un'immagine. Ad esempio, un'immagine di 1000 * 900 pixel richiederebbe riquadri di delimitazione di almeno 10 * 9 pixel. Dimensioni minime del riquadro associato: 8 pixel per 8 pixel. |
I seguenti requisiti si applicano ai set di dati utilizzati per addestrare AutoML o a modelli con addestramento personalizzato. | |
Riquadri di delimitazione per immagine distinta | Massimo 500. |
Riquadri di delimitazione restituiti da una richiesta di previsione | 100 (predefinito), massimo 500. |
Requisiti per i set di dati e i dati di addestramento | |
---|---|
I seguenti requisiti si applicano ai set di dati utilizzati per addestrare i modelli AutoML. | |
Caratteristiche dell'immagine di addestramento | I dati di addestramento devono essere il più possibile simili a quelli sui quali eseguire le previsioni. Ad esempio, se il tuo caso d'uso prevede immagini sfocate e a bassa risoluzione (come quelle di una videocamera di sicurezza), i dati di addestramento dovrebbero essere composti da immagini sfocate e a bassa risoluzione. In generale, dovresti anche fornire più angolazioni, risoluzioni e sfondi per le immagini di addestramento. In genere, i modelli di Vertex AI non sono in grado di prevedere etichette che gli esseri umani non possono assegnare. Quindi, se non è possibile addestrare un essere umano ad assegnare etichette guardando l'immagine per 1-2 secondi, è probabile che anche il modello non possa essere addestrato a farlo. |
Pre-elaborazione interna dell'immagine | Una volta importate le 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 (ridimensionamento) dell'immagine si verifica quando il bordo più piccolo dell'immagine è maggiore di 1024 pixel. Nel caso in cui il lato più piccolo dell'immagine sia superiore a 1024 pixel, il lato più piccolo viene ridimensionato a 1024 pixel. Il lato più grande e i riquadri di delimitazione specificati vengono entrambi ridimensionati della stessa quantità del lato più piccolo. Di conseguenza, eventuali annotazioni ridotte (riquadri di delimitazione ed etichette) vengono rimosse se sono inferiori a 8 pixel per 8 pixel. Le immagini con un lato più piccolo inferiore o uguale a 1024 pixel non sono soggette al ridimensionamento di pre-elaborazione. |
I seguenti requisiti si applicano ai set di dati utilizzati per addestrare AutoML o a modelli con addestramento personalizzato. | |
Immagini in ogni set di dati | Massimo 150.000 |
Riquadri di delimitazione annotati totali in ogni set di dati | Massimo 1.000.000 |
Numero di etichette in ogni set di dati | Minimo 1, massimo 1000 |
File YAML schema
Utilizza il seguente file di schema accessibile pubblicamente per importare le annotazioni di rilevamento di oggetti immagine (riquadri di delimitazione ed etichette). Questo file di schema determina il formato dei file di input dei dati. La struttura di questo file è conforme allo schema OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml
File di 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
Righe JSON
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 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 è la seguente:- "aiplatform.googleapis.com/annotation_set_name" : "value"
Dove value è uno dei nomi visualizzati degli set di annotazioni esistenti nel set di dati.
dataItemResourceLabels
: può contenere un numero illimitato di coppie chiave-valore. L'unica coppia chiave-valore prenotata dal sistema è la seguente, che specifica il set di utilizzo dell'elemento di dati per il machine learning:- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Esempio di righe JSON - 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]*Elenco di colonne
ML_USE
(facoltativo). Ai fini della suddivisione dei dati durante l'addestramento di un modello. Utilizza FORMAZIONE, TEST o CONVALIDA. 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 sono sensibili alle maiuscole.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 interessa più di una colonna.
R.X_MIN
,Y_MIN
B.X_MAX
,Y_MIN
C.X_MAX
,Y_MAX
D.X_MIN
,Y_MAX
Ogni vertice è specificato da valori delle coordinate x e y. Le coordinate sono valori in virgola mobile 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 è 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 di un oggetto può essere specificato in due modi:
- Due vertici (due coppie di coordinate x,y) che sono punti diagonalmente opposti del 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 lo formano.
- Due vertici (due coppie di coordinate x,y) che sono punti diagonalmente opposti del rettangolo:
CSV di esempio - 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,, ...