Preparare i dati di addestramento video per la classificazione

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina descrive come preparare i dati di addestramento video da utilizzare in un set di dati Vertex AI per addestrare un modello di classificazione video.

Le seguenti sezioni forniscono informazioni sui requisiti dei dati, i file di schema e il formato dei file di importazione dati (JSONL e amp; CSV) definiti dello schema.

In alternativa, puoi importare i video che non sono stati annotati e annotarli in un secondo momento utilizzando Google Cloud Console (vedi Etichettatura utilizzando Google Cloud Console).

Requisiti dei dati

I seguenti requisiti si applicano ai set di dati utilizzati per addestrare AutoML o i modelli addestrati personalizzati.

  • Vertex AI supporta i seguenti formati video per addestrare il modello o richiedere una previsione (annotazione di un video).

    • .MOV
    • .MPEG4
    • .MP4
    • .AVI
  • Per visualizzare i contenuti video nella console web o per annotare un video, il video deve essere in un formato supportato dal tuo 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 è di 50 GB (fino a 3 ore di durata). I singoli file video con timestamp non corretti o vuoti nel contenitore non sono supportati.

  • Il numero massimo di etichette in ogni set di dati è limitato a 1000.

  • Puoi assegnare etichette "ML_USE" ai video nei file importati. Al momento della formazione, puoi scegliere di utilizzare le etichette per suddividere i video e le annotazioni corrispondenti in set di "addestramento" o "test". Per la classificazione dei video, tieni presente quanto segue:

    • Per l'addestramento del modello sono necessarie almeno due classi diverse. Ad esempio, "notizie" e "MTV", o "gioco" e "altri".
    • Valuta la possibilità di includere un'espressione di tipo "nessuna_delle_sopra_classi" e segmenti video che non corrisponda a nessuna delle classi definite.

Best practice per i dati video utilizzati per addestrare modelli AutoML

Le seguenti pratiche si applicano ai set di dati utilizzati per addestrare i modelli AutoML.

  • I dati di addestramento dovrebbero essere il più vicini possibile a quelli su cui fare previsioni. Ad esempio, se il tuo caso d'uso riguarda video sfocati e a bassa risoluzione (ad esempio quelli di una videocamera di sicurezza), i dati di addestramento devono essere costituiti da video sfocati a bassa risoluzione. In generale, considera anche l'idea di fornire più angolazioni, risoluzioni e sfondi per i tuoi video di formazione.

  • I modelli di Vertex AI in genere non possono prevedere etichette che gli esseri umani non possono assegnare. Se un essere umano non può essere addestrato per assegnare etichette guardando il video per 1-2 secondi, è probabile che il modello non possa essere addestrato per farlo.

  • Il modello funziona al meglio quando ci sono al massimo 100 volte più video per l'etichetta più comune rispetto per l'etichetta meno comune. Ti consigliamo di rimuovere le etichette a bassa 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, occorrono 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 schema accessibile pubblicamente quando crei il file JSON per importare le annotazioni. Questo file schema determina il formato dei file di input di dati. La struttura del file segue il test OpenAPI Schema.

    File dello schema di classificazione video:

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

    File 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 video è il seguente.

Per importare i dati, crea un file JSONL o CSV.

JSONL

JSON su ogni riga:
Per informazioni dettagliate, 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 JSONL - Classificazione 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

  1. ML_USE (Facoltativo) Ai fini della suddivisione dei dati durante l'addestramento di un modello. Utilizza FORMAZIONE o TEST.
  2. VIDEO_URI. Questo campo contiene l'URI Cloud Storage del video. Gli URI Cloud Storage sono sensibili alle maiuscole.
  3. LABEL. Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi. Puoi specificare più etichette per un video aggiungendo più righe nel file CSV in modo che identifichino lo stesso segmento video, con un'etichetta diversa per ogni riga.
  4. START,END. Le due colonne, START e END, rispettivamente, identificano in secondi e ora di inizio e di fine del segmento video. L'ora di inizio deve essere successiva all'ora di fine. Entrambi i valori devono essere non negativi e devono rientrare nell'intervallo di tempo del video. Ad esempio, 0.09845,1.36005. Per utilizzare tutti i contenuti del video, specifica un'ora di inizio pari a 0 e un'ora di fine per l'intera durata del video o "inf". Ad esempio: 0,inf.

Esempio CSV: classificazione con una singola etichetta

Etichetta singola dello stesso segmento video:

TRAINING,gs://YOUR_VIDEO_PATH/vehicle.mp4,mustang,0,5.4
...

Esempio di file CSV - più etichette:

Più etichette per lo stesso segmento di 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 - nessuna etichetta:

Puoi anche fornire video nel file di dati senza specificare alcuna etichetta. Devi quindi utilizzare Google Cloud Console per applicare le etichette ai dati prima di addestrare il modello. Per farlo, ti basta fornire l'URI Cloud Storage del video seguito da tre virgole, come mostrato nell'esempio seguente.

gs://YOUR_VIDEO_PATH/vehicle.mp4
...