Classification des vidéos - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Classification des vidéos

Utilisez une tâche d'étiquetage de classification des vidéos Amazon SageMaker Ground Truth lorsque vous avez besoin de collaborateurs pour classer les vidéos à l'aide d'étiquettes prédéfinies que vous spécifiez. Des vidéos sont présentées aux employés et il leur est demandé de choisir une étiquette pour chaque vidéo.

Vous créez une tâche d'étiquetage de classification vidéo à l'aide de la section Ground Truth de la SageMaker console Amazon ou de l'CreateLabelingJobopération.

Vos fichiers vidéo doivent être encodés dans un format pris en charge par le navigateur utilisé par l'équipe de travail qui étiquette vos données. Il est recommandé de vérifier que tous les formats de fichiers vidéo de votre fichier manifeste source s'affichent correctement en utilisant la prévisualisation de l'interface utilisateur employé. Vous pouvez indiquer les navigateurs pris en charge à vos employés en utilisant les instructions pour les employés. Pour voir les formats de fichiers pris en charge, veuillez consulter Formats de données pris en charge.

Important

Pour ce type de tâche, si vous créez votre propre fichier manifeste, utilisez "source-ref" pour identifier l'emplacement dans Amazon S3 de chaque fichier vidéo que vous souhaitez étiqueter. Pour de plus amples informations, veuillez consulter Données d'entrée.

Créer une tâche d'étiquetage de classification vidéo (Console)

Vous pouvez suivre les instructions ci-dessous Création d'une tâche d'étiquetage (Console) pour savoir comment créer une tâche d'étiquetage de classification vidéo dans la SageMaker console. À l'étape 10, choisissez Vidéo dans la liste déroulante Catégorie de tâches, puis choisissez Classification vidéo comme type de tâche.

Ground Truth fournit une interface utilisateur employé similaire à la suivante pour l'étiquetage des tâches. Lorsque vous créez une tâche d'étiquetage dans la console, vous spécifiez des instructions pour aider les employés à effectuer la tâche et des étiquettes parmi lesquelles les employés peuvent choisir.

Gif montrant comment créer une tâche d'étiquetage de classification vidéo dans la SageMaker console.

Création d'une tâche d'étiquetage de classification vidéo (API)

Cette section couvre les détails que vous devez connaître lorsque vous créez une tâche d'étiquetage à l'aide de cette SageMaker API opérationCreateLabelingJob. Cela API définit cette opération pour tous AWS SDKs. Pour consulter la liste des langues spécifiques prises SDKs en charge pour cette opération, consultez la section Voir aussi de. CreateLabelingJob

Suivez les instructions présentées dans Création d'une tâche d'étiquetage (API) et procédez comme suit pour configurer votre demande :

  • Utilisez une fonction Lambda de pré-annotation qui se termine par PRE-VideoClassification. Pour trouver le ARN Lambda de pré-annotation pour votre région, consultez. PreHumanTaskLambdaArn

  • Utilisez une fonction Lambda de consolidation d'annotations qui se termine par ACS-VideoClassification. Pour trouver le Lambda de consolidation des annotations ARN pour votre région, consultez. AnnotationConsolidationLambdaArn

Voici un exemple de demande AWS Python SDK (Boto3) pour créer une tâche d'étiquetage dans la région USA Est (Virginie du Nord).

response = client.create_labeling_job( LabelingJobName='example-video-classification-labeling-job, LabelAttributeName='label', InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': 's3://bucket/path/manifest-with-input-data.json' } }, 'DataAttributes': { 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/file-to-store-output-data', 'KmsKeyId': 'string' }, RoleArn='arn:aws:iam::*:role/*, LabelCategoryConfigS3Uri='s3://bucket/path/label-categories.json', StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': 'arn:aws:sagemaker:region:*:workteam/private-crowd/*', 'UiConfig': { 'UiTemplateS3Uri': 's3://bucket/path/worker-task-template.html' }, 'PreHumanTaskLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoClassification', 'TaskKeywords': [ 'Video Classification', ], 'TaskTitle': 'Video classification task', 'TaskDescription': 'Select a label to classify this video', 'NumberOfHumanWorkersPerDataObject': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoClassification' }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

Fournir un modèle pour la classification des vidéos

Si vous créez une tâche d'étiquetage à l'aide duAPI, vous devez fournir un modèle de tâche de travail dansUiTemplateS3Uri. Copiez et modifiez le modèle suivant en modifiant short-instructions, full-instructions et header. Téléchargez ce modèle sur Amazon S3 et fournissez l'Amazon S3 URI à ce fichier dansUiTemplateS3Uri.

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-classifier name="crowd-classifier" categories="{{ task.input.labels | to_json | escape }}" header="Please classify video" > <classification-target> <video width="100%" controls/> <source src="{{ task.input.taskObject | grant_read_access }}" type="video/mp4"/> <source src="{{ task.input.taskObject | grant_read_access }}" type="video/webm"/> <source src="{{ task.input.taskObject | grant_read_access }}" type="video/ogg"/> Your browser does not support the video tag. </video> </classification-target> <full-instructions header="Video classification instructions"> <ol><li><strong>Read</strong> the task carefully and inspect the video.</li> <li><strong>Read</strong> the options and review the examples provided to understand more about the labels.</li> <li><strong>Choose</strong> the appropriate label that best suits the video.</li></ol> </full-instructions> <short-instructions> <h3><span style="color: rgb(0, 138, 0);">Good example</span></h3> <p>Enter description to explain the correct label to the workers</p> <p><img src="https://d7evko5405gb7.cloudfront.net/fe4fed9b-660c-4477-9294-2c66a15d6bbe/src/images/quick-instructions-example-placeholder.png" style="max-width:100%"></p> <h3><span style="color: rgb(230, 0, 0);">Bad example</span></h3> <p>Enter description of an incorrect label</p> <p><img src="https://d7evko5405gb7.cloudfront.net/fe4fed9b-660c-4477-9294-2c66a15d6bbe/src/images/quick-instructions-example-placeholder.png" style="max-width:100%"></p> </short-instructions> </crowd-classifier> </crowd-form>

Données de sortie de classification vidéo

Une fois que vous avez créé une tâche d'étiquetage de classification vidéo, vos données de sortie se trouvent dans le compartiment Amazon S3 spécifié dans le S3OutputPath paramètre lors de l'utilisation du API ou dans le champ Emplacement du jeu de données de sortie de la section Vue d'ensemble des tâches de la console.

Pour en savoir plus sur le fichier manifeste de sortie généré par Ground Truth et sur la structure de fichier que ce dernier utilise pour stocker vos données de sortie, veuillez consulter Données de sortie.

Pour accéder à un exemple de fichiers manifestes en sortie pour la tâche d'étiquetage de classification vidéo, veuillez consulter Sortie de la tâche de classification.