Partager via


Créer un modèle d’analyse d’image personnalisé

Important

Cette fonctionnalité est désormais déconseillée. Le 10 janvier 2025, les API de classification d’images personnalisée, de détection d’objets personnalisée et de reconnaissance de produits (préversion) d’Azure AI Analyse d’image 4.0 seront mises hors service. Après cette date, les appels d’API à ces services échoueront.

Pour assurer le bon fonctionnement de vos modèles, passez à Azure AI Custom Vision, qui est désormais en disponibilité générale. Custom Vision offre des fonctionnalités similaires à celles qui seront mises hors service.

Analyse d’image 4.0 vous permet d’entraîner un modèle personnalisé à l’aide de vos propres images d’entraînement. En étiquetant manuellement vos images, vous pouvez entraîner un modèle pour appliquer des balises personnalisées aux images (classification d’images) ou détecter des objets personnalisés (détection d’objet). Les modèles Analyse d’image 4.0 sont particulièrement efficaces lors de l’apprentissage avec peu d’exemples, ce qui vous permet d’obtenir des modèles exacts avec moins de données d’entraînement.

Ce guide vous montre comment créer et entraîner un modèle de classification d’images personnalisé. Les quelques différences entre l’apprentissage d’un modèle de classification d’images et un modèle de détection d’objet sont listées.

Remarque

La personnalisation de modèle est disponible via l’API REST et Vision Studio, mais pas via les Kits de développement logiciel (SDK).

Prérequis

  • Un abonnement Azure. Vous pouvez en créer un gratuitement.
  • Une fois que vous avez votre abonnement Azure, créez une ressource Vision dans le portail Azure pour obtenir votre clé et votre point de terminaison. Si vous suivez ce guide à l’aide de Vision Studio, vous devez créer votre ressource dans la région USA Est. À la fin du déploiement, sélectionnez Accéder à la ressource. Copiez la clé et le point de terminaison dans un emplacement temporaire pour pouvoir les utiliser ultérieurement.
  • Une ressource de stockage Azure. Créez une ressource de stockage.
  • Un ensemble d’images avec lequel entraîner votre modèle de classification. Vous pouvez utiliser l’ensemble d’exemples d’images disponible sur GitHub. Vous pouvez également utiliser vos propres images. Vous n’avez besoin que d’environ 3 à 5 images par classe.

Remarque

Nous vous déconseillons d’utiliser des modèles personnalisés dans des environnements critiques pour l’entreprise en raison d’une latence potentiellement élevée. Lorsque les clients effectuent l’apprentissage de modèles personnalisés dans le studio Vision, ces modèles personnalisés appartiennent à la ressource Vision sous laquelle ils ont été entraînés, et le client peut effectuer des appels à ces modèles à l’aide de l’API d’Analyse Image. Lorsqu’ils effectuent ces appels, le modèle personnalisé est chargé en mémoire et l’infrastructure de prédiction est initialisée. Dans ce cas, les clients peuvent rencontrer une latence plus longue que prévu avant de recevoir les résultats de prédiction.

Créer un modèle personnalisé

Commencez par accéder à Vision Studio et sélectionnez l’onglet Analyse d’image. Sélectionnez ensuite la vignette Personnaliser les modèles .

Capture d'écran de la vignette Personnaliser les modèles.

Ensuite, connectez-vous avec votre compte Azure et sélectionnez votre ressource Vision. Si vous n'en avez pas, vous pouvez en créer une à partir de cet écran.

Capture d'écran de l'écran de sélection des ressources.

Préparer les images d’apprentissage

Vous devez charger votre jeu de données d’apprentissage dans un conteneur Stockage Blob Azure. Accédez à votre ressource de stockage dans le portail Azure et accédez à l’onglet Navigateur de stockage. Ici, vous pouvez créer un conteneur d’objets blob et charger vos images. Placez-les toutes à la racine du conteneur.

Ajouter un jeu de données

Pour entraîner un modèle personnalisé, vous devez l’associer à un jeu de données dans lequel vous fournissez des images et leurs informations d’étiquette en tant que données d’entraînement. Dans Vision Studio, sélectionnez l’onglet Jeux de données pour afficher vos jeux de données.

Pour créer un jeu de données, sélectionnez Ajouter un nouveau jeu de données. Dans la fenêtre contextuelle, saisissez un nom et sélectionnez un type de jeu de données pour votre cas d'usage. Les modèles de classification d’images appliquent des étiquettes de contenu à l’image entière, tandis que les modèles de détection d’objets appliquent des étiquettes d’objet à des emplacements spécifiques dans l’image. Les modèles de reconnaissance de produit sont une sous-catégorie des modèles de détection d’objets optimisés pour détecter les produits de vente au détail.

Capture d’écran de la boîte de dialogue Créer un jeu de données.

Ensuite, sélectionnez le conteneur à partir du compte Stockage Blob Azure dans lequel vous avez stocké les images d’entraînement. Cochez la case pour autoriser Vision Studio à lire et écrire dans le conteneur de stockage d’objets blob. Il s’agit d’une étape nécessaire pour importer des données étiquetées. Créez le jeu de données.

Créer un projet d’étiquetage de données Azure Machine Learning

Vous avez besoin d’un fichier COCO pour transmettre les informations d’étiquetage. Un moyen simple de générer un fichier COCO consiste à créer un projet Azure Machine Learning, qui est fourni avec un flux de travail d’étiquetage des données.

Dans la page des détails du jeu de données, sélectionnez Ajouter un nouveau projet d’étiquetage des données. Nommez-le et sélectionnez Créer un espace de travail. Cela ouvre un nouvel onglet de Portail Azure dans lequel vous pouvez créer le projet Azure Machine Learning.

Capture d’écran de Créer un projet d’étiquetage des données Azure Machine Learning.

Une fois le projet Azure Machine Learning créé, revenez à l’onglet Vision Studio et sélectionnez-le sous Espace de travail. Le portail Azure Machine Learning s’ouvre ensuite dans un nouvel onglet de navigateur.

Créer des étiquettes

Pour commencer l’étiquetage, suivez l’invite Ajouter des classes d’étiquette pour ajouter des classes d’étiquette.

Capture d’écran montrant le bouton permettant d’ajouter des classes d’étiquettes.

Capture d’écran montrant le bouton permettant d’ajouter des catégories d’étiquettes.

Une fois que vous avez ajouté toutes les étiquettes de classe, enregistrez-les, sélectionnez Démarrer sur le projet, puis Étiqueter les données dans la partie supérieure.

Capture d’écran montrant le bouton permettant de démarrer l’étiquetage des données.

Étiqueter manuellement les données d’entraînement

Choisissez Démarrer l’étiquetage et suivez les invites pour étiqueter toutes vos images. Lorsque vous avez terminé, revenez à l’onglet Vision Studio dans votre navigateur.

Sélectionnez maintenant Ajouter un fichier COCO, puis Importer un fichier COCO à partir d’un projet d’étiquetage des données Azure ML. Cela importe les données étiquetées à partir d’Azure Machine Learning.

Le fichier COCO que vous avez créé est maintenant stocké dans le conteneur Stockage Azure que vous avez lié à ce projet. Vous pouvez maintenant l’importer dans le workflow de personnalisation de modèle. Sélectionnez-la dans la liste déroulante. Une fois le fichier COCO importé dans le jeu de données, le jeu de données peut être utilisé pour l’apprentissage d’un modèle.

Remarque

Si vous souhaitez importer un fichier COCO prêt à l’emploi, accédez à l’onglet Jeux de données et sélectionnez Ajouter des fichiers COCO à ce jeu de données. Vous pouvez choisir d’ajouter un fichier COCO spécifique à partir d’un compte de stockage d’objets blob ou de l’importer à partir du projet d’étiquetage Azure Machine Learning.

Actuellement, Microsoft travaille sur un problème qui provoque l’échec de l’importation de fichiers COCO avec des jeux de données volumineux lorsqu’elle est lancée dans Vision Studio. Pour effectuer l’apprentissage à l’aide d’un jeu de données volumineux, il est recommandé d’utiliser plutôt l’API REST.

Capture d’écran de la boîte de dialogue Importer un fichier COCO.

À propos des fichiers COCO

Les fichiers COCO sont des fichiers JSON avec des champs obligatoires spécifiques : "images", "annotations" et "categories". Un exemple de fichier COCO se présente comme suit :

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

Informations de référence sur les champs de fichier COCO

Si vous générez votre propre fichier COCO à partir de zéro, assurez-vous que tous les champs obligatoires sont remplis avec les détails corrects. Les tableaux suivants décrivent chaque champ dans un fichier COCO :

"images"

Clé Type Description Requis ?
id entier ID d’image unique, à partir de 1 Oui
width entier Largeur de l’image en pixels Oui
height entier Hauteur de l’image en pixels Oui
file_name string Nom unique de l’image Oui
absolute_url ou coco_url string Chemin d’accès à l’image en tant qu’URI absolu d’un objet blob dans un conteneur d’objets blob. La ressource Vision doit être autorisée à lire les fichiers d’annotation et tous les fichiers image référencés. Oui

La valeur de absolute_url se trouve dans les propriétés de votre conteneur d’objets blob :

url absolue

"annotations"

Clé Type Description Requis ?
id entier ID de l’annotation Oui
category_id entier ID de la catégorie définie dans la section categories Oui
image_id entier ID de l’image Oui
area entier Valeur de Largeur x Hauteur (troisième et quatrième valeurs de bbox) Non
bbox list[float] Coordonnées relatives du cadre englobant (0 à 1), dans l’ordre « Gauche », « Haut », « Largeur », « Hauteur » Oui

"categories"

Clé Type Description Requis ?
id entier ID unique pour chaque catégorie (classe d’étiquette). Ceux-ci doivent être présents dans la section annotations. Oui
name string Nom de la catégorie (classe d’étiquette) Yes

Vérification de fichiers COCO

Vous pouvez utiliser notre exemple de code Python pour vérifier le format d’un fichier COCO.

Entraîner le modèle personnalisé

Pour commencer l’apprentissage d’un modèle avec votre fichier COCO, accédez à l’onglet Modèles personnalisés et sélectionnez Ajouter un nouveau modèle. Entrez un nom pour le modèle et sélectionnez Image classification ou Object detection comme type de modèle.

Capture d’écran de la boîte de dialogue Entraîner un nouveau modèle.

Sélectionnez votre jeu de données, qui est maintenant associé au fichier COCO contenant les informations d’étiquetage.

Sélectionnez ensuite un budget de temps et effectuez l’apprentissage du modèle. Pour de petits exemples, vous pouvez utiliser un budget de 1 hour.

Capture d’écran montrant les détails de l’entraînement à passer en revue.

L’entraînement peut prendre un certain temps. Les modèles Analyse d’image 4.0 peuvent être précis avec seulement un petit ensemble de données d’entraînement, mais l’apprentissage prend plus de temps que les modèles précédents.

Évaluer le modèle entraîné

Une fois l’entraînement terminé, vous pouvez afficher l’évaluation des performances du modèle. Les mesures suivantes sont utilisées :

  • Classification d’images : Précision moyenne, Précision Top 1, Précision Top 5
  • Détection d’objet : Précision moyenne @ 30, Précision moyenne @ 50, Précision moyenne @ 75

Si aucun jeu d’évaluation n’est fourni lors de l’apprentissage du modèle, les performances signalées sont estimées en fonction d’une partie du jeu d’apprentissage. Nous vous recommandons vivement d’utiliser un jeu de données d’évaluation (à l’aide du même processus que ci-dessus) pour avoir une estimation fiable des performances de votre modèle.

Capture d’écran montrant les résultats de l’évaluation.

Tester le modèle personnalisé dans Vision Studio

Une fois que vous avez conçu un modèle personnalisé, vous pouvez le tester en sélectionnant le bouton Essayer dans l'écran d'évaluation du modèle.

Capture d'écran de l'écran d'évaluation du modèle avec le bouton Essayer.

Vous accédez ainsi à la page Extraire les balises communes à partir d’images. Choisissez votre modèle personnalisé dans le menu déroulant et chargez une image test.

Capture d’écran de la sélection d’un modèle de test dans Vision Studio.

Les résultats de prédiction s’affichent dans la colonne de droite.

Dans ce guide, vous avez créé et entraîné un modèle de classification d’images personnalisé à l’aide d’Analyse d’image. Ensuite, découvrez plus d’informations sur l’API Analyse Image 4.0, afin que vous puissiez appeler votre modèle personnalisé à partir d’une application utilisant REST.