Ceci est le premier d'une série en deux parties sur le Vérité au sol Amazon SageMaker workflow d'étiquetage hiérarchique et tableaux de bord. Dans la partie 1, nous examinons la création de workflows d'étiquetage en plusieurs étapes pour les taxonomies d'étiquettes hiérarchiques à l'aide de Fonctions d'étape AWS. Dans la partie 2 (à venir), nous examinons comment créer des tableaux de bord pour analyser les annotations des ensembles de données et les mesures de performance des travailleurs sur les lacs de données générés en tant que sortie des flux de travail complexes et en tirer des informations.
L'étiquetage des données nécessite souvent un seul objet de données pour inclure plusieurs types d'annotations, ou multi-type, tels que les cadres 2D (cadres de délimitation), les lignes et les masques de segmentation, le tout sur une seule image. De plus, pour créer des modèles d'apprentissage automatique (ML) de haute qualité à l'aide de données étiquetées, vous avez besoin d'un moyen de surveiller la qualité des étiquettes. Vous pouvez le faire en créant un flux de travail dans lequel les données étiquetées sont auditées et ajustées selon les besoins. Cet article présente une solution pour relever ces deux défis d'étiquetage à l'aide d'un ensemble de données automobile, et vous pouvez étendre cette solution pour une utilisation avec tout type d'ensemble de données.
Pour notre cas d'utilisation, supposons que vous ayez une grande quantité de données vidéo automobiles filmées sous un ou plusieurs angles sur un véhicule en mouvement (par exemple, certaines Scènes de suivi multi-objets (MOT)) et que vous souhaitez annoter les données à l'aide de plusieurs types d'annotations. Vous prévoyez d'utiliser ces données pour entraîner un régulateur de vitesse, un algorithme ML de maintien de voie. Compte tenu de la tâche à accomplir, il est impératif d'utiliser des étiquettes de haute qualité pour entraîner le modèle.
Tout d'abord, vous devez identifier les types d'annotations que vous souhaitez ajouter à vos images vidéo. Certains des objets les plus importants à étiqueter pour ce cas d'utilisation sont d'autres véhicules dans le cadre, les limites de la route et les voies. Pour ce faire, vous définissez un taxonomie hiérarchique des étiquettes, qui définit le type d'étiquettes que vous souhaitez ajouter à chaque vidéo et l'ordre dans lequel vous souhaitez que les étiquettes soient ajoutées. le Tâche d'étiquetage de suivi vidéo Ground Truth prend en charge les annotations de boîte englobante, de polyligne, de polygone et de point-clé. Dans ce cas d'utilisation, les véhicules sont annotés à l'aide de boîtes à 2 dimensions, ou cadres de délimitation, et les limites et courbes de routes sont annotées avec une série de segments de lignes flexibles, appelés Polylignes.
Deuxièmement, vous devez établir un flux de travail pour garantir la qualité des étiquettes. Pour ce faire, vous pouvez créer un workflow d'audit pour vérifier que les étiquettes générées par votre pipeline sont de qualité suffisamment élevée pour être utiles pour la formation de modèles. Dans ce flux de travail d'audit, vous pouvez considérablement améliorer la précision des étiquettes en créant un pipeline de révision en plusieurs étapes qui permet aux annotations d'être auditées et, si nécessaire, ajustées par un deuxième réviseur qui peut être un expert en la matière.
En fonction de la taille de l'ensemble de données et des objets de données, vous devez également prendre en compte le temps et les ressources nécessaires pour créer et gérer ce pipeline. Idéalement, vous souhaitez que cette série de travaux d'étiquetage soit démarrée automatiquement, ne nécessitant qu'une intervention humaine pour spécifier les données d'entrée et le flux de travail.
La solution utilisée dans cet article utilise Ground Truth, AWS CloudFormation, Fonctions d'étape et Amazon DynamoDB pour créer une série de travaux d'étiquetage qui s'exécutent de manière parallèle et hiérarchique. Vous utilisez une taxonomie d'étiquettes hiérarchique pour créer des tâches d'étiquetage de différentes modalités (polylignes et cadres de délimitation), et vous ajoutez des étapes de révision humaine secondaires pour améliorer la qualité des annotations et les résultats finaux.
Pour cet article, nous présentons la solution dans le contexte de l'espace automobile, mais vous pouvez facilement appliquer ce pipeline général à l'étiquetage de pipelines impliquant des images, des vidéos, du texte, etc. De plus, nous démontrons un flux de travail extensible, vous permettant de réduire le nombre total de trames nécessitant un examen humain en ajoutant des contrôles de qualité automatisés et en maintenant la qualité des données à grande échelle. Dans ce cas d'utilisation, nous utilisons ces vérifications pour trouver des anomalies dans les données de séries chronologiques MOT telles que les annotations de suivi d'objets vidéo.
Nous parcourons un cas d'utilisation dans lequel nous générons plusieurs types d'annotations pour une scène automobile. Plus précisément, nous exécutons quatre travaux d'étiquetage par clip vidéo d'entrée: un étiquetage initial des véhicules, un étiquetage initial des voies, puis un travail d'ajustement par travail initial avec un personnel d'assurance qualité distinct.
Nous démontrons les différents points d'extension dans notre flux de travail Step Function qui peuvent vous permettre d'exécuter contrôles d'assurance qualité automatisés. Cela permet de filtrer les clips entre et après la fin des travaux, ce qui peut entraîner des annotations de haute qualité pour une fraction du coût.
Services AWS utilisés pour implémenter cette solution
Cette solution crée et gère les travaux d'étiquetage Ground Truth pour étiqueter les images vidéo à l'aide de plusieurs types d'annotations. Ground Truth prend en charge nativement les ensembles de données vidéo via son image vidéo type de tâche de suivi d'objet.
Ce type de tâche permet aux utilisateurs de créer des annotations sur une série d'images vidéo, fournissant des outils pour prédire l'emplacement suivant d'un cadre de sélection dans les images suivantes. Il prend également en charge plusieurs types d'annotations tels que les cadres de délimitation ou les polylignes à travers les fichiers de configuration des catégories d'étiquettes fournis lors de la création d’emplois. Nous utilisons ces outils dans ce didacticiel, exécutant une tâche pour les boîtes de délimitation de véhicule et une tâche pour les polylignes de voie.
Nous utilisons Step Functions pour gérer le travail d'étiquetage. Cette solution fait abstraction de la création de travaux d'étiquetage afin que vous spécifiiez le flux de travail global que vous souhaitez exécuter à l'aide d'une taxonomie d'étiquettes hiérarchique, et toute la gestion des travaux est gérée par les fonctions d'étape.
La solution est mise en œuvre à l'aide de modèles CloudFormation que vous pouvez déployer dans votre compte AWS. L'interface de la solution est une API gérée par Passerelle d'API Amazon, qui offre la possibilité de soumettre des tâches d'annotation à la solution, qui sont ensuite traduites en tâches d'étiquetage Ground Truth.
Prix estimés
En déployant et en utilisant cette solution, vous engagez le coût maximum d'environ 20 USD autres que les coûts d'étiquetage humain, car elle n'utilise que des ressources de calcul entièrement gérées à la demande. Service de stockage simple Amazon (Amazon S3), AWS Lambda, Amazon Sage Maker, passerelle API, Service de notification simple d'Amazon (Amazon SNS), Service Amazon Simple Queue (AmazonSQS), Colle AWS, et les fonctions d'étape sont incluses dans le Niveau gratuit AWS, avec des frais pour une utilisation supplémentaire. Pour plus d'informations, consultez les pages de tarification suivantes:
La tarification de Ground Truth dépend du type de main-d'œuvre que vous utilisez. Si vous êtes un nouvel utilisateur de Ground Truth, nous vous suggérons d'utiliser une main-d'œuvre privée et de vous inclure en tant que travailleur pour tester la configuration de votre travail d'étiquetage. Pour plus d'informations, consultez Tarification d'Amazon SageMaker Ground Truth.
Vue d'ensemble de la solution
Dans cette série en deux parties, nous abordons un modèle d'architecture qui vous permet de créer un pipeline pour orchestrer des workflows d'étiquetage de données en plusieurs étapes dans lesquels les travailleurs ajoutent différents types d'annotations en parallèle à l'aide de Ground Truth. Vous apprenez également comment analyser les annotations de l'ensemble de données produites par le flux de travail ainsi que les performances des travailleurs. Le premier article couvre le flux de travail Step Functions qui automatise les flux de travail d'étiquetage de données ML avancés à l'aide de Ground Truth pour le chaînage et les taxonomies d'étiquettes hiérarchiques. Le deuxième article décrit comment créer des lacs de données sur des annotations de jeux de données à partir de Ground Truth et des métriques de travailleurs et utiliser ces lacs de données pour obtenir des informations ou analyser les performances de vos travailleurs et la qualité des annotations de jeux de données à l'aide d'analyses avancées.
Le diagramme suivant illustre le flux de travail hiérarchique, que vous pouvez utiliser pour exécuter des groupes de travaux d'étiquetage par étapes séquentielles, ou niveaux, dans lequel chaque tâche d'étiquetage d'un seul niveau s'exécute en parallèle.
La solution est composée de deux parties principales:
- Utilisez une API pour déclencher le workflow d'orchestration.
- Exécutez les étapes individuelles du flux de travail pour réaliser le pipeline d'étiquetage.
Déclenchez le workflow d'orchestration avec une API
Le modèle CloudFormation lancé dans cette solution utilise API Gateway pour exposer un point de terminaison afin que vous puissiez déclencher des tâches d'étiquetage par lots. Une fois que vous avez envoyé la demande de publication au point de terminaison API Gateway, il exécute une fonction Lambda pour déclencher le flux de travail.
Le tableau suivant contient les deux principales API destinées à l'utilisateur et pertinentes pour l'exécution de lots, qui représentent les tâches d'étiquetage à plusieurs niveaux.
URL | type de demande | Description |
{endpointUrl} / batch / create | POSTEZ | L'API déclenche un nouveau lot de tâches d'étiquetage |
{endpointUrl} / batch / show | ÉCONOMISEZ | Les API décrivent l'état actuel de l'exécution du travail par lots |
Exécutez le workflow
Pour l'orchestration des étapes, nous utilisons Step Functions comme solution gérée. Lorsque l'API de création de travaux par lots est déclenchée, une fonction Lambda déclenche un flux de travail Step Functions comme celui-ci. Cela lance le traitement d'entrée des annotations.
Discutons des étapes plus en détail.
Étape de transformation
La première étape consiste à prétraiter les données. L'implémentation actuelle convertit les entrées du notebook en type de données de fichier manifeste interne partagé sur plusieurs étapes. Cette étape n'effectue actuellement aucun traitement complexe, mais vous pouvez personnaliser davantage cette étape en ajoutant une logique de prétraitement de données personnalisée à cette fonction. Par exemple, si votre ensemble de données a été encodé dans des vidéos brutes, vous pouvez effectuer le fractionnement d'images et la génération de manifestes dans la transformation plutôt que dans un bloc-notes séparé. Si vous utilisez cette solution pour créer un pipeline d'étiquetage de nuages de points 3D, vous pouvez également ajouter une logique pour extraire les données de pose dans un système de coordonnées universel à l'aide de la caméra et des matrices extrinsèques LiDAR.
DéclencheurÉtiquetagePremierNiveau
Lorsque le prétraitement des données est terminé, l'opération de l'API Ground Truth Créer une tâche d'étiquetage est utilisé pour lancer les travaux d'étiquetage. Ces travaux d'étiquetage sont chargés d'annoter les ensembles de données liés au premier niveau.
VérifierPourPremierNiveauTerminé
Cette étape attend le FIRST_LEVEL
Tâches d'étiquetage Ground Truth déclenchées par TriggerLabelingFirstStep
. Lorsque le déclencheur de tâche est terminé, cette étape attend que toutes les tâches d'étiquetage créées se terminent. Une fonction Lambda d'écoute externe surveille l'état des travaux d'étiquetage, et lorsque tous les travaux d'étiquetage en attente sont terminés, elle exécute le sendTokenSucess
API pour signaler à cet état de passer à l'étape suivante. Les cas d'échec sont traités à l'aide de clauses d'erreur et de délais d'expiration appropriés dans la définition d'étape.
SendSecondLevelSNSAndCheckResponse
Cette étape effectue un post-traitement sur la sortie du travail de premier niveau. Par exemple, si vos besoins sont d'envoyer seulement 10% des trames aux jobs de réglage, vous pouvez implémenter cette logique ici en filtrant l'ensemble des sorties du premier job.
DéclencheurÉtiquetageSecondLevel
Lorsque le post-traitement des données du premier niveau est terminé, CreateLabelingJobs
est utilisé pour lancer des travaux d'étiquetage pour terminer les annotations au deuxième niveau. À ce stade, un personnel privé examine la qualité des annotations des travaux d'étiquetage de premier niveau et met à jour les annotations si nécessaire.
CheckForSecondLevelCompleteCheckForSecondLevelComplete
Cette étape est la même étape d'attente que CheckForFirstLevelComplete
, mais cette étape attend simplement les emplois créés à partir du deuxième niveau.
SendThirdLevelSNSAndCheckResponse
Cette étape est la même étape de post-traitement que SendSecondLevelSNSAndCheckResponse
, mais cette étape effectue le post-traitement de la sortie de deuxième niveau et alimente en entrée le travail d'étiquetage de troisième niveau.
DéclencheurÉtiquetageTroisièmeNiveau
C'est la même logique que TriggerLabelingSecondLevel
, mais les travaux d'étiquetage sont déclenchés qui sont annotés en tant que troisième niveau. À ce stade, la main-d'œuvre privée met à jour les annotations pour la qualité du travail d'étiquetage de deuxième niveau.
Copier les journaux et envoyer le lot terminé
Cette fonction Lambda enregistre et envoie des messages SNS pour informer les utilisateurs que le lot est terminé. C'est également un espace réservé pour toute logique de post-traitement que vous souhaitez exécuter. Le post-traitement courant comprend la transformation des données étiquetées dans un format compatible avec un format de données spécifique au client.
Pré-requis
Avant de commencer, assurez-vous que vous disposez des conditions préalables suivantes:
- An Compte AWS.
- Un ordinateur portable Gestion des identités et des accès AWS (IAM) avec les autorisations requises pour effectuer cette procédure pas à pas. Votre rôle IAM doit être associé aux autorisations requises. Si vous n'avez pas besoin d'une autorisation granulaire, associez les stratégies gérées par AWS suivantes:
AmazonS3FullAccess
AmazonAPIGatewayInvokeFullAccess
AmazonSageMakerFullAccess
- Connaissance des fonctions Ground Truth, AWS CloudFormation et Step.
- Un SageMaker main-d'œuvre. Pour ce poste, nous utilisons une main-d'œuvre privée. Vous pouvez créer une équipe sur la console SageMaker. Noter la Amazon Cognito l'identifiant du pool d'utilisateurs et l'identifiant du client de l'application après la création de votre effectif. Vous utilisez ces valeurs pour indiquer au déploiement de la pile CloudFormation quelle force de travail créer des équipes de travail, qui représentent le groupe d'étiqueteurs. Vous pouvez trouver ces valeurs dans le Résumé de l'effectif privé section sur la console après avoir créé votre effectif ou lorsque vous appelez Décrire.
Le GIF suivant montre comment créer une main-d'œuvre privée. Pour obtenir des instructions pas à pas, reportez-vous à Créer une main-d'œuvre Amazon Cognito à l'aide de la page Labellisation des effectifs.
Lancez la pile CloudFormation
Maintenant que nous avons vu la structure de la solution, nous la déployons dans notre compte afin de pouvoir exécuter un exemple de workflow. Toutes nos étapes de déploiement sont gérées par AWS CloudFormation: il crée des ressources dans Lambda, Step Functions, DynamoDB et API Gateway pour vous.
Vous pouvez lancer la pile dans la région AWS us-east-1
sur la console CloudFormation en choisissant Lancer la pile:
Sur la console CloudFormation, sélectionnez Ensuite, puis modifiez les paramètres de modèle suivants pour personnaliser la solution.
Vous pouvez localiser CognitoUserPoolClientId et CognitoUserPoolId dans la console SageMaker.
- CognitoUserPoolClientId : ID client d'application de votre personnel privé.
- CognitoUserPoolId : ID du pool d'utilisateurs associé à votre personnel privé.
Pour localiser ces valeurs dans la console:
- Ouvrez la console SageMaker à l'adresse https://console.aws.amazon.com/sagemaker/
- Sélectionnez Étiquetage des effectifs dans le volet de navigation.
- le choix de la Chef
- Utilisez les valeurs du Résumé de l'équipe de travail privée Utilisez l'option Client d'application pour CognitoUserPoolClientId et utiliser Pool d'utilisateurs Amazon Cognito pour le CognitoUserPoolId.
Pour ce didacticiel, vous pouvez utiliser les valeurs par défaut pour les paramètres suivants.
- GlueJobTriggerCron : Expression Cron à utiliser lors de la planification de la création de rapports d'une tâche Cron AWS Glue. Les résultats des annotations générées avec SageMaker Ground Truth et les mesures de performances des employés sont utilisés pour créer un tableau de bord dans Amazon QuickSight. Ceci sera expliqué en détail dans la deuxième partie. Les résultats des annotations SageMaker et des métriques de performances des employés s'affichent dans les requêtes Athena après le traitement des données avec AWS Glue. Par défaut, les tâches Cron AWS Glue s'exécutent toutes les heures.
- Délai d'achèvement du travail : Nombre de secondes à attendre avant de traiter une tâche d'étiquetage comme ayant échoué et de passer à l'état BatchError.
- Niveau de journalisation: Ceci est utilisé en interne et peut être ignoré. Niveau de journalisation pour modifier la verbosité des journaux. Accepte les valeurs DEBUG et PROD.
Préfixe: Un préfixe à utiliser lors de la dénomination des ressources utilisées pour créer et gérer les travaux d'étiquetage et les métriques de travail.
Pour lancer la pile dans une autre région AWS, utilisez les instructions du README du GitHub référentiel.
Une fois la solution déployée, deux nouvelles équipes de travail font partie de la main-d'œuvre privée que vous avez créée précédemment: smgt-workflow-first-level
et les smgt-workflow-second-level
. Il s'agit des équipes de travail par défaut utilisées par la solution si aucun remplacement n'est spécifié, et le smgt-workflow-second-level
l'équipe de travail est utilisée pour étiqueter les emplois de deuxième et troisième niveaux. Vous devez vous ajouter aux deux équipes de travail pour voir les tâches d'étiquetage créées par la solution. Pour savoir comment vous ajouter à une équipe de travail privée, voir Ajouter ou supprimer des travailleurs.
Vous devez également accéder à la console API Gateway et rechercher l'API déployée préfixée par smgt-workflow
et notez son identifiant. Le notebook doit référencer cet ID pour pouvoir déterminer l'URL d'API à appeler.
Lancez le notebook
Après avoir déployé la solution dans votre compte, vous êtes prêt à lancer un bloc-notes pour interagir avec lui et démarrer de nouveaux flux de travail. Dans cette section, nous parcourons les étapes suivantes:
- Configurez et accédez à l'instance de notebook.
- Obtenez l'exemple de jeu de données.
- Préparez les fichiers d'entrée Ground Truth.
Configurer l'instance de notebook SageMaker
Dans cet exemple de bloc-notes, vous apprendrez à mapper une taxonomie simple composée d'une classe de véhicule et d'une classe de voie aux fichiers de configuration de catégorie d'étiquette Ground Truth. Un fichier de configuration de catégorie d'étiquettes est utilisé pour définir les étiquettes que les travailleurs utilisent pour annoter vos images. Ensuite, vous apprenez à lancer et à configurer la solution qui exécute le pipeline à l'aide d'un modèle CloudFormation. Vous pouvez également personnaliser davantage ce code, par exemple en personnalisant l'appel d'API de création par lots pour exécuter l'étiquetage pour une combinaison différente de types de tâches.
Pour créer une instance de notebook et accéder au notebook utilisé dans cet article, procédez comme suit:
- Créer une instance de bloc-notes avec les paramètres suivants:
- Utilisez ml.t2.medium pour lancer l'instance de notebook.
- Augmentez la taille du volume de stockage ML à au moins 10 Go.
- Sélectionnez le rôle IAM du notebook décrit dans les conditions préalables. Ce rôle permet à votre notebook de télécharger votre ensemble de données sur Amazon S3 et d'appeler les API de la solution.
- Ouvrez Jupyter Lab ou Jupyter pour accéder à vos instances de notebook.
- Dans Jupyter, choisissez le Exemples SageMaker Dans Jupyter Lab, choisissez l'icône SageMaker.
- Selectionnez Travaux d'étiquetage Ground Truth puis choisissez le travail sagemaker_ground_truth_workflows.ipynb.
- Si vous utilisez Jupyter, choisissez Utilisez pour copier le notebook dans votre instance et l'exécuter. Si vous êtes dans le laboratoire Jupyter, choisissez Créer une copie.
Obtenez l'exemple de jeu de données
Suivez les étapes suivantes pour configurer votre ensemble de données:
- Téléchargez MOT17.zip en utilisant le Télécharger l'ensemble de données section du cahier.
Ce téléchargement fait environ 5 Go et prend plusieurs minutes.
- Décompressez MOT17.zip en utilisant le Décompressez l'ensemble de données
- En vertu des Normes sur l’information et les communications, les organismes doivent rendre leurs sites et applications Web accessibles. Ils y parviennent en conformant leurs sites Web au niveau AA des Web Content Accessibility Guidelines (WCAG). Copier les données vers S3 en-tête, exécutez la cellule pour copier un ensemble de données d'images vidéo sur Amazon S3.
Préparer les fichiers d'entrée Ground Truth
Pour utiliser la solution, nous devons créer un fichier manifeste. Ce fichier indique à Ground Truth où se trouve votre jeu de données. Nous avons également besoin de deux fichiers de configuration de catégorie d'étiquettes pour décrire nos noms d'étiquettes et de l'outil d'étiquetage à utiliser pour chacun (cadre de sélection ou polyligne).
- Exécutez les cellules sous Générer un manifeste pour obtenir une liste d'images dans une vidéo à partir de l'ensemble de données. Nous prenons 150 images à la moitié de la fréquence d'images de la vidéo à titre d'exemple.
- Continuez à exécuter les cellules sous Générer un manifeste pour construire un fichier de séquence décrivant nos images vidéo, puis pour créer un fichier manifeste faisant référence à notre fichier de séquence.
- Exécutez la cellule sous Générer des fichiers de configuration de catégorie d'étiquettes pour créer deux nouveaux fichiers: un fichier de configuration d'étiquette de véhicule (qui utilise l'outil de boîte englobante) et un fichier de configuration d'étiquette de voie (qui utilise l'outil de polyligne).
- Copiez le fichier manifeste et étiquetez les fichiers de configuration de catégorie sur Amazon S3 en exécutant le Envoyer des données à S3
À ce stade, vous avez préparé toutes les entrées pour les travaux d'étiquetage et êtes prêt à commencer à utiliser la solution.
Pour en savoir plus sur les tâches d'étiquetage et le chaînage d'images vidéo Ground Truth, consultez les références suivantes:
Exécuter un exemple de workflow
Dans cette section, nous parcourons les étapes pour exécuter un exemple de flux de travail sur l'ensemble de données automobile. Nous créons un flux de travail multimodalité, effectuons un étiquetage initial et d'audit, puis visualisons nos annotations terminées.
Créer un lot de workflow
Cette solution orchestre un flux de travaux d'étiquetage Ground Truth pour exécuter à la fois des travaux de boîte englobante de suivi d'objet vidéo et des travaux de polyligne, ainsi que de créer automatiquement des travaux d'ajustement après l'étiquetage initial. Ce lot de workflow est configuré via le batch_create
API disponible pour la solution.
Exécutez la cellule sous Démo de création par lots dans le cahier. Cela transmet votre manifeste d'entrée et les URI S3 de configuration de catégorie d'étiquette à un nouveau lot de flux de travail.
La cellule doit afficher l'ID du lot de workflow nouvellement créé, par exemple:
Terminez la première série de tâches d'étiquetage
Pour simuler des ouvriers en train de terminer l'étiquetage, nous nous connectons en tant qu'ouvrier dans l'équipe de travail Ground Truth de premier niveau et effectuons la tâche d'étiquetage.
- Exécutez la cellule sous Connectez-vous au portail des employés pour obtenir un lien pour vous connecter au portail des travailleurs.
Une invitation doit déjà avoir été envoyée à votre adresse e-mail si vous vous êtes invité dans les équipes de travail de premier et de deuxième niveau générées par la solution.
- Connectez-vous et attendez que les tâches apparaissent dans le portail des travailleurs.
Deux tâches doivent être disponibles, une avec se terminant par vehicle
et un se terminant par lane
, correspondant aux deux jobs que nous avons créés lors de la création de lots de workflow.
- Ouvrez chaque tâche et ajoutez des étiquettes factices en choisissant et en faisant glisser sur les cadres d'image.
- Selectionnez Envoyer sur chaque tâche.
Terminez la deuxième série de tâches d'étiquetage
Notre flux de travail précisait que nous voulions que les travaux d'ajustement soient lancés automatiquement pour chaque travail de premier niveau. Nous terminons maintenant la deuxième série de tâches d'étiquetage.
- Toujours dans le portail des employés, attendez les tâches avec
vehicle-audit
et leslane-audit
apparaître. - Ouvrez chaque tâche dans le portail de travail, en notant que les étiquettes du niveau précédent sont toujours visibles.
Ces tâches d'ajustement pourraient être exécutées par un groupe d'assurance qualité plus hautement qualifié dans une équipe de travail différente.
- Faites les ajustements souhaités et choisissez Passé or Échoué sur chaque annotation.
- Lorsque vous avez terminé, choisissez Envoyer.
Afficher les annotations terminées
Nous pouvons afficher les détails sur le lot de workflow terminé en exécutant l'API batch show.
- Exécutez la cellule sous Démo de démonstration par lots.
Cela interroge la base de données de la solution pour tous les lots d'exécution de flux de travail complets et doit générer votre ID de lot lorsque votre lot est terminé.
- Nous pouvons obtenir des détails plus spécifiques sur un lot en exécutant la cellule sous Démonstration détaillée du lot.
Cela prend l'ID d'un lot dans le système et renvoie les informations d'état et les emplacements de tous les manifestes d'entrée et de sortie pour chaque travail créé.
- Copiez et saisissez le champ
jobOutputS3Url
pour l'un des travaux et vérifiez que le fichier manifeste de ce travail est téléchargé.
Ce fichier contient une référence à votre séquence de données d'entrée ainsi que l'URI S3 des annotations de sortie pour chaque séquence.
Résultats finaux
Lorsque tous les travaux d'étiquetage du pipeline sont terminés, un message SNS est publié sur le sujet SNS d'état par défaut. Vous peut s'abonner à des sujets SNS en utilisant une adresse e-mail pour vérifier la fonctionnalité de la solution. Le message comprend l'ID de lot utilisé lors de la création du lot, un message sur l'achèvement du lot et les mêmes informations que le batch/show
L'API fournit sous un batchInfo
clé. Vous pouvez analyser ce message pour extraire des métadonnées sur les travaux d'étiquetage terminés au deuxième niveau du pipeline.
Dans chaque objet blob de métadonnées de travail, un jobOutputS3Url
Le champ contient une URL prédéfinie pour accéder au manifeste de sortie de ce travail particulier. Le manifeste de sortie contient les résultats de l'étiquetage des données au format de manifeste augmenté, que vous pouvez analyser pour récupérer des annotations en indexant l'objet JSON avec <jobName>-ref
. Ce champ pointe vers un emplacement S3 contenant toutes les annotations pour le clip vidéo donné.
Par exemple, pour les travaux de boîte englobante, le SeqLabel.json
Le fichier contient des annotations de cadre de sélection pour chaque image annotée (dans ce cas, seule la première image est annotée):
Étant donné que le message SNS d'achèvement par lots contient tous les fichiers manifestes de sortie des travaux lancés en parallèle, vous pouvez effectuer tout post-traitement de vos annotations en fonction de ce message. Par exemple, si vous avez un format de sérialisation spécifique pour ces annotations qui combine des boîtes de délimitation de véhicule et des annotations de voie, vous pouvez obtenir le manifeste de sortie de la tâche de voie ainsi que la tâche de véhicule, puis fusionner en fonction du numéro de cadre et convertir à votre choix. format final.
Pour en savoir plus sur les formats de données de sortie Ground Truth, voir Des données de sortie.
Nettoyer
Pour éviter des frais futurs, exécutez le Nettoyer section du notebook pour supprimer toutes les ressources, y compris les objets S3 et la pile CloudFormation. Une fois la suppression terminée, assurez-vous d'arrêter et de supprimer l'instance de notebook qui héberge le script de notebook actuel.
Conclusion
Cette série en deux parties vous fournit une architecture de référence pour créer un flux de travail d'étiquetage de données avancé comprenant un pipeline d'étiquetage de données en plusieurs étapes, des tâches d'ajustement et des lacs de données pour les annotations de jeux de données et les métriques de travail correspondantes, ainsi que des tableaux de bord mis à jour.
Dans cet article, vous avez appris à prendre des données d'image vidéo et à déclencher un flux de travail pour exécuter plusieurs travaux d'étiquetage Ground Truth, générant deux types d'annotations différents (cadres de délimitation et polylignes). Vous avez également appris comment étendre le pipeline pour auditer et vérifier l'ensemble de données étiqueté et comment récupérer les résultats audités. Enfin, vous avez vu comment référencer la progression actuelle des travaux par lots à l'aide de l'API BatchShow.
Pour plus d'informations sur le lac de données pour les annotations de jeux de données Ground Truth et les métriques de travail de Ground Truth, revenez à la Blog de Ground Truth pour le deuxième article de blog de cette série (à venir).
Essayez le cahier et personnalisez-le pour vos ensembles de données d'entrée en ajoutant des tâches supplémentaires ou des étapes d'audit, ou en modifiant la modalité de données des tâches. Personnalisation supplémentaire de sur mesure pourrait inclure, mais sans s'y limiter:
- Ajout de types d'annotations supplémentaires tels que des masques de segmentation sémantique ou des points clés
- Ajout d'une assurance qualité et d'un filtrage automatisés au flux de travail Step Functions pour n'envoyer que des annotations de faible qualité au niveau d'examen suivant
- Ajout de troisième ou quatrième niveaux d'examen de la qualité pour des types d'examens supplémentaires et plus spécialisés
Cette solution est conçue à l'aide de technologies sans serveur en plus des fonctions d'étape, ce qui la rend hautement personnalisable et applicable à une grande variété d'applications.
À propos des auteurs
Vidya Sagar Ravipati est un Deep Learning Architect au Laboratoire de solutions Amazon ML, où il met à profit sa vaste expérience des systèmes distribués à grande échelle et sa passion pour l'apprentissage automatique pour aider les clients AWS de différents secteurs verticaux à accélérer leur adoption de l'IA et du cloud. Auparavant, il était ingénieur en apprentissage automatique dans les services de connectivité chez Amazon, qui a aidé à créer des plates-formes de personnalisation et de maintenance prédictive.
Jérémy Feltracco est un ingénieur en développement logiciel au Amazon ML Solutions Lab chez Amazon Web Services. Il utilise son expérience en vision par ordinateur, en robotique et en apprentissage automatique pour aider les clients AWS à accélérer l'adoption de l'IA.
Jae Sung Jang est un ingénieur en développement logiciel. Sa passion réside dans l'automatisation des processus manuels à l'aide de solutions d'IA et de technologies d'orchestration pour assurer l'exécution de l'entreprise.
Talia Chopra est un rédacteur technique d'AWS spécialisé dans l'apprentissage automatique et l'intelligence artificielle. Elle travaille avec plusieurs équipes dans AWS pour créer une documentation technique et des didacticiels pour les clients utilisant Amazon SageMaker, MxNet et AutoGluon.
- "
- 100
- 107
- 3d
- 7
- 98
- accès
- Compte
- Supplémentaire
- Adoption
- AI
- Adoption de l'IA
- algorithme
- Tous
- Permettre
- Amazon
- Amazon Sage Maker
- Vérité au sol Amazon SageMaker
- Amazon Web Services
- analytique
- api
- Apis
- appli
- applications
- architecture
- intelligence artificielle
- audit
- Automatisation
- l'automobile
- AWS
- Blog
- Box
- construire
- Développement
- la performance des entreprises
- Appelez-nous
- cas
- Change
- des charges
- Contrôles
- le cloud
- adoption du cloud
- code
- Venir
- Commun
- calcul
- Vision par ordinateur
- Connectivité
- Costs
- La création
- croisière
- Courant
- État actuel
- Clients
- tableau de bord
- données
- Lac de données
- qualité des données
- Base de données
- l'apprentissage en profondeur
- Demande
- détail
- Développement
- Endpoint
- ingénieur
- exécution
- Échec
- Mode
- Prénom
- le format
- gratuitement ici
- fonction
- avenir
- Général
- gif
- Réservation de groupe
- ici
- Haute
- hébergement
- Comment
- How To
- HTTPS
- IAM
- ICON
- identifier
- Identite
- image
- Y compris
- industrie
- d'information
- idées.
- Intelligence
- IT
- Emploi
- Emplois
- ACTIVITES
- l'étiquetage
- Etiquettes
- gros
- lancer
- APPRENTISSAGE
- savant
- apprentissage
- Niveau
- traiter
- limité
- LINK
- Liste
- emplacement
- machine learning
- gestion
- Localisation
- Masques
- moyenne
- Métrique
- ML
- modèle
- noms
- Navigation
- déclaration
- d'exploitation
- de commander
- Autre
- Patron de Couture
- performant
- Personnalisation
- Plateformes
- politiques
- pool
- Portail
- établissement des prix
- Privé
- Produit
- qualité
- raw
- réduire
- Exigences
- Resources
- Résultats
- Retours
- Avis
- Avis
- robotique
- Courir
- pour le running
- sagemaker
- Escaliers intérieurs
- secondaire
- Série
- Sans serveur
- Services
- set
- commun
- étapes
- Taille
- So
- Logiciels
- développement de logiciels
- Solutions
- l'espace
- Étape
- Commencer
- j'ai commencé
- Région
- États
- Statut
- storage
- succès
- Support
- Les soutiens
- combustion propre
- Système
- Technique
- Les technologies
- raconte
- tester
- fiable
- jeton
- top
- Tracking
- Formation
- De La Carrosserie
- traitement
- tutoriel
- tutoriels
- Actualités
- URI
- utilisateurs
- véhicule
- Véhicules
- Vidéo
- Vidéos
- Voir
- vision
- le volume
- attendez
- web
- services Web
- WHO
- dans les
- activités principales
- ouvriers
- workflow
- Nos inspecteurs
- vos contrats
- world
- écrivain