Les sections suivantes fournissent des informations sur les exigences de données, les fichiers de schéma et le format des fichiers d'importation de données (JSONL et CSV) définis par le schéma.
Vous pouvez également importer des vidéos non annotées et les annoter ultérieurement à l'aide de la console Google Cloud (consultez la section Ajouter des étiquettes à l'aide de la console Google Cloud).
Exigences en matière de données
Les exigences suivantes s'appliquent aux ensembles de données utilisés pour entraîner des modèles AutoML ou des modèles personnalisés.
Vertex AI accepte les formats vidéo suivants pour entraîner votre modèle ou demander une prédiction (annotation d'une vidéo).
- .MOV
- .MPEG4
- .MP4
- .AVI
Pour afficher le contenu vidéo dans la console Web ou annoter une vidéo, vous devez utiliser un format compatible avec le navigateur. Étant donné que tous les navigateurs ne gèrent pas le contenu .MOV ou .AVI en mode natif, nous vous recommandons d'utiliser le format vidéo .MPEG4 ou .MP4.
La taille maximale du fichier est de 50 Go (durée maximale de 3 heures). Tous les fichiers vidéo dont les horodatages sont incorrects ou vides dans le conteneur ne sont pas acceptés.
Le nombre maximal d'étiquettes dans chaque ensemble de données est limité à 1 000.
Vous pouvez attribuer des étiquettes "ML_USE" aux vidéos des fichiers d'importation. Au moment de l'entraînement, vous pouvez choisir d'utiliser ces étiquettes pour scinder les vidéos et leurs annotations correspondantes en ensembles d'entraînement ou de test. Pour la classification des vidéos, tenez compte des points suivants :
- Au moins deux classes différentes sont requises pour entraîner un modèle. Par exemple, "news" et "MTV", ou "game" et "others".
- Pensez à inclure une classe "None_of_the_above" et des segments vidéo qui ne correspondent à aucune de vos classes définies.
Bonnes pratiques en termes de données vidéo utilisées afin d'entraîner des modèles AutoML
Les pratiques suivantes s'appliquent aux ensembles de données utilisés pour entraîner les modèles AutoML.
Les données d'entraînement doivent être aussi proches que possible des données sur lesquelles les prédictions sont fondées. Par exemple, si votre cas pratique implique des vidéos floues en basse résolution (comme celles d'une caméra de sécurité), vos données d'entraînement doivent être composées de vidéos floues à basse résolution. En général, il est également recommandé de fournir différents types d'angles, de résolutions et d'arrière-plans pour les vidéos d'entraînement.
Les modèles Vertex AI ne sont généralement pas capables de prédire les étiquettes qu'un humain ne serait pas en mesure d'attribuer. Ainsi, si un humain ne peut pas apprendre à attribuer des étiquettes en regardant la vidéo pendant 1 à 2 secondes, le modèle ne pourra probablement pas être entraîné à le faire non plus.
Le modèle fonctionne mieux lorsqu'il existe au maximum 100 fois plus de vidéos pour l'étiquette la plus courante que pour la plus rare. Nous vous recommandons de supprimer les libellés les moins fréquents. En ce qui concerne la classification des vidéos, le nombre de vidéos d'entraînement recommandé par étiquette est d'environ 1 000. Le nombre minimal de vidéos requis par étiquette est de 10, ou de 50 pour les modèles avancés. En général, l'entraînement de modèles avec plusieurs étiquettes par vidéo nécessite davantage d'exemples par étiquette, et les scores obtenus sont plus difficiles à interpréter.
Fichiers de schéma
Lors de la création du fichier jsonl pour l'importation d'annotations, utilisez le fichier de schéma accessible au public suivant. Ce fichier de schéma détermine le format des fichiers de données d'entrée. La structure du fichier suit le test du schéma OpenAPI.
Fichier de schéma de la classification de vidéos :
gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml
Fichier de schéma complet
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
Fichiers d'entrée
Vos données d'entraînement pour la classification de vidéos doivent respecter les formats ci-après.
Pour importer vos données, créez un fichier JSONL ou CSV.
JSONL
Une expression JSON sur chaque ligne :
Pour en savoir plus, consultez la section Schéma de classification (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" } }
Exemple JSONL : classification de vidéos :
{"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 d'une ligne dans le fichier CSV :
[ML_USE,]VIDEO_URI,LABEL,START,END
Liste des colonnes
-
ML_USE
(Facultatif). Pour la répartition des données lors de l'entraînement d'un modèle. Utilisez TRAINING ou TEST. VIDEO_URI
. Ce champ contient l'URI Cloud Storage de la vidéo. Les URI Cloud Storage sont sensibles à la casse.LABEL
. Les étiquettes doivent commencer par une lettre et ne contenir que des lettres, des chiffres et des traits de soulignement. Vous pouvez spécifier plusieurs étiquettes pour une vidéo en ajoutant plusieurs lignes dans le fichier CSV, chacune identifiant la même séquence vidéo, avec une étiquette différente pour chaque ligne.START,END
. Ces deux colonnes, START et END, identifient respectivement les heures de début et de fin, exprimées en secondes, de la séquence vidéo à analyser. L'heure de début doit être inférieure à l'heure de fin. Les deux valeurs doivent être positives et comprises dans la plage de temps de la vidéo. Exemple :0.09845,1.36005
. Pour utiliser l'intégralité du contenu de la vidéo, spécifiez une heure de début de0
et une heure de fin égale à la durée totale de la vidéo, ou bien la valeur "inf". Exemple :0,inf
.
Exemple CSV : classification à l'aide d'une seule étiquette
Une seule étiquette sur la même séquence vidéo :
TRAINING,gs://YOUR_VIDEO_PATH/vehicle.mp4,mustang,0,5.4 ...
Exemple CSV : étiquettes multiples :
Plusieurs étiquettes sur la même séquence vidéo :
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 ...
Exemple CSV : aucun libellé :
Vous pouvez également fournir des vidéos dans le fichier de données sans spécifier d'étiquette. Vous devez ensuite utiliser la console Google Cloud pour appliquer des étiquettes à vos données avant d'entraîner le modèle. Pour ce faire, il vous suffit de fournir l'URI Cloud Storage de la vidéo, suivi de trois virgules, comme indiqué dans l'exemple suivant.
gs://YOUR_VIDEO_PATH/vehicle.mp4,,, ...