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
-
ML_USE
(Optional). Zum Aufteilen von Daten beim Trainieren eines Modells. Verwenden Sie TRAINING oder TEST. VIDEO_URI
. Dieses Feld enthält den Cloud Storage-URI für das Video. Bei Cloud Storage-URIs wird zwischen Groß- und Kleinschreibung unterschieden.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.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 von0
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,,, ...