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 .
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.
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.
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.
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.
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.
É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.
À 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 :
"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.
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
.
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.
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.
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.
Les résultats de prédiction s’affichent dans la colonne de droite.
Contenu connexe
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.