Préparer les données pour les tâches de vision par ordinateur avec le Machine Learning automatisé

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)

Important

La prise en charge de l’apprentissage des modèles de vision par ordinateur avec ML automatisé dans Azure Machine Learning est une fonctionnalité en préversion publique expérimentale. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Dans cet article, vous allez apprendre à préparer les données d’image pour l’apprentissage des modèles de vision par ordinateur avec des Machine Learning automatisé dans Azure Machine Learning.

Pour générer des modèles destinés à des tâches de vision par ordinateur avec Machine Learning automatisé, vous devez apporter les données d’image étiquetées comme entrées pour l’apprentissage de modèles sous la forme d’un MLTable Azure Machine Learning.

Vous pouvez créer un MLTable à partir de données d’entraînement étiquetées au format JSONL. Si vos données d’entraînement étiquetées sont dans un autre format (par exemple, pascal VOC ou COCO), vous pouvez utiliser un script de conversion pour les convertir en JSONL, puis créer un MLTable. Vous pouvez également utiliser l’outil d’étiquetage des données d’Azure Machine Learning pour étiqueter manuellement des images, et exporter les données étiquetées pour l’entraînement de votre modèle AutoML.

Prérequis

Obtenir des données étiquetées

Pour entraîner des modèles de vision par ordinateur en utilisant AutoML, vous devez d’abord obtenir des données d’entraînement étiquetées. Les images doivent être chargées dans le cloud et les annotations d’étiquette doivent être au format JSONL. Vous pouvez utiliser l’outil d’étiquetage des données Azure Machine Learning pour étiqueter vos données ou bien vous pouvez commencer avec des données d’image préétiquetées.

Utilisation de l’outil d’étiquetage des données Azure Machine Learning pour étiqueter vos données d’entraînement

Si vous n’avez pas de données préétiquetées, vous pouvez utiliser l’outil d’étiquetage des données d’Azure Machine Learning pour étiqueter manuellement les images. Cet outil génère automatiquement les données requises pour l’apprentissage au format accepté.

Il permet de créer, gérer et surveiller les tâches d’étiquetage des données

  • Classification d’images (multi-classe et multi-étiquette)
  • Détection d’objets (cadre englobant)
  • Segmentation d'instance (polygone)

Si vous avez déjà un projet d’étiquetage des données et que vous voulez utiliser ces données, vous pouvez exporter vos données étiquetées en tant que jeu de données Azure Machine Learning, puis accéder au jeu de données sous l’onglet « Jeux de données » dans Azure Machine Learning Studio. Ce jeu de données exporté peut ensuite être passé en tant qu’entrée à l’aide du format azureml:<tabulardataset_name>:<version>. Voici un exemple montrant comment passer un jeu de données existant comme entrée pour des modèles d’apprentissage Vision par ordinateur.

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

training_data:
  path: azureml:odFridgeObjectsTrainingDataset:1
  type: mltable
  mode: direct

Utilisation de données d’apprentissage préétiquetées provenant d’une machine locale

Si vous avez précédemment étiqueté des données que vous voulez utiliser pour effectuer l’apprentissage de votre modèle, vous devez d’abord charger les images dans le Stockage Blob Azure par défaut de votre espace de travail Azure Machine Learning et l’inscrire en tant que ressource de données.

Le script suivant charge les données d’image sur votre ordinateur local dans le chemin d’accès « ./data/odFridgeObjects » du magasin de données dans Stockage Blob Azure. Il crée ensuite une ressource de données nommée « fridge-items-images-object-detection » dans votre espace de travail Azure Machine Learning.

S’il existe déjà une ressource de données nommée « fridge-items-images-object-detection » dans votre espace de travail Azure Machine Learning, le script met à jour le numéro de version de cette ressource et la fait pointer vers le nouvel emplacement où les données d’image ont été chargées.

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

Créez un fichier .yml avec la configuration suivante.

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: ./data/odFridgeObjects
type: uri_folder

Pour charger des images en tant que ressource de données, vous exécutez la commande CLI v2 suivante avec le chemin de votre fichier .yml, le nom de l’espace de travail, le groupe de ressources et l’ID d’abonnement.

az ml data create -f [PATH_TO_YML_FILE] --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]

Si vos données sont déjà présentes dans un magasin de données existant et que vous souhaitez créer une ressource de données à partir de celles-ci, vous pouvez le faire en fournissant le chemin d’accès aux données dans le magasin de données, au lieu de fournir le chemin d’accès de votre ordinateur local. Mettez à jour le code ci-dessus avec l’extrait de code suivant.

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

Créez un fichier .yml avec la configuration suivante.

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/<path_to_image_data_folder>
type: uri_folder

Ensuite, vous devez obtenir les annotations d’étiquette au format JSONL. Le schéma des données étiquetées dépend de la tâche de vision par ordinateur en question. Consultez les schémas des fichiers JSONL pour les expériences de vision par ordinateur AutoML pour en savoir plus sur le schéma JSONL correspondant à chaque type de tâche.

Si vos données d’entraînement sont dans un autre format (par exemple, pascal VOC ou COCO), des scripts d’assistance pour convertir les données en JSONL sont disponibles dans les exemples de notebook.

Après créé un fichier jsonl en suivant les étapes ci-dessus, vous pouvez l’inscrire en tant que ressource de données à l’aide de l’interface utilisateur. Veillez à sélectionner le type stream dans la section schéma, comme indiqué ci-dessous.

Animation showing how to register a data asset from the jsonl files

Utilisation de données d’apprentissage préétiquetées provenant de Stockage Blob Azure

Si vos données d’apprentissage étiquetées se trouvent dans un conteneur de Stockage Blob Azure, vous pouvez y accéder directement en créant un magasin de données faisant référence à ce conteneur.

Créer un MLTable

Dès que vos données sont étiquetées au format JSONL, vous pouvez les utiliser pour créer un MLTable comme indiqué ci-dessous. MLtable compresse vos données dans un objet consommable pour l’entraînement.

paths:
  - file: ./train_annotations.jsonl
transformations:
  - read_json_lines:
        encoding: utf8
        invalid_lines: error
        include_path_column: false
  - convert_column_types:
      - columns: image_url
        column_type: stream_info

Vous pouvez ensuite passer la MLTable en tant qu’entrée de données pour votre travail d’apprentissage AutoML.

Étapes suivantes