Le sezioni seguenti forniscono informazioni sui requisiti dei dati, file di schema e il formato dei file di importazione dati (JSONL e CSV) definita dallo schema.
In alternativa, puoi importare i video non annotati e annotarli in un secondo momento utilizzando la console Google Cloud (consulta Etichettatura tramite la console Google Cloud).
Requisiti dei dati
I seguenti requisiti si applicano ai set di dati utilizzati per addestrare i modelli AutoML o con addestramento personalizzato.
Vertex AI supporta i seguenti formati video per l'addestramento del modello o la richiesta di una previsione (annotazione di un video).
- .MOV
- .MPEG4
- .MP4
- .AVI
Per visualizzare i contenuti video nella console web o aggiungere annotazioni a un video, il video deve essere in un formato supportato nativamente dal browser. Poiché non tutti i browser gestiscono i contenuti .MOV o .AVI in modo nativo, consigliamo di utilizzare il formato video .MPEG4 o .MP4.
La dimensione massima del file è 50 GB (fino a 3 ore di durata). I singoli file video con timestamp non validi o vuoti nel contenitore non sono supportati.
Il numero massimo di etichette in ogni set di dati è limitato a 1000.
Puoi assegnare le etichette "ML_USE" ai video nei file di importazione. Al momento dell'addestramento, puoi scegliere di utilizzare queste etichette per suddividere i video e le relative annotazioni in set di "addestramento" o "test". Per la classificazione dei video, tieni presente quanto segue:
- Per l'addestramento del modello sono necessari almeno due classi diverse. Per ad esempio "notizie" e "MTV" o "gioco" e "altri".
- Valuta la possibilità di includere una classe "Nessuna_delle_opzioni_sopra" e segmenti video che non corrispondono a nessuna delle classi definite.
Best practice per i dati video utilizzati per addestrare i modelli AutoML
Le seguenti pratiche si applicano ai set di dati utilizzati per addestrare AutoML di grandi dimensioni.
I dati di addestramento devono essere il più possibile simili ai dati su cui è necessario fare previsioni. Ad esempio, se il tuo caso d'uso prevede immagini sfocate video a bassa risoluzione (ad esempio quelli di una videocamera di sicurezza), i dati di addestramento deve essere composto da video sfocati e a bassa risoluzione. In generale, ti consigliamo anche di fornire più angolazioni, risoluzioni e sfondi per i tuoi video di formazione.
In genere, i modelli Vertex AI non possono prevedere etichette che gli esseri umani non possono assegnare. Se un essere umano non può essere addestrato ad assegnare le etichette esaminando il per 1-2 secondi, probabilmente nemmeno il modello può essere addestrato per farlo.
Il modello funziona al meglio quando ci sono al massimo 100 volte più video per l'etichetta più comune rispetto a quella meno comune. Ti consigliamo di rimuovere le etichette di frequenza. Per la classificazione dei video, il numero consigliato di video di addestramento per etichetta è di circa 1000. Il numero minimo per etichetta è 10 o 50 per i modelli avanzati. In generale, sono necessari più esempi per etichetta per addestrare modelli con più etichette per video e i punteggi risultanti sono più difficili da interpretare.
File di schema
Utilizza il seguente file dello schema accessibile pubblicamente quando crei il file JSONL per l'importazione delle annotazioni. Questo file di schema indica il formato i file di input dei dati. La struttura del file segue il test dello schema OpenAPI.
File di schema di classificazione dei video:
gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml
File di schema completo
title: VideoClassification description: > Import and export format for importing/exporting videos together with classification annotations with time segment. Can be used in Dataset.import_schema_uri field. type: object required: - videoGcsUri properties: videoGcsUri: type: string description: > A Cloud Storage URI pointing to a video. Up to 50 GB in size and up to 3 hours in duration. Supported file mime types: `video/mp4`, `video/avi`, `video/quicktime`. timeSegmentAnnotations: type: array description: > Multiple classification annotations. Each on a time segment of the video. items: type: object description: Annotation with a time segment on media (e.g., video). properties: displayName: type: string description: > It will be imported as/exported from AnnotationSpec's display name. startTime: type: string description: > The start of the time segment. Expressed as a number of seconds as measured from the start of the video, with "s" appended at the end. Fractions are allowed, up to a microsecond precision. default: 0s endTime: type: string description: > The end of the time segment. Expressed as a number of seconds as measured from the start of the video, with "s" appended at the end. Fractions are allowed, up to a microsecond precision, and "Infinity" is allowed, which corresponds to the end of the video. default: Infinity 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
Il formato dei dati di addestramento per la classificazione dei video è il seguente.
Per importare i dati, crea un file JSONL o CSV.
JSONL
JSON su ogni riga:
Per maggiori dettagli, consulta il file Schema di classificazione (globale).
{ "videoGcsUri": "gs://bucket/filename.ext", "timeSegmentAnnotations": [{ "displayName": "LABEL", "startTime": "start_time_of_segment", "endTime": "end_time_of_segment" }], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "train|test" } }
Esempio di JSONL: classificazione dei video:
{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} ...
CSV
Formato di una riga nel file CSV:
[ML_USE,]VIDEO_URI,LABEL,START,END
Elenco di colonne
-
ML_USE
(Facoltativo). Per la suddivisione dei dati durante l'addestramento un modello. Usa TRAINING o TEST. VIDEO_URI
. Questo campo contiene l'URI Cloud Storage del video. Gli URI Cloud Storage sono sensibili alle maiuscole.LABEL
. Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi. Puoi specificare più etichette per un video aggiungendo nel file CSV più righe che identificano il stesso segmento video, con un'etichetta diversa per ogni riga.START,END
. Queste due colonne, START e END, identifica rispettivamente l'ora di inizio e quella di fine del segmento video analizzare in pochi secondi. L'ora di inizio deve essere inferiore all'ora di fine. Entrambi i valori devono essere non negativi e rientrare nell'intervallo di tempo del video. Ad esempio,0.09845,1.36005
. Per utilizzare l'intero contenuto del video, specifica un'ora di inizio pari a0
e un'ora di fine pari alla durata completa del video o "inf". Ad esempio:0,inf
.
CSV di esempio: classificazione con etichetta singola
Etichetta singola nello stesso segmento video:
TRAINING,gs://YOUR_VIDEO_PATH/vehicle.mp4,mustang,0,5.4 ...
CSV di esempio - più etichette:
Etichete multiple nello stesso segmento video:
gs://YOUR_VIDEO_PATH/vehicle.mp4,fiesta,0,8.285 gs://YOUR_VIDEO_PATH/vehicle.mp4,ranger,0,8.285 gs://YOUR_VIDEO_PATH/vehicle.mp4,explorer,0,8.285 ...
CSV di esempio - senza etichette:
Puoi anche fornire i video nel file di dati senza specificare alcuna etichetta. Poi dovrai utilizzare la console Google Cloud per applicare le etichette i dati prima di addestrare il modello. Per farlo, devi solo fornisci l'URI Cloud Storage del video seguito da tre virgole, come mostrato nell'esempio seguente.
gs://YOUR_VIDEO_PATH/vehicle.mp4,,, ...