Présentation des tâches d'étiquetage de nuage de points 3D - Amazon SageMaker

Présentation des tâches d'étiquetage de nuage de points 3D

Cette rubrique fournit une présentation des fonctionnalités uniques d'une tâche d'étiquetage de nuage de points 3D Ground Truth. Vous pouvez utiliser les tâches d'étiquetage de nuage de points 3D pour que les collaborateurs étiquettent des objets d'un nuage de points 3D généré à partir d'un capteur 3D tel que des caméras LiDAR et des caméras de profondeur, ou généré à partir d'une reconstruction 3D en assemblant des images capturées par un agent tel qu'un drone.

Temps de prétraitement de la tâche

Lorsque vous créez une tâche d'étiquetage de nuage de points 3D, vous devez fournir un fichier manifeste d'entrée. Le fichier manifeste d'entrée peut être :

  • Un fichier manifeste d'entrée de trames qui a une trame de nuage de points unique sur chaque ligne.

  • Un fichier manifeste d'entrée de séquences qui a une seule séquence sur chaque ligne. Une séquence est définie comme une série temporelle de trames de nuage de points.

Pour les deux types de fichiers manifeste, le temps de prétraitement des tâches (c'est-à-dire le temps à l'issue duquel Ground Truth commence à envoyer les tâches à vos employés) dépend du nombre total et de la taille des trames de nuage de points que vous fournissez dans votre fichier manifeste source. Pour les fichiers manifestes d'entrée de trames, il s'agit du nombre de lignes dans votre fichier manifeste. Pour les fichiers manifestes de séquences, il s'agit du nombre de trames dans chaque séquence multiplié par le nombre total de séquences, ou de lignes, dans votre fichier manifeste.

En outre, le nombre de points par nuage de points et le nombre d'objets de données de capteurs fusionnés (comme les images) sont pris en compte dans les temps de prétraitement des tâches. En moyenne, Ground Truth peut prétraiter 200 trames de nuages de points en environ 5 minutes. Si vous créez une tâche d'étiquetage de nuage de points 3D avec un grand nombre de trames de nuage de points, vous risquez de rencontrer des temps de prétraitement des tâches plus longs. Par exemple, si vous créez un fichier manifeste source de séquences avec 4 séquences de nuages de points et que chaque séquence contient 200 nuages de points, Ground Truth prétraite 800 nuages de points et le temps de prétraitement de votre tâche peut donc être d'environ 20 minutes. Pendant ce temps, le statut de votre tâche d'étiquetage est InProgress.

Pendant le prétraitement de votre tâche d'étiquetage de nuage de points 3D, vous recevez des messages CloudWatch vous informant de l'état de votre tâche. Pour identifier ces messages, recherchez 3D_POINT_CLOUD_PROCESSING_STATUS dans vos journaux de tâches d'étiquetage.

Pour les fichiers manifestes source de trames, vos CloudWatch Logs contiendront un message similaire au suivant :

{ "labeling-job-name": "example-point-cloud-labeling-job", "event-name": "3D_POINT_CLOUD_PROCESSING_STATUS", "event-log-message": "datasetObjectId from: 0 to 10, status: IN_PROGRESS" }

Le message du journal des événements, datasetObjectId from: 0 to 10, status: IN_PROGRESS, identifie le nombre de trames de votre manifeste d'entrée qui ont été traitées. Vous recevez un nouveau message chaque fois qu'une nouvelle trame a été traitée. Par exemple, une fois qu'une trame unique a été traitée, vous recevez un autre message indiquant datasetObjectId from: 1 to 10, status: IN_PROGRESS.

Pour les fichiers manifestes source de séquences, vos CloudWatch Logs contiendront un message similaire au suivant :

{ "labeling-job-name": "example-point-cloud-labeling-job", "event-name": "3D_POINT_CLOUD_PROCESSING_STATUS", "event-log-message": "datasetObjectId: 0, status: IN_PROGRESS" }

Le message du journal des événements datasetObjectId from: 0, status: IN_PROGRESS identifie le nombre de séquences de votre manifeste d'entrée qui ont été traitées. Vous recevez un nouveau message chaque fois qu'une séquence a été traitée. Par exemple, une fois qu'une séquence unique a été traitée, vous recevez un message indiquant datasetObjectId from: 1, status: IN_PROGRESS comme la séquence suivante dont le traitement va commencer.

Durée de la tâche

Les tâches d'étiquetage de nuage de points 3D peuvent prendre des heures pour les collaborateurs. Vous pouvez définir la durée totale pendant laquelle les collaborateurs peuvent travailler sur chaque tâche lors de la création d'une tâche d'étiquetage. La durée maximale que vous pouvez définir pour le travail des collaborateurs sur des tâches est de 7 jours. La valeur par défaut est de 3 jours.

Il est fortement recommandé de créer des tâches que les collaborateurs pourront effectuer en 12 heures maximum. Les collaborateurs doivent garder l'interface utilisateur de travail ouverte pendant qu'ils travaillent sur une tâche. Ils peuvent enregistrer leur travail au fur et à mesure et Ground Truth enregistrera leur travail toutes les 15 minutes.

Lorsque vous utilisez l'opération CreateLabelingJob de l'API SageMaker, définissez la durée totale de disponibilité d'une tâche pour les employés dans le paramètre TaskTimeLimitInSeconds de HumanTaskConfig.

Lorsque vous créez une tâche d'étiquetage dans la console, vous pouvez spécifier cette limite de temps lorsque vous sélectionnez votre type de main-d'œuvre et votre équipe de travail.

Workforces

Lorsque vous créez une tâche d'étiquetage de nuage de points 3D, vous devez spécifier une équipe de travail qui effectuera vos tâches d'annotation de nuage de points. Vous pouvez choisir une équipe de travail parmi la main-d'œuvre privée (vos propres employés) ou parmi la main-d'œuvre d'un fournisseur que vous sélectionnez dans le AWS Marketplace. Vous ne pouvez pas utiliser la main-d'œuvre Amazon Mechanical Turk pour les tâches d'étiquetage de nuage de points 3D.

Pour de plus amples informations sur la main-d'œuvre provenant du fournisseur, veuillez consulter Gestion des mains-d'œuvre de fournisseurs.

Pour savoir comment créer et gérer une main-d'œuvre privée, veuillez consulter Utilisation d'une main-d'œuvre privée.

Interface utilisateur (UI) de travail

Ground Truth fournit une interface utilisateur (UI) employé, des outils et des fonctionnalités d'étiquetage assisté pour aider les employés à accomplir vos tâches d'étiquetage de nuage de points 3D.

Vous pouvez prévisualiser l'interface utilisateur de travail lorsque vous créez une tâche d'étiquetage dans la console.

Lorsque vous créez une tâche d'étiquetage en utilisant l'opération API CreateLabelingJob, vous devez fournir un ARN fourni par Ground Truth dans le paramètre HumanTaskUiArn afin de spécifier l'interface utilisateur employé pour votre type de tâche. Vous pouvez utiliser HumanTaskUiArn avec l'opération RenderUiTemplate de l'API SageMaker pour prévisualiser l'interface utilisateur employé.

Vous fournissez des instructions de travail, des étiquettes et, éventuellement, des attributs de catégorie d'étiquette qui sont affichés dans l'interface utilisateur de travail.

Attributs de catégorie d'étiquette

Lorsque vous créez une tâche d'étiquetage de suivi ou de détection d'objets dans un nuage de points 3D, vous pouvez ajouter un ou plusieurs attributs de catégorie d'étiquette. Vous pouvez ajouter des attributs de trame à tous les types de tâches de nuage de points 3D :

  • Attribut de catégorie d'étiquette – Liste d'options (chaînes), zone de texte libre ou champ numérique associé à une ou plusieurs étiquettes. Il est utilisé par les employés pour fournir des métadonnées sur une étiquette.

  • Attribut de trame – Liste d'options (chaînes), zone de texte libre ou champ numérique qui apparaît sur chaque trame de nuage de points qu'un employé doit annoter. Il est utilisé par les employés pour fournir des métadonnées sur les trames.

En outre, vous pouvez utiliser les attributs d'étiquette et de trame pour demander aux employés de vérifier les étiquettes dans une tâche de vérification d'étiquettes de nuage de points 3D.

Utilisez les sections suivantes pour en savoir plus sur ces attributs. Pour apprendre comment ajouter des catégories d'étiquettes et des attributs de trame à une tâche d'étiquetage, utilisez la section Create Labeling Job (Créer une tâche d'étiquetage) de la page de type de tâche de votre choix.

Attributs de catégorie d'étiquette

Ajoutez des attributs de catégorie d'étiquette aux étiquettes pour donner aux employés la possibilité de fournir plus d'informations sur les annotations qu'ils créent. Un attribut de catégorie d'étiquette est ajouté à une étiquette individuelle ou à toutes les étiquettes. Lorsqu'un attribut de catégorie d'étiquette est appliqué à toutes les étiquettes, il est appelé attribut de catégorie d'étiquette global.

Par exemple, si vous ajoutez l'étiquette catégorie voiture, vous pourriez également vouloir capturer des données supplémentaires sur vos voitures étiquetées, telles que le fait qu'elles soient masquées ou la taille de la voiture. Vous pouvez capturer ces métadonnées à l'aide des attributs de catégorie d'étiquette. Dans cet exemple, si vous avez ajouté l'attribut occluded à la catégorie d'étiquette voiture, vous pouvez affecter les attributs partial, completely ou no à l'attribut occluded et permettre aux nœuds de calcul de sélectionner l'une de ces options.

Lorsque vous créez une tâche de vérification d'étiquette, vous ajoutez des attributs de catégorie d'étiquettes à chaque étiquette que les employés doivent vérifier.

Attributs de trame

Ajoutez des attributs de trame pour donner aux employés la possibilité de fournir plus d'informations sur les trames de nuage de points individuelles. Vous pouvez spécifier jusqu'à 10 attributs de trame, et ces attributs apparaîtront sur toutes les trames.

Par exemple, vous pouvez ajouter un attribut trame qui permet aux employés de saisir un nombre. Vous pouvez utiliser cet attribut pour que les employés identifient le nombre d'objets qu'ils voient dans une trame particulière.

Dans un autre exemple, vous pouvez fournir une zone de texte libre pour donner aux employés la possibilité de fournir une réponse libre à une question.

Lorsque vous créez une tâche de vérification d'étiquette, vous pouvez ajouter un ou plusieurs attributs de trame pour demander aux employés de fournir des commentaires sur toutes les étiquettes dans une trame de nuage de points.

Instructions de travail

Vous pouvez fournir des instructions de travail à vos collaborateurs pour les aider à effectuer vos tâches d'étiquetage de nuage de points. Vous pouvez utiliser ces instructions pour les opérations suivantes :

  • Bonnes pratiques et choses à éviter lors de l'annotation d'objets.

  • Explication des attributs de catégorie d'étiquette fournis (pour les tâches de détection d'objets et de suivi d'objets) et mode d'emploi de ces attributs.

  • Conseils sur la façon de gagner du temps lors de l'étiquetage à l'aide de raccourcis clavier.

Vous pouvez ajouter vos instructions employé à l'aide de la console SageMaker lors de la création d'une tâche d'étiquetage. Si vous créez une tâche d'étiquetage à l'aide de l'opération d'API CreateLabelingJob, vous spécifiez les instructions de travail dans votre fichier de configuration de catégorie d'étiquette.

Outre vos instructions, Ground Truth fournit un lien pour aider les employés à naviguer dans le portail d'employé et à l'utiliser. Affichez ces instructions en sélectionnant le type de tâche sur Instructions de travail.

Refus de tâches

Les employés peuvent refuser des tâches.

Les employés refusent une tâche si les instructions ne sont pas claires, les données source ne s'affichent pas correctement ou s'ils rencontrent un autre problème avec la tâche. Si la tâche est refusée par le nombre d'employés par objet du jeu de données (NumberOfHumanWorkersPerDataObject), l'objet de données est marqué comme expiré et ne sera pas envoyé à d'autres employés.

Autorisations requises pour les tâches d'étiquetage de nuage de points 3D

Lorsque vous créez une tâche d'étiquetage de nuage de points 3D, en plus des autorisations requises indiquées dans Attribuer des autorisations IAM pour utiliser Ground Truth, vous devez ajouter une stratégie CORS au compartiment S3 qui contient votre fichier manifeste d'entrée.

Ajouter une stratégie d'autorisation CORS à un compartiment S3

Lorsque vous créez une tâche d'étiquetage de nuage de points 3D, vous spécifiez les compartiments dans S3 dans lesquels se trouvent vos données d'entrée et votre fichier manifeste, et dans lesquels vos données de sortie seront stockées. Ces compartiments peuvent être les mêmes. Vous devez attacher la stratégie CORS (Cross-Origin Resource Sharing) suivante à vos compartiments source et de sortie. Si vous utilisez la console Amazon S3 pour ajouter la stratégie à votre compartiment, vous devez utiliser le format JSON.

JSON

[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "HEAD", "PUT" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [ "Access-Control-Allow-Origin" ], "MaxAgeSeconds": 3000 } ]

xml

<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>HEAD</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <ExposeHeader>Access-Control-Allow-Origin</ExposeHeader> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>

Pour savoir comment ajouter une politique CORS à un compartiment S3, veuillez consulter Comment ajouter le partage de ressources interdomaines avec CORS ? dans le Guide de l'utilisateur Amazon Simple Storage Service.