Videotrainingsdaten für die Klassifizierung vorbereiten

Auf dieser Seite wird beschrieben, wie Sie Videotrainingsdaten zur Verwendung in einem Vertex AI-Dataset vorbereiten, um ein Videoklassifizierungsmodell zu trainieren.

Die folgenden Abschnitte enthalten Informationen zu Datenanforderungen, Schemadateien und dem Format der Datenimportdateien ( JSONL& CSV), die vom Schema definiert werden.

Alternativ können Sie Videos, die noch nicht annotiert wurden, importieren und später mit der Google Cloud Console annotieren (siehe Labels mit der Google Cloud Console erstellen).

Datenanforderungen

Die folgenden Anforderungen gelten für Datasets, die zum Trainieren von AutoML- oder benutzerdefinierten Modellen verwendet werden.

  • Vertex AI unterstützt die folgenden Videoformate, um Ihr Modell zu trainieren oder eine Vorhersage anzufordern (annotieren eines Videos).

    • .MOV
    • .MPEG4
    • .MP4
    • .AVI
  • Wenn Sie sich die Videoinhalte in der Webkonsole ansehen oder ein Video annotieren möchten, muss das Video in einem Format vorliegen, das von Ihrem Browser nativ unterstützt wird. Da MOV- oder AVI-Inhalte nicht von allen Browsern nativ verarbeitet werden, empfiehlt sich die Verwendung des Videoformats MPEG4 oder MP4.

  • Die maximale Dateigröße beträgt 50 GB (maximale Dauer von 3 Stunden). Einzelne Videodateien mit fehlerhaften oder leeren Zeitstempeln im Container werden nicht unterstützt.

  • Die maximale Anzahl von Labels in jedem Dataset ist derzeit auf 1.000 begrenzt.

  • Sie können den Videos in den Importdateien Labels vom Typ "ML_USE" zuweisen. Zur Trainingszeit können Sie diese Labels verwenden, um die Videos und die zugehörigen Annotationen in Trainings- oder Test-Datasets aufzuteilen. Beachten Sie zur Klassifizierung von Videos Folgendes:

    • Für das Modelltraining sind mindestens zwei verschiedene Klassen erforderlich. Zum Beispiel "Nachrichten" und "MTV" oder "Spiel" und "Andere".
    • Schließen Sie gegebenenfalls die Klasse „None_of_the_above“ und Videosegmente ein, die keiner Ihrer definierten Klassen entsprechen.

Best Practices für Videodaten zum Trainieren von AutoML-Modellen

Die folgenden Vorgehensweisen gelten für Datasets, die zum Trainieren von AutoML-Modellen verwendet werden.

  • Die Trainingsdaten sollten den Daten, für die Vorhersagen getroffen werden sollen, möglichst ähnlich sein. Wenn Ihr Anwendungsfall beispielsweise verschwommene Videos mit niedriger Auflösung (zum Beispiel von einer Überwachungskamera) beinhaltet, sollten Ihre Trainingsdaten aus verschwommenen Videos mit niedriger Auflösung bestehen. Sie sollten außerdem mehrere Blickwinkel, Auflösungen und Hintergründe für Ihre Trainingsvideos bereitstellen.

  • Vertex-KI-Modelle können in der Regel keine Labels vorhersagen, die von Menschen nicht zugewiesen werden können. Wenn bei einem bestimmten Video ein Mensch nicht fähig wäre, nach einer oder zwei Sekunden Betrachtung ein Label zuzuweisen, kann Ihr Modell höchstwahrscheinlich auch nicht dafür trainiert werden.

  • Das Modell funktioniert am besten, wenn für das am häufigsten verwendete Label höchstens 100-mal mehr Videos vorhanden sind als für das am wenigsten verwendete Label. Es wird empfohlen, Labels mit geringer Häufigkeit zu entfernen. Für die Videoklassifizierung beträgt die empfohlene Anzahl an Trainingsvideos pro Label etwa 1.000. Die Mindestanzahl pro Label ist 10, für fortgeschrittene Modelle liegt sie bei 50. Im Allgemeinen sind mehr Beispiele pro Label nötig, um Modelle mit mehreren Labels pro Video zu trainieren. Die Konfidenzwerte sind dann schwieriger zu interpretieren.

Schemadateien

  • Verwenden Sie beim Erstellen der JSONL-Datei zum Importieren von Annotationen die folgende öffentlich zugängliche Schemadatei. Diese Schemadatei bestimmt das Format der Dateneingabedateien. Die Struktur der Datei folgt dem OpenAPI-Schematest.

    Schemadatei zur Klassifizierung von Videos:

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

    Vollständige Schemadatei

    
    
    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
    

Eingabedateien

Das Format Ihrer Trainingsdaten für die Videoklassifizierung sieht so aus:

Erstellen Sie zum Importieren Ihrer Daten entweder eine JSONL- oder eine CSV-Datei.

JSONL

JSON in jeder Zeile:
Weitere Informationen finden Sie in der Datei für das Klassifizierungsschema (global).



{
	"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"
	}
}

Beispiel für JSONL– Videoklassifizierung:



{"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

Format einer Zeile in der CSV-Datei:

[ML_USE,]VIDEO_URI,LABEL,START,END

Liste der Spalten

  1. ML_USE (Optional). Zum Aufteilen von Daten beim Trainieren eines Modells. Verwenden Sie TRAINING oder TEST.
  2. VIDEO_URI. Dieses Feld enthält den Cloud Storage-URI für das Video. Bei Cloud Storage-URIs wird zwischen Groß- und Kleinschreibung unterschieden.
  3. LABEL. Labels müssen mit einem Buchstaben beginnen und dürfen nur Buchstaben, Zahlen und Unterstriche enthalten. Sie können mehrere Labels für ein Video festlegen. Dazu müssen Sie in der CSV-Datei mehrere Zeilen hinzufügen, die jeweils dasselbe Videosegment mit einem anderen Label kennzeichnen.
  4. START,END. Diese beiden Spalten START und ENDE geben jeweils die Start- und Endzeit des zu analysierenden Videosegments an. Die Startzeit muss kleiner sein als die Endzeit. Beide Werte dürfen nicht negativ sein und müssen innerhalb des Zeitbereichs des Videos liegen. Beispiel: 0.09845,1.36005. Legen Sie eine Startzeit von 0 und eine Endzeit entsprechend der Länge des Videos oder "inf" fest, um den gesamten Inhalt des Videos verwenden zu können. Beispiel: 0,inf

Beispiel-CSV – Klassifizierung mit einem einzigen Label

Ein einziges Label im selben Videosegment:

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

Beispiel-CSV – mehrere Labels:

Mehrere Labels im selben Videosegment:

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
...

Beispiel-CSV – keine Labels:

Sie können Videos auch in der Datendatei bereitstellen, ohne Labels anzugeben. Anschließend müssen Sie mithilfe der Google Cloud Console Labels auf Ihre Daten anwenden, bevor Sie Ihr Modell trainieren. Dazu müssen Sie nur den Cloud Storage-URI für das Video gefolgt von drei Kommas angeben, wie im folgenden Beispiel gezeigt.

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