Le Blog Amazon Web Services
Étiquetage d’un jeu de données avec Amazon SageMaker Ground Truth et labellisation automatique (data labeling)
Avec Amazon SageMaker Ground Truth, vous pouvez facilement et à moindre coût étiqueter un jeu de données avec précision. Pour réduire le coût d’étiquetage, Group Truth Machine Learning vous permet de choisir et séparer les images dites “difficiles” ayant besoin d’une annotation manuelle (intervention d’un opérateur humain), et les images dites “faciles” pouvant être étiquetées automatiquement à l’aide du Machine Learning. Cet article détaille comment automatiser l’étiquetage de données (“Automated Data Labeling”) et comment en évaluer les résultats.
Exécution d’une tâche de détection d’objet avec étiquetages de données automatique
Dans un article précédent, Julien Simon a expliqué comment exécuter une tâche d’étiquetage de données utilisant la console AWS. Il est aussi possible d’utiliser l’API AWS pour avoir un contrôle plus précis du processus. Dans cet article, nous utilisons donc Amazon SageMaker Jupyter Notebook et l’API AWS pour créer des bounding box (cadre de limitation) autour de 1000 images d’oiseaux.
Note: Le coût d’exécution du Notebook est estimé à environ 200$ pour une exécution (déroulé pas-à-pas ci-dessous).
Le Jupyter Notebook de détection d’objet que nous allons utiliser est disponible dans l’onglet “Sagemaker Examples” de SageMaker.
Pour démarrer le projet et avoir accès au Notebook, nous créons une instance Amazon SageMaker Notebook ml.m4.xlarge
. La configuration nécessaire pour l’instance Sagemaker Notework est détaillée dans la documentation Sagemaker. A l’étape 3 du tutorial, il faut s’assurer de valider l’option “Any S3 bucket” lors de la création du rôle IAM.
Une fois que l’instance est disponible et prête à l’emploi, nous ouvrons l’environnement de travail, allons sur l’onglet “SageMaker Examples” et lançons le notebook object_detection_tutorial.ipynb
comme indiqué dans l’exemple ci-dessous :
Dans le notebook de détection d’objet, nous exécutons tous les blocs des sections “Introduction” et “Run a Ground Truth labeling job”. Attention: Il est parfois demandé de modifier certains blocs avant de les exécuter. Pour résumer, il est nécessaire de réaliser les étapes suivantes :
- Création du jeu de données ayant 1000 images d’oiseaux,
- Spécification des instructions pour l’étiquetage et détection manuelle d’objets “object detection annotation” (pour l’intervention d’un opérateur humain),
- Création d’une demande de travail pour l’étiquetage et détection d’objets,
- Soumission de la demande du travail dans Ground Truth.
Le travail prend environ 4 heures. Lorsque le travail est fini, nous exécutons alors tous les blocs des sections “Analyze Ground Truth labeling job results” et “Compare Ground Truth results to standard labels”. Cela permet de produire des rapports sous forme de graphiques qui nous permettent de comprendre comment Ground Truth annote et étiquette des données.
Apprentissage actif (Active Learning) et étiquetage automatique des données
Les graphiques montrent que l’étiquetage de l’intégralité du jeu de données a pris cinq itérations. A chaque itération, Ground Truth envoie un lot d’images aux opérateurs humains chargés d’étiqueter les images via Amazon Mechanical Turk. Le graphique ci-dessous montre le nombre d’images (« ims » abrégé dans le graphique) produites à chaque itération et le nombre de bounding boxes (cadre de limitation) pour ces images. Vos résultats peuvent différer légèrement.
Dans cet article, nous sous-traitons l’étiquetage manuel d’images via Amazon Mechanical Turk. Toutefois, il est aussi possible d’utiliser des ressources internes (Employées, sous-trainants, … ) ou de sélectionner une société externe proposant un service de labellisation. Pour gestion les différents opérateurs, Ground Truth permet de créer des groupes de travail, gérer les ressources, assigner des tâches et aussi propose un environnement de travail pour les opérateurs chargés de la labellisation manuelle.
Pendant la première itération, les opérateurs via Mechanical Turk ont étiqueté un petit lot d’essai de 10 images sélectionnées au hasard. Ce lot valide l’exécution de bout en bout de la tâche d’étiquetage. Pendant la deuxième itération, les opérateurs ont étiqueté autres 190 images choisies au hasard. Ces images étiquetées nous servirons pour créer un jeu de données de validation. Pendant la troisième itération 3, les opérateurs ont étiqueté autres 200 images choisies au hasard. Ces images étiquetées nous servirons pour créer un jeu de données d’entraînement. Ces jeux de données de validation et entraînement seront utilisés plus tard par un algorithme de Machine Learning supervisé afin de créer un modèle qui permettra d’étiqueter automatiquement les images. Tout au long du processus, Ground Truth consolide caque étiquette à partir des plusieurs étiquetages manuels pour éviter le biais lié à un seul opérateur. Pour plus d’informations, consultez le Notebook et la documentation Amazon SageMaker Developer Guide.
Maintenant que nous disposons des jeux des données de validation et d’entraînement, Ground Truth est prêt pour entraîner un algorithme nous permettant d’automatiser l’étiquetage des images. Le diagramme ci-dessous montre le processus d’entraînement :
Étant donné qu’une partie du processus d’étiquetage automatique consiste à comparer les étiquettes produites par un travailleur et par le modèle Machine Learning, il faut pouvoir mesurer la qualité des bounding boxes (cadre de limitation). Pour cet exercice, nous utilisons l’intersection moyenne sur l’union “the mean Intersection over Union (mIoU)“. Un mIoU de 0 signifie que deux ensembles de bounding boxes ne présente pas de zone de recrouvement. Un mIoU de 1 signifie que deux ensembles de bounding boxes sont complément alignés, les surfaces des ensembles de boxing boxes se superposent. L’objectif de l’étiquetage automatique est de produire des étiquettes ayant au moins un mIoU de 0.6 avec les étiquettes produites par un opérateur humain pour les mêmes images. Ce chiffre est légèrement supérieur au seuil de 0.5 qui est couramment utilisé en computer vision pour indiquer une correspondance entre bounding boxes (Pour référence sur la sélection des valeurs de seuil: “This is a break from tradition…”).
Ayant le déjà modèle Deep Learning pré-entraîné et l’indice mIoU, Ground Truth est prêt pour produire des étiquettes automatiquement pendant l’itération 4. Voici les 4 étapes exécutées pendant cette itération :
- Ground Truth utilise l’algorithme Machine Learning pour prédire les bounding boxes et leur indice de confiance sur le jeu de données de validation. L’algorithme attribue à chaque bounding box un indice de confiance compris entre 0 et 1. En calculant la moyenne des indices de confiance pour une image, nous obtenons un indice de confiance général indiquant dans quelle mesure l’algorithme est fiable dans sa prédiction,
- Pour tout seuil de confiance d’image, nous pouvons calculer la fiabilité des prédictions de l’algorithme sur les images dont l’indice de confiance est supérieur au seuil correspondant aux étiquettes produites manuellement par les travailleurs. Il faut trouver donc un seuil permettant d’avoir un mIoU d’au moins 0,6 pour tous les valuers supérieurs à ce seuil. Appelons le seuil resultant θ,
- Ground Truth utilise l’algorithme pour prédire les bounding boxes et leurs indices de confiances sur le jeu de données non étiqueté restant, qui contient 600 images,
- Ground Truth conserve les jeux de données dont l’indice de confiance est supérieur à θ et sauvegarde le résultat de l’ étiquetage produit par l’algorithme. On considère alors que les étiquettes produits par l’algorithme sont équivalents à celles qu’aurait produit un opérateur humain. Les jeux de données non étiquetées restant sont envoyés aux opérateurs humains pour un traitement manuel. Dans cet exemple, nous faisons confiance à l’algorithme et nous ne revoyons pas les étiquettes dont l’indice de confiance est élevé. Toutefois, en fonction des cas, une vérification manuelle complémentaire peut être appliquée.
Le diagramme suivant illustre le processus d’étiquetage automatique :
Si nous regardons le premier diagramme, nous pouvons voir que la barre jaune à l’itération 4 montre que l’algorithme était suffisamment précis pour étiqueter automatiquement 27 images. Pour produire des prédictions plus précises, l’algorithme a besoin de plus de données étiquetées par les opérateurs humains. Jusqu’à maintenant, les images à étiqueter ont été choisies de manière aléatoire. Pour les prochaines itérations, les images à étiqueter manuellement seront choisies par le modèle Machine Learning directement :
Pendant l’itération 4, 200 images supplémentaires ont été étiquetées faisant passer la taille du jeu d’entraînement à 400. Le premier diagramme montre que pour les itérations 1, 2 et 3, nous avons environ 2 bounding boxes par image. Pour l’itération 4, nous avons près de 3,5 bounding boxes par image ! L’algorithme choisit s’il est préférable de demander aux opérateurs d’étiqueter les images contenant de nombreux objets prédits. Avant l’itération 5, nous entraînons l’algorithme en utilisant les 400 images d’entraînement et les 200 images de validation. Cela complète la boucle d’étiquetage Ground Truth.
Grâce à l’apprentissage actif (Active Learning) de Ground Truth, le modèle Machine Learning a appris rapidement, ie en 5 itérations, à étiqueter automatiquement 365 images! Il ne reste que 8 images non étiquetées. L’itération 5 envoie les images nécessitant encore une intervention humaine. Examinons les coûts d’étiquetage itération par itération :
Sans l’étiquetage automatique, l’étiquetage des images aurait couté $0.26 * 1000, ce qui équivaut à $260. Toutefois, nous avons payé $158.08 pour 608 images étiquetées par des travailleurs, et $31.36 pour 392 images étiquetées automatiquement. Cela représente une économie de 27% (Pour plus d’informations sur les prix, voir la page de tarification d’Amazon SageMaker Ground Truth).
Étiquetage manuel vs étiquetage automatique
Étiqueter automatiquement un jeu de données est très rentable, mais comment pouvons-nous comparer les résultants d’un étiquetage manuel et automatique? Le graphique mIoU ci-dessous montre dans quelle mesure les étiquettes automatisées reflètent les étiquettes d’origine (produites par un opérateur humain).
En moyenne les opérateurs humains ont légèrement fait mieux que l’étiquetage automatique. Les images étiquetées automatiquement ont une mIoU moyenne d’environ 0,6. Cela représente la qualité que nous avons demandée pour l’étiquetage automatique. Examinons les 5 meilleures images ayant les indices de confiance les plus élevés étiquetées par les opérateurs humains et étiquetées automatiquement :
Conclusion
Grâce à l’étiquetage automatisé des données, Ground Truth a réduit de 27% les coûts de création des bounding boxes autour 1000 images d’oiseaux. Ce pourcentage peut varier d’un jeu de données à l’autre, peut-être diminuer pour une tache de classification d’image (cout humain bas) et peut-être augmenter pour la segmentation sémantique (cout humain important).
N’hésitez pas à expérimenter ou à modifier le notebook Jupyter! Nous vous invitons à regarder des autres démos de computer vision et détection d’objet. Elles sont disponibles dans les instances SageMaker de la même manière le notebook Jupyter que nous venons d’utiliser!
N’oubliez de supprimer vos ressources AWS, notamment l’instance SageMaker Notebook, afin d’éviter une facturation inutiles de ressources que vous n’utilisez pas.
Sur les auteurs
- Krzysztof Chalupka & Tristan McKinney, Scientist dans l’équipe Amazon ML Solutions Lab et Fedor Zhdanov, Machine Learning Scientist pour Amazon.
- Traduit de l’anglais par Felix Guglielmi Miguel, Solutions Architect accompagnant ses clients français dans leur adoption du Cloud AWS, LinkedIn.
Article en anglais : https://aws.amazon.com/fr/blogs/machine-learning/annotate-data-for-less-with-amazon-sagemaker-ground-truth-and-automated-data-labeling/